From 2d1d4dac78f43b68dda9dbbf1e3761830fa932b6 Mon Sep 17 00:00:00 2001
From: Sergey Yakubov <sergey.yakubov@desy.de>
Date: Wed, 2 May 2018 18:16:04 +0200
Subject: [PATCH] logging for broker

---
 .gitignore                                    |  2 +
 broker/src/hidra2_broker/logger/logger.go     | 47 ++++++++++++
 .../src/hidra2_broker/logger/logrus_logger.go | 76 +++++++++++++++++++
 .../src/hidra2_broker/logger/mock_logger.go   | 51 +++++++++++++
 broker/src/hidra2_broker/main/broker.go       | 15 ++--
 broker/src/hidra2_broker/server/get_next.go   | 15 ++--
 .../src/hidra2_broker/server/get_next_test.go | 16 ++++
 .../hidra2_broker/server/server_nottested.go  |  3 +-
 .../src/hidra2_broker/server/server_test.go   |  3 +
 broker/src/hidra2_broker/server/statistics.go | 11 ++-
 .../hidra2_broker/server/statistics_test.go   |  6 +-
 config/fluentd/fluentd.conf                   | 19 +++--
 examples/worker/getnext_broker/check_linux.sh |  2 +-
 .../worker/getnext_broker/check_windows.bat   |  2 +-
 .../broker/check_monitoring/check_linux.sh    |  2 +-
 .../automatic/broker/get_next/check_linux.sh  |  2 +-
 .../broker/get_next/check_windows.bat         |  2 +-
 .../broker/read_config/check_linux.sh         |  6 +-
 .../broker/read_config/check_windows.bat      |  6 +-
 .../full_chain/simple_chain/check_linux.sh    |  2 +-
 .../full_chain/simple_chain/check_windows.bat |  2 +-
 .../next_multithread_broker/check_linux.sh    |  2 +-
 .../next_multithread_broker/check_windows.bat |  2 +-
 tests/manual/performance_broker/test.sh       |  2 +-
 .../performance_full_chain_simple/test.sh     |  2 +-
 25 files changed, 257 insertions(+), 41 deletions(-)
 create mode 100644 broker/src/hidra2_broker/logger/logger.go
 create mode 100644 broker/src/hidra2_broker/logger/logrus_logger.go
 create mode 100644 broker/src/hidra2_broker/logger/mock_logger.go

diff --git a/.gitignore b/.gitignore
index 13bf1b11a..7ea71abc2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -120,3 +120,5 @@ doxygen
 .project
 .settings
 
+#GO
+broker/pkg
diff --git a/broker/src/hidra2_broker/logger/logger.go b/broker/src/hidra2_broker/logger/logger.go
new file mode 100644
index 000000000..0fa02db8b
--- /dev/null
+++ b/broker/src/hidra2_broker/logger/logger.go
@@ -0,0 +1,47 @@
+package logger
+
+type Level uint32
+
+//log levels
+const (
+	InfoLevel = iota
+	DebugLevel
+	ErrorLevel
+	WarnLevel
+	FatalLevel
+)
+
+type Logger interface {
+	Info(args ...interface{})
+	Debug(args ...interface{})
+	Fatal(args ...interface{})
+	Warning(args ...interface{})
+	Error(args ...interface{})
+	SetLevel(level string)
+}
+
+var my_logger Logger = &logRusLogger{}
+
+func Info(args ...interface{}) {
+	my_logger.Info(args...)
+}
+
+func Debug(args ...interface{}) {
+	my_logger.Debug(args...)
+}
+
+func Warning(args ...interface{}) {
+	my_logger.Warning(args...)
+}
+
+func Error(args ...interface{}) {
+	my_logger.Error(args...)
+}
+
+func Fatal(args ...interface{}) {
+	my_logger.Fatal(args...)
+}
+
+func SetLevel(level string) {
+	my_logger.SetLevel(level)
+}
diff --git a/broker/src/hidra2_broker/logger/logrus_logger.go b/broker/src/hidra2_broker/logger/logrus_logger.go
new file mode 100644
index 000000000..19e33eb50
--- /dev/null
+++ b/broker/src/hidra2_broker/logger/logrus_logger.go
@@ -0,0 +1,76 @@
+package logger
+
+import (
+	log "github.com/sirupsen/logrus"
+	"strings"
+)
+
+type logRusLogger struct {
+	logger_entry *log.Entry
+}
+
+func (l *logRusLogger) entry() *log.Entry {
+	if l.logger_entry != nil {
+		return l.logger_entry
+	}
+
+	formatter := &log.JSONFormatter{
+		FieldMap: log.FieldMap{
+			log.FieldKeyMsg: "message",
+		},
+		TimestampFormat: "2006-01-02 15:04:05.000",
+	}
+
+	log.SetFormatter(formatter)
+
+	l.logger_entry = log.WithFields(log.Fields{
+		"source": "broker",
+	})
+
+	return l.logger_entry
+
+}
+
+func (l *logRusLogger) Info(args ...interface{}) {
+	l.entry().Info(args...)
+	return
+}
+
+func (l *logRusLogger) Debug(args ...interface{}) {
+	l.entry().Debug(args...)
+	return
+}
+
+func (l *logRusLogger) Error(args ...interface{}) {
+	l.entry().Error(args...)
+	return
+}
+
+func (l *logRusLogger) Warning(args ...interface{}) {
+	l.entry().Warning(args...)
+	return
+}
+
+func (l *logRusLogger) Fatal(args ...interface{}) {
+	l.entry().Fatal(args...)
+	return
+}
+
+func (l *logRusLogger) SetLevel(level string) {
+	logrus_level := log.InfoLevel
+	switch strings.ToLower(level) {
+	case "debug":
+		logrus_level = log.DebugLevel
+	case "info":
+		logrus_level = log.InfoLevel
+	case "warning":
+		logrus_level = log.WarnLevel
+	case "error":
+		logrus_level = log.ErrorLevel
+	case "fatal":
+		logrus_level = log.FatalLevel
+	}
+
+	log.SetLevel(logrus_level)
+	return
+}
diff --git a/broker/src/hidra2_broker/logger/mock_logger.go b/broker/src/hidra2_broker/logger/mock_logger.go
new file mode 100644
index 000000000..ad21f5fa8
--- /dev/null
+++ b/broker/src/hidra2_broker/logger/mock_logger.go
@@ -0,0 +1,51 @@
+//+build !release
+
+package logger
+
+import (
+	"github.com/stretchr/testify/mock"
+)
+
+type MockLogger struct {
+	mock.Mock
+}
+
+var MockLog MockLogger
+
+func SetMockLog() {
+	my_logger = &MockLog
+}
+
+func UnsetMockLog() {
+	my_logger = &logRusLogger{}
+}
+
+func (l *MockLogger) Info(args ...interface{}) {
+	l.Called(args...)
+	return
+}
+
+func (l *MockLogger) Debug(args ...interface{}) {
+	l.Called(args...)
+	return
+}
+
+func (l *MockLogger) Error(args ...interface{}) {
+	l.Called(args...)
+	return
+}
+
+func (l *MockLogger) Warning(args ...interface{}) {
+	l.Called(args...)
+	return
+}
+
+func (l *MockLogger) Fatal(args ...interface{}) {
+	l.Called(args...)
+	return
+}
+
+func (l *MockLogger) SetLevel(level string) {
+	l.Called(level)
+	return
+}
diff --git a/broker/src/hidra2_broker/main/broker.go b/broker/src/hidra2_broker/main/broker.go
index c72a93a3b..fc3122a14 100644
--- a/broker/src/hidra2_broker/main/broker.go
+++ b/broker/src/hidra2_broker/main/broker.go
@@ -3,9 +3,10 @@
 package main
 
 import (
+	"flag"
 	"hidra2_broker/database"
+	log "hidra2_broker/logger"
 	"hidra2_broker/server"
-	"log"
 	"os"
 )
 
@@ -14,16 +15,20 @@ func NewDefaultDatabase() database.Agent {
 }
 
 func PrintUsage() {
-	log.Fatal("Usage: " + os.Args[0] + " <config file>")
+	log.Fatal("Usage: " + os.Args[0] + " -config <config file> [-logging debug|info|warning|error|fatal]")
 }
 
 func main() {
-	if len(os.Args) != 2 {
+	var fname = flag.String("config", "", "config file path")
+	var log_level = flag.String("logging", "info", "logging level")
+
+	flag.Parse()
+	if *fname == "" {
 		PrintUsage()
 	}
+	log.SetLevel(*log_level)
 
-	fname := os.Args[1]
-	err := server.ReadConfig(fname)
+	err := server.ReadConfig(*fname)
 	if err != nil {
 		log.Fatal(err.Error())
 	}
diff --git a/broker/src/hidra2_broker/server/get_next.go b/broker/src/hidra2_broker/server/get_next.go
index b076696b4..2b8196bdc 100644
--- a/broker/src/hidra2_broker/server/get_next.go
+++ b/broker/src/hidra2_broker/server/get_next.go
@@ -3,6 +3,7 @@ package server
 import (
 	"github.com/gorilla/mux"
 	"hidra2_broker/database"
+	"hidra2_broker/logger"
 	"hidra2_broker/utils"
 	"net/http"
 )
@@ -15,25 +16,27 @@ func extractRequestParameters(r *http.Request) (string, bool) {
 
 func routeGetNext(w http.ResponseWriter, r *http.Request) {
 	r.Header.Set("Content-type", "application/json")
-	// w.Write([]byte("Hello"))
-	// return
 	db_name, ok := extractRequestParameters(r)
 	if !ok {
 		w.WriteHeader(http.StatusBadRequest)
 		return
 	}
-
 	answer, code := getNextRecord(db_name)
 	w.WriteHeader(code)
 	w.Write(answer)
 }
 
-func returnError(err error) (answer []byte, code int) {
+func returnError(err error, log_str string) (answer []byte, code int) {
 	err_db, ok := err.(*database.DBError)
 	code = utils.StatusError
 	if ok {
 		code = err_db.Code
 	}
+	if code != utils.StatusNoData {
+		logger.Error(log_str + " - " + err.Error())
+	} else {
+		logger.Debug(log_str + " - " + err.Error())
+	}
 	return []byte(err.Error()), code
 }
 
@@ -42,8 +45,10 @@ func getNextRecord(db_name string) (answer []byte, code int) {
 	defer db_new.Close()
 	statistics.IncreaseCounter()
 	answer, err := db_new.GetNextRecord(db_name)
+	log_str := "processing get next request in " + db_name + " at " + settings.BrokerDbAddress
 	if err != nil {
-		return returnError(err)
+		return returnError(err, log_str)
 	}
+	logger.Debug(log_str)
 	return answer, utils.StatusOK
 }
diff --git a/broker/src/hidra2_broker/server/get_next_test.go b/broker/src/hidra2_broker/server/get_next_test.go
index 36f5cad43..e3ebacd45 100644
--- a/broker/src/hidra2_broker/server/get_next_test.go
+++ b/broker/src/hidra2_broker/server/get_next_test.go
@@ -3,11 +3,14 @@ package server
 import (
 	"errors"
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/mock"
 	"github.com/stretchr/testify/suite"
 	"hidra2_broker/database"
+	"hidra2_broker/logger"
 	"hidra2_broker/utils"
 	"net/http"
 	"net/http/httptest"
+	"strings"
 	"testing"
 )
 
@@ -18,6 +21,10 @@ type request struct {
 	message string
 }
 
+func containsMatcher(substr string) func(str string) bool {
+	return func(str string) bool { return strings.Contains(str, substr) }
+}
+
 func doRequest(path string) *httptest.ResponseRecorder {
 	mux := utils.NewRouter(listRoutes)
 	req, _ := http.NewRequest("GET", path, nil)
@@ -45,11 +52,13 @@ func (suite *GetNextTestSuite) SetupTest() {
 	statistics.Reset()
 	suite.mock_db = new(database.MockedDatabase)
 	db = suite.mock_db
+	logger.SetMockLog()
 	ExpectCopyClose(suite.mock_db)
 }
 
 func (suite *GetNextTestSuite) TearDownTest() {
 	assertExpectations(suite.T(), suite.mock_db)
+	logger.UnsetMockLog()
 	db = nil
 }
 
@@ -61,18 +70,24 @@ func (suite *GetNextTestSuite) TestGetNextWithWrongDatabaseName() {
 	suite.mock_db.On("GetNextRecord", "foo").Return([]byte(""),
 		&database.DBError{utils.StatusWrongInput, ""})
 
+	logger.MockLog.On("Error", mock.MatchedBy(containsMatcher("get next request in foo")))
+
 	w := doRequest("/database/foo/next")
+
 	suite.Equal(http.StatusBadRequest, w.Code, "wrong database name")
 }
 
 func (suite *GetNextTestSuite) TestGetNextWithInternalDBError() {
 	suite.mock_db.On("GetNextRecord", "foo").Return([]byte(""), errors.New(""))
+	logger.MockLog.On("Error", mock.MatchedBy(containsMatcher("get next request in foo")))
+
 	w := doRequest("/database/foo/next")
 	suite.Equal(http.StatusInternalServerError, w.Code, "internal error")
 }
 
 func (suite *GetNextTestSuite) TestGetNextWithGoodDatabaseName() {
 	suite.mock_db.On("GetNextRecord", "dbname").Return([]byte("Hello"), nil)
+	logger.MockLog.On("Debug", mock.MatchedBy(containsMatcher("get next request in dbname")))
 
 	w := doRequest("/database/dbname/next")
 	suite.Equal(http.StatusOK, w.Code, "GetNext OK")
@@ -81,6 +96,7 @@ func (suite *GetNextTestSuite) TestGetNextWithGoodDatabaseName() {
 
 func (suite *GetNextTestSuite) TestGetNextAddsCounter() {
 	suite.mock_db.On("GetNextRecord", "dbname").Return([]byte("Hello"), nil)
+	logger.MockLog.On("Debug", mock.MatchedBy(containsMatcher("get next request in dbname")))
 
 	doRequest("/database/dbname/next")
 	suite.Equal(1, statistics.GetCounter(), "GetNext increases counter")
diff --git a/broker/src/hidra2_broker/server/server_nottested.go b/broker/src/hidra2_broker/server/server_nottested.go
index 35ed53f93..9a90f3689 100644
--- a/broker/src/hidra2_broker/server/server_nottested.go
+++ b/broker/src/hidra2_broker/server/server_nottested.go
@@ -4,8 +4,8 @@ package server
 
 import (
 	"errors"
+	log "hidra2_broker/logger"
 	"hidra2_broker/utils"
-	"log"
 	"net/http"
 	"strconv"
 )
@@ -19,6 +19,7 @@ func StartStatistics() {
 func Start() {
 	StartStatistics()
 	mux := utils.NewRouter(listRoutes)
+	log.Info("Listening on port: " + strconv.Itoa(settings.Port))
 	log.Fatal(http.ListenAndServe(":"+strconv.Itoa(settings.Port), http.HandlerFunc(mux.ServeHTTP)))
 }
 
diff --git a/broker/src/hidra2_broker/server/server_test.go b/broker/src/hidra2_broker/server/server_test.go
index baba3ed60..08cea63fc 100644
--- a/broker/src/hidra2_broker/server/server_test.go
+++ b/broker/src/hidra2_broker/server/server_test.go
@@ -5,6 +5,7 @@ import (
 	"github.com/stretchr/testify/assert"
 	"github.com/stretchr/testify/mock"
 	"hidra2_broker/database"
+	"hidra2_broker/logger"
 	"testing"
 )
 
@@ -18,6 +19,8 @@ func setup() *database.MockedDatabase {
 func assertExpectations(t *testing.T, mock_db *database.MockedDatabase) {
 	mock_db.AssertExpectations(t)
 	mock_db.ExpectedCalls = nil
+	logger.MockLog.AssertExpectations(t)
+	logger.MockLog.ExpectedCalls = nil
 }
 
 var initDBTests = []struct {
diff --git a/broker/src/hidra2_broker/server/statistics.go b/broker/src/hidra2_broker/server/statistics.go
index f0851ae33..7347a7929 100644
--- a/broker/src/hidra2_broker/server/statistics.go
+++ b/broker/src/hidra2_broker/server/statistics.go
@@ -2,9 +2,9 @@ package server
 
 import (
 	"fmt"
-	"log"
-	"time"
+	log "hidra2_broker/logger"
 	"sync"
+	"time"
 )
 
 type statisticsWriter interface {
@@ -13,7 +13,7 @@ type statisticsWriter interface {
 
 type serverStatistics struct {
 	counter int
-	mux sync.Mutex
+	mux     sync.Mutex
 	Writer  statisticsWriter
 }
 
@@ -47,8 +47,11 @@ func (st *serverStatistics) WriteStatistic() (err error) {
 func (st *serverStatistics) Monitor() {
 	for {
 		time.Sleep(1000 * time.Millisecond)
+		logstr := "sending statistics to " + settings.MonitorDbAddress + ", dbname: " + settings.MonitorDbName
 		if err := st.WriteStatistic(); err != nil {
-			log.Println(err.Error())
+			log.Error(logstr + " - " + err.Error())
+		} else {
+			log.Debug(logstr)
 		}
 		st.Reset()
 	}
diff --git a/broker/src/hidra2_broker/server/statistics_test.go b/broker/src/hidra2_broker/server/statistics_test.go
index a16a8be4a..9e396fd3b 100644
--- a/broker/src/hidra2_broker/server/statistics_test.go
+++ b/broker/src/hidra2_broker/server/statistics_test.go
@@ -20,7 +20,7 @@ func assertMockWriterExpectations(t *testing.T, mock_writer *mockWriter) {
 	mock_writer.ExpectedCalls = nil
 }
 
-func TestMonitorOK(t *testing.T) {
+func TestWriteStatisticsOK(t *testing.T) {
 	mock_writer := new(mockWriter)
 	statistics.Writer = mock_writer
 	statistics.Reset()
@@ -34,8 +34,10 @@ func TestMonitorOK(t *testing.T) {
 	assertMockWriterExpectations(t, mock_writer)
 }
 
-func TestMonitorCatchesError(t *testing.T) {
+func TestWriteStatisticsCatchesError(t *testing.T) {
 	statistics.Writer = nil
+
 	err := statistics.WriteStatistic()
+
 	assert.NotNil(t, err, "Error with nil pointer")
 }
diff --git a/config/fluentd/fluentd.conf b/config/fluentd/fluentd.conf
index c41b6147c..94120820a 100644
--- a/config/fluentd/fluentd.conf
+++ b/config/fluentd/fluentd.conf
@@ -5,25 +5,32 @@
  add_remote_addr true
 </source>
 
+<source>
+  @type tail
+  path /tmp/asapo_broker.out
+  pos_file /tmp/asapo.logrus.log.pos
+  tag asapo.logrus
+  format json
+  time_format %Y-%m-%d %H:%M:%S.%N
+</source>
+
 <filter asapo>
 @type parser
 key_name message
 reserve_data true
 <parse>
     @type regexp
-    expression /\[(?<time>[^\]]*)\] \[(?<source>[^ ]*)\] \[(?<level>[^ ]*)\] (?<message>[^ ]*)/        
+    expression /\[(?<time>[^\]]*)\] \[(?<source>[^ ]*)\] \[(?<level>[^ ]*)\] (?<message>[^ ]*)/
     time_key time
     time_format %Y-%m-%d %H:%M:%S.%N
   </parse>
-
 </filter>
 
-
-<match asapo>
+<match asapo.**>
 @type copy
 <store>
   @type elasticsearch
-  host elastic
+  host max-wgs001.desy.de
   port 9200
   flush_interval 5s
   logstash_format true
@@ -40,5 +47,3 @@ reserve_data true
   path /tmp/fluentd/asapo
   </store>
 </match>
-
-
diff --git a/examples/worker/getnext_broker/check_linux.sh b/examples/worker/getnext_broker/check_linux.sh
index b00865d7b..e2e13639b 100644
--- a/examples/worker/getnext_broker/check_linux.sh
+++ b/examples/worker/getnext_broker/check_linux.sh
@@ -15,7 +15,7 @@ Cleanup() {
 args=${@:1:$(($# - 1))}
 broker=${@:$#}
 
-$broker settings.json &
+$broker -config settings.json &
 brokerid=`echo $!`
 sleep 0.3
 
diff --git a/examples/worker/getnext_broker/check_windows.bat b/examples/worker/getnext_broker/check_windows.bat
index b3025ffce..cdbb25977 100644
--- a/examples/worker/getnext_broker/check_windows.bat
+++ b/examples/worker/getnext_broker/check_windows.bat
@@ -7,7 +7,7 @@ SET mongo_exe="c:\Program Files\MongoDB\Server\3.6\bin\mongo.exe"
 set full_name="%2"
 set short_name="%~nx2"
 
-start /B "" "%full_name%" settings.json
+start /B "" "%full_name%" -config settings.json
 
 ping 1.0.0.0 -n 1 -w 100 > nul
 
diff --git a/tests/automatic/broker/check_monitoring/check_linux.sh b/tests/automatic/broker/check_monitoring/check_linux.sh
index 9af764908..254e8ea57 100644
--- a/tests/automatic/broker/check_monitoring/check_linux.sh
+++ b/tests/automatic/broker/check_monitoring/check_linux.sh
@@ -14,7 +14,7 @@ Cleanup() {
 
 influx -execute "create database ${database_name}"
 
-$@ settings.json &
+$@ -config settings.json &
 
 sleep 0.3
 
diff --git a/tests/automatic/broker/get_next/check_linux.sh b/tests/automatic/broker/get_next/check_linux.sh
index fb0b7f887..e23ec0fbe 100644
--- a/tests/automatic/broker/get_next/check_linux.sh
+++ b/tests/automatic/broker/get_next/check_linux.sh
@@ -15,7 +15,7 @@ Cleanup() {
 echo "db.data.insert({"_id":2})" | mongo ${database_name}
 echo "db.data.insert({"_id":1})" | mongo ${database_name}
 
-$@ settings.json &
+$@ -config settings.json &
 
 sleep 0.3
 brokerid=`echo $!`
diff --git a/tests/automatic/broker/get_next/check_windows.bat b/tests/automatic/broker/get_next/check_windows.bat
index ffdcef0b7..9ba1a0810 100644
--- a/tests/automatic/broker/get_next/check_windows.bat
+++ b/tests/automatic/broker/get_next/check_windows.bat
@@ -7,7 +7,7 @@ echo db.data.insert({"_id":2}) | %mongo_exe% %database_name%  || goto :error
 set full_name="%1"
 set short_name="%~nx1"
 
-start /B "" "%full_name%" settings.json
+start /B "" "%full_name%" -config settings.json
 
 ping 1.0.0.0 -n 1 -w 100 > nul
 
diff --git a/tests/automatic/broker/read_config/check_linux.sh b/tests/automatic/broker/read_config/check_linux.sh
index 5b9e9c78c..64f3b4ca7 100644
--- a/tests/automatic/broker/read_config/check_linux.sh
+++ b/tests/automatic/broker/read_config/check_linux.sh
@@ -3,13 +3,13 @@
 set -e
 database_name=data
 
-$@ settings_good.json &
+$@ -config settings_good.json &
 sleep 0.3
 brokerid=`echo $!`
 kill -9 $brokerid
 
 # check if gives error with bad json file
-$@ settings_bad.json 2>&1 | grep "not set"
+$@ -config settings_bad.json 2>&1 | grep "not set"
 
 # check if gives error non-existing file
-$@ settings_notexist.json 2>&1 | grep "no such"
+$@ -config settings_notexist.json 2>&1 | grep "no such"
diff --git a/tests/automatic/broker/read_config/check_windows.bat b/tests/automatic/broker/read_config/check_windows.bat
index e78f9380f..7a02dd8b6 100644
--- a/tests/automatic/broker/read_config/check_windows.bat
+++ b/tests/automatic/broker/read_config/check_windows.bat
@@ -1,14 +1,14 @@
 set full_name="%1"
 set short_name="%~nx1"
 
-start /B "" "%full_name%" settings_good.json
+start /B "" "%full_name%" -config settings_good.json
 
 ping 1.0.0.0 -n 1 -w 100 > nul
 Taskkill /IM "%short_name%" /F
 
-%full_name% settings_bad.json 2>&1 | findstr /c:"not set"  || goto :error
+%full_name% -config settings_bad.json 2>&1 | findstr /c:"not set"  || goto :error
 
-%full_name% settings_notexist.json 2>&1| findstr cannot  || goto :error
+%full_name% -config settings_notexist.json 2>&1| findstr cannot  || goto :error
 
 exit /b 0
 
diff --git a/tests/automatic/full_chain/simple_chain/check_linux.sh b/tests/automatic/full_chain/simple_chain/check_linux.sh
index 26289c3e0..a85cbe6c4 100644
--- a/tests/automatic/full_chain/simple_chain/check_linux.sh
+++ b/tests/automatic/full_chain/simple_chain/check_linux.sh
@@ -27,7 +27,7 @@ sleep 0.3
 receiverid=`echo $!`
 
 #broker
-$3 broker.json &
+$3 -config broker.json &
 sleep 0.3
 brokerid=`echo $!`
 
diff --git a/tests/automatic/full_chain/simple_chain/check_windows.bat b/tests/automatic/full_chain/simple_chain/check_windows.bat
index f0951cbc5..7c3fc7a03 100644
--- a/tests/automatic/full_chain/simple_chain/check_windows.bat
+++ b/tests/automatic/full_chain/simple_chain/check_windows.bat
@@ -7,7 +7,7 @@ ping 1.0.0.0 -n 1 -w 100 > nul
 REM broker
 set full_broker_name="%3"
 set short_broker_name="%~nx3"
-start /B "" "%full_broker_name%" broker.json
+start /B "" "%full_broker_name%" -config broker.json
 ping 1.0.0.0 -n 1 -w 100 > nul
 
 REM producer
diff --git a/tests/automatic/worker/next_multithread_broker/check_linux.sh b/tests/automatic/worker/next_multithread_broker/check_linux.sh
index d1f5e2a23..086f98a26 100644
--- a/tests/automatic/worker/next_multithread_broker/check_linux.sh
+++ b/tests/automatic/worker/next_multithread_broker/check_linux.sh
@@ -15,7 +15,7 @@ Cleanup() {
 args=${@:1:$(($# - 1))}
 broker=${@:$#}
 
-$broker settings.json &
+$broker -config settings.json &
 brokerid=`echo $!`
 sleep 0.3
 
diff --git a/tests/automatic/worker/next_multithread_broker/check_windows.bat b/tests/automatic/worker/next_multithread_broker/check_windows.bat
index 7fbbd8931..321f9c5c9 100644
--- a/tests/automatic/worker/next_multithread_broker/check_windows.bat
+++ b/tests/automatic/worker/next_multithread_broker/check_windows.bat
@@ -7,7 +7,7 @@ SET mongo_exe="c:\Program Files\MongoDB\Server\3.6\bin\mongo.exe"
 set full_name="%2"
 set short_name="%~nx2"
 
-start /B "" "%full_name%" settings.json
+start /B "" "%full_name%" -config settings.json
 
 ping 1.0.0.0 -n 1 -w 100 > nul
 
diff --git a/tests/manual/performance_broker/test.sh b/tests/manual/performance_broker/test.sh
index 3083e4e00..cf81d2ffd 100755
--- a/tests/manual/performance_broker/test.sh
+++ b/tests/manual/performance_broker/test.sh
@@ -41,7 +41,7 @@ ssh ${worker_node} mkdir ${worker_dir}
 scp settings_tmp.json ${service_node}:${service_dir}/settings.json
 rm settings_tmp.json
 scp ../../../cmake-build-release/broker/hidra2-broker ${service_node}:${service_dir}
-ssh ${service_node} "bash -c 'cd ${service_dir}; nohup ./hidra2-broker settings.json &> ${service_dir}/broker.log &'"
+ssh ${service_node} "bash -c 'cd ${service_dir}; nohup ./hidra2-broker -config settings.json &> ${service_dir}/broker.log &'"
 sleep 0.3
 scp ../../../cmake-build-release/worker/tools/folder_to_db/folder2db ${worker_node}:${worker_dir}
 ssh ${worker_node} ${worker_dir}/folder2db -n ${nthreads} ${dir} ${run_name} ${service_node}
diff --git a/tests/manual/performance_full_chain_simple/test.sh b/tests/manual/performance_full_chain_simple/test.sh
index b393711a2..f8b533a5b 100755
--- a/tests/manual/performance_full_chain_simple/test.sh
+++ b/tests/manual/performance_full_chain_simple/test.sh
@@ -86,7 +86,7 @@ ssh ${receiver_node} "bash -c 'cd ${receiver_dir}; nohup ./receiver settings.jso
 sleep 0.3
 
 #broker_start
-ssh ${broker_node} "bash -c 'cd ${broker_dir}; nohup ./hidra2-broker broker.json &> ${broker_dir}/broker.log &'"
+ssh ${broker_node} "bash -c 'cd ${broker_dir}; nohup ./hidra2-broker -config broker.json &> ${broker_dir}/broker.log &'"
 sleep 0.3
 
 #producer_start
-- 
GitLab