From 714c41fe3a3de94e39be1d272c7ec2bb07b910b5 Mon Sep 17 00:00:00 2001
From: Sergey Yakubov <sergey.yakubov@desy.de>
Date: Thu, 2 Apr 2020 12:37:38 +0200
Subject: [PATCH] refactor discovery

---
 common/go/src/asapo_common/utils/structs.go   |  5 ++
 .../src/asapo_discovery/common/consts.go      |  8 ++
 .../src/asapo_discovery/common/structs.go     |  6 +-
 .../request_handler/request_handler.go        | 14 ++--
 .../request_handler/request_handler_consul.go | 58 ++-----------
 .../request_handler_consul_test.go            | 82 +++----------------
 .../request_handler/request_handler_static.go | 35 ++++----
 .../request_handler_static_test.go            | 12 +--
 .../asapo_discovery/server/get_receivers.go   | 29 ++-----
 .../src/asapo_discovery/server/listroutes.go  | 10 +--
 .../src/asapo_discovery/server/routes_test.go | 43 +++++-----
 .../src/asapo_discovery/server/server.go      |  5 +-
 .../asapo_discovery/server/settings_test.go   |  6 +-
 13 files changed, 103 insertions(+), 210 deletions(-)
 create mode 100644 common/go/src/asapo_common/utils/structs.go
 create mode 100644 discovery/src/asapo_discovery/common/consts.go
 rename common/go/src/asapo_common/utils/stucts.go => discovery/src/asapo_discovery/common/structs.go (93%)

diff --git a/common/go/src/asapo_common/utils/structs.go b/common/go/src/asapo_common/utils/structs.go
new file mode 100644
index 000000000..37f7a1f56
--- /dev/null
+++ b/common/go/src/asapo_common/utils/structs.go
@@ -0,0 +1,5 @@
+package utils
+
+type FolderTokenTokenExtraClaim struct {
+	RootFolder string
+}
diff --git a/discovery/src/asapo_discovery/common/consts.go b/discovery/src/asapo_discovery/common/consts.go
new file mode 100644
index 000000000..9789e656f
--- /dev/null
+++ b/discovery/src/asapo_discovery/common/consts.go
@@ -0,0 +1,8 @@
+package common
+
+const  (
+	NameMongoService = "asapo-mongodb"
+	NameFtsService = "asapo-file-transfer"
+	NameBrokerService = "asapo-broker"
+	NameReceiverService = "asapo-receiver"
+)
diff --git a/common/go/src/asapo_common/utils/stucts.go b/discovery/src/asapo_discovery/common/structs.go
similarity index 93%
rename from common/go/src/asapo_common/utils/stucts.go
rename to discovery/src/asapo_discovery/common/structs.go
index e9c11a59e..2b4115500 100644
--- a/common/go/src/asapo_common/utils/stucts.go
+++ b/discovery/src/asapo_discovery/common/structs.go
@@ -1,4 +1,4 @@
-package utils
+package common
 
 import "errors"
 
@@ -56,7 +56,3 @@ func (settings *Settings) Validate() error {
 
 	return nil
 }
-
-type FolderTokenTokenExtraClaim struct {
-	RootFolder string
-}
diff --git a/discovery/src/asapo_discovery/request_handler/request_handler.go b/discovery/src/asapo_discovery/request_handler/request_handler.go
index 8949bf179..85fac562f 100644
--- a/discovery/src/asapo_discovery/request_handler/request_handler.go
+++ b/discovery/src/asapo_discovery/request_handler/request_handler.go
@@ -1,12 +1,16 @@
 package request_handler
 
-import "asapo_common/utils"
+import (
+	"asapo_discovery/common"
+)
 
 type Agent interface {
 	GetReceivers(bool) ([]byte, error)
-	GetBroker() ([]byte, error)
-	GetMongo() ([]byte, error)
-	GetFts() ([]byte, error)
-	Init(settings utils.Settings) error
+	GetSingleService(service string) ([]byte, error)
+	Init(settings common.Settings) error
 }
 
+type Responce struct {
+	MaxConnections int
+	Uris           []string
+}
\ No newline at end of file
diff --git a/discovery/src/asapo_discovery/request_handler/request_handler_consul.go b/discovery/src/asapo_discovery/request_handler/request_handler_consul.go
index 3fa6862e3..32a91e59f 100644
--- a/discovery/src/asapo_discovery/request_handler/request_handler_consul.go
+++ b/discovery/src/asapo_discovery/request_handler/request_handler_consul.go
@@ -1,12 +1,13 @@
 package request_handler
 
 import (
-	"asapo_common/utils"
 	"github.com/hashicorp/consul/api"
 	"strconv"
 	"errors"
 	"sort"
 	"sync"
+	"asapo_discovery/common"
+	"asapo_common/utils"
 )
 
 type ConsulRequestHandler struct {
@@ -15,10 +16,6 @@ type ConsulRequestHandler struct {
 	staticHandler *StaticRequestHandler
 }
 
-type Responce struct {
-	MaxConnections int
-	Uris           []string
-}
 
 type SafeCounter struct {
 	counter   int
@@ -77,15 +74,15 @@ func (rh *ConsulRequestHandler) GetReceivers(use_ib bool) ([]byte, error) {
 	return utils.MapToJson(&response)
 }
 
-func (rh *ConsulRequestHandler) GetBroker() ([]byte, error) {
-	if len(rh.staticHandler.broker)>0 {
-		return rh.staticHandler.GetBroker()
+func (rh *ConsulRequestHandler) GetSingleService(name string) ([]byte, error) {
+	if len(rh.staticHandler.singleServices[name])>0 {
+		return rh.staticHandler.GetSingleService(name)
 	}
 
 	if (rh.client == nil) {
 		return nil, errors.New("consul client not connected")
 	}
-	response, err := rh.GetServices("asapo-broker",false)
+	response, err := rh.GetServices(name,false)
 	if err != nil {
 		return nil, err
 	}
@@ -96,48 +93,7 @@ func (rh *ConsulRequestHandler) GetBroker() ([]byte, error) {
 		return []byte(response[counter.Next(size)]),nil
 	}
 	return nil, nil
-}
 
-func (rh *ConsulRequestHandler) GetMongo() ([]byte, error) {
-	if len(rh.staticHandler.mongo)>0 {
-		return rh.staticHandler.GetMongo()
-	}
-
-	if (rh.client == nil) {
-		return nil, errors.New("consul client not connected")
-	}
-	response, err := rh.GetServices("mongo",false)
-	if err != nil {
-		return nil, err
-	}
-	size := len(response)
-	if size ==0 {
-		return []byte(""),nil
-	}else {
-		return []byte(response[counter.Next(size)]),nil
-	}
-	return nil, nil
-}
-
-func (rh *ConsulRequestHandler) GetFts() ([]byte, error) {
-	if len(rh.staticHandler.fts)>0 {
-		return rh.staticHandler.GetFts()
-	}
-
-	if (rh.client == nil) {
-		return nil, errors.New("consul client not connected")
-	}
-	response, err := rh.GetServices("asapo-fts",false)
-	if err != nil {
-		return nil, err
-	}
-	size := len(response)
-	if size ==0 {
-		return []byte(""),nil
-	}else {
-		return []byte(response[counter.Next(size)]),nil
-	}
-	return nil, nil
 }
 
 func (rh *ConsulRequestHandler) connectClient(uri string) (client *api.Client, err error) {
@@ -155,7 +111,7 @@ func (rh *ConsulRequestHandler) connectClient(uri string) (client *api.Client, e
 	return
 }
 
-func (rh *ConsulRequestHandler) Init(settings utils.Settings) (err error) {
+func (rh *ConsulRequestHandler) Init(settings common.Settings) (err error) {
 	rh.staticHandler = new(StaticRequestHandler)
 	rh.staticHandler.Init(settings)
 	rh.MaxConnections = settings.Receiver.MaxConnections
diff --git a/discovery/src/asapo_discovery/request_handler/request_handler_consul_test.go b/discovery/src/asapo_discovery/request_handler/request_handler_consul_test.go
index 234e17192..516928011 100644
--- a/discovery/src/asapo_discovery/request_handler/request_handler_consul_test.go
+++ b/discovery/src/asapo_discovery/request_handler/request_handler_consul_test.go
@@ -5,7 +5,7 @@ import (
 	"testing"
 	"github.com/hashicorp/consul/api"
 	"strconv"
-	"asapo_common/utils"
+	"asapo_discovery/common"
 )
 
 type ConsulHandlerTestSuite struct {
@@ -18,7 +18,7 @@ func TestConsulHandlerTestSuite(t *testing.T) {
 	suite.Run(t, new(ConsulHandlerTestSuite))
 }
 
-var consul_settings utils.Settings
+var consul_settings common.Settings
 
 func (suite *ConsulHandlerTestSuite) registerAgents(name string) {
 	for i := 1234; i < 1236; i++ {
@@ -42,7 +42,7 @@ func (suite *ConsulHandlerTestSuite) registerAgents(name string) {
 
 func (suite *ConsulHandlerTestSuite) SetupTest() {
 	var err error
-	consul_settings = utils.Settings{Receiver: utils.ReceiverInfo{MaxConnections: 10, StaticEndpoints: []string{}}}
+	consul_settings = common.Settings{Receiver: common.ReceiverInfo{MaxConnections: 10, StaticEndpoints: []string{}}}
 
 	suite.client, err = api.NewClient(api.DefaultConfig())
 	if err != nil {
@@ -51,8 +51,6 @@ func (suite *ConsulHandlerTestSuite) SetupTest() {
 
 	suite.registerAgents("asapo-receiver")
 	suite.registerAgents("asapo-broker")
-	suite.registerAgents("asapo-fts")
-	suite.registerAgents("mongo")
 }
 
 func (suite *ConsulHandlerTestSuite) TearDownTest() {
@@ -60,11 +58,6 @@ func (suite *ConsulHandlerTestSuite) TearDownTest() {
 	suite.client.Agent().ServiceDeregister("asapo-receiver1235")
 	suite.client.Agent().ServiceDeregister("asapo-broker1234")
 	suite.client.Agent().ServiceDeregister("asapo-broker1235")
-	suite.client.Agent().ServiceDeregister("mongo1234")
-	suite.client.Agent().ServiceDeregister("mongo1235")
-	suite.client.Agent().ServiceDeregister("asapo-fts1234")
-	suite.client.Agent().ServiceDeregister("asapo-fts1235")
-
 }
 
 func (suite *ConsulHandlerTestSuite) TestInitDefaultUri() {
@@ -128,61 +121,34 @@ func (suite *ConsulHandlerTestSuite) TestGetReceiversWhenNotConnected() {
 func (suite *ConsulHandlerTestSuite) TestGetBrokerWhenNotConnected() {
 	consul_settings.ConsulEndpoints = []string{"blabla"}
 	suite.handler.Init(consul_settings)
-	_, err := suite.handler.GetBroker()
+	_, err := suite.handler.GetSingleService(common.NameBrokerService)
 	suite.Error(err, "")
 }
 
 func (suite *ConsulHandlerTestSuite) TestGetBrokerRoundRobin() {
 	suite.handler.Init(consul_settings)
-	res, err := suite.handler.GetBroker()
-	suite.NoError(err, "")
-	suite.Equal("127.0.0.1:1234", string(res), "uris")
-
-	res, err = suite.handler.GetBroker()
-	suite.NoError(err, "")
-	suite.Equal("127.0.0.1:1235", string(res), "uris")
-
-	res, err = suite.handler.GetBroker()
-	suite.NoError(err, "")
-	suite.Equal("127.0.0.1:1234", string(res), "uris")
-
-}
-
-func (suite *ConsulHandlerTestSuite) TestGetMongoRoundRobin() {
-	suite.handler.Init(consul_settings)
-	res, err := suite.handler.GetMongo()
+	res, err := suite.handler.GetSingleService(common.NameBrokerService)
 	suite.NoError(err, "")
 	suite.Equal("127.0.0.1:1234", string(res), "uris")
 
-	res, err = suite.handler.GetMongo()
+	res, err = suite.handler.GetSingleService(common.NameBrokerService)
 	suite.NoError(err, "")
 	suite.Equal("127.0.0.1:1235", string(res), "uris")
 
-	res, err = suite.handler.GetMongo()
+	res, err = suite.handler.GetSingleService(common.NameBrokerService)
 	suite.NoError(err, "")
 	suite.Equal("127.0.0.1:1234", string(res), "uris")
-}
-
-func (suite *ConsulHandlerTestSuite) TestGetMongoStatic() {
-	consul_settings.Mongo.StaticEndpoint="127.0.0.1:0000"
-	suite.handler.Init(consul_settings)
-	res, err := suite.handler.GetMongo()
-	suite.NoError(err, "")
-	suite.Equal("127.0.0.1:0000", string(res), "uris")
 
-	res, err = suite.handler.GetMongo()
-	suite.NoError(err, "")
-	suite.Equal("127.0.0.1:0000", string(res), "uris")
 }
 
 func (suite *ConsulHandlerTestSuite) TestGetBrokerStatic() {
 	consul_settings.Broker.StaticEndpoint="127.0.0.1:0000"
 	suite.handler.Init(consul_settings)
-	res, err := suite.handler.GetBroker()
+	res, err := suite.handler.GetSingleService(common.NameBrokerService)
 	suite.NoError(err, "")
 	suite.Equal("127.0.0.1:0000", string(res), "uris")
 
-	res, err = suite.handler.GetBroker()
+	res, err = suite.handler.GetSingleService(common.NameBrokerService)
 	suite.NoError(err, "")
 	suite.Equal("127.0.0.1:0000", string(res), "uris")
 }
@@ -192,36 +158,8 @@ func (suite *ConsulHandlerTestSuite) TestGetBrokerEmpty() {
 	suite.client.Agent().ServiceDeregister("asapo-broker1235")
 
 	suite.handler.Init(consul_settings)
-	res, err := suite.handler.GetBroker()
+	res, err := suite.handler.GetSingleService(common.NameBrokerService)
 	suite.NoError(err, "")
 	suite.Equal("", string(res), "uris")
 }
 
-func (suite *ConsulHandlerTestSuite) TestGetFtsRoundRobin() {
-	suite.handler.Init(consul_settings)
-	res, err := suite.handler.GetFts()
-	suite.NoError(err, "")
-	suite.Equal("127.0.0.1:1235", string(res), "uris")
-
-	res, err = suite.handler.GetFts()
-	suite.NoError(err, "")
-	suite.Equal("127.0.0.1:1234", string(res), "uris")
-
-	res, err = suite.handler.GetFts()
-	suite.NoError(err, "")
-	suite.Equal("127.0.0.1:1235", string(res), "uris")
-}
-
-func (suite *ConsulHandlerTestSuite) TestGetFtsStatic() {
-	consul_settings.FileTransferService.StaticEndpoint="127.0.0.1:0000"
-	suite.handler.Init(consul_settings)
-	res, err := suite.handler.GetFts()
-	suite.NoError(err, "")
-	suite.Equal("127.0.0.1:0000", string(res), "uris")
-
-	res, err = suite.handler.GetFts()
-	suite.NoError(err, "")
-	suite.Equal("127.0.0.1:0000", string(res), "uris")
-}
-
-
diff --git a/discovery/src/asapo_discovery/request_handler/request_handler_static.go b/discovery/src/asapo_discovery/request_handler/request_handler_static.go
index b603c8593..a874bc522 100644
--- a/discovery/src/asapo_discovery/request_handler/request_handler_static.go
+++ b/discovery/src/asapo_discovery/request_handler/request_handler_static.go
@@ -2,38 +2,33 @@ package request_handler
 
 import (
 	"asapo_common/utils"
+	"errors"
+	"asapo_discovery/common"
 )
 
 type StaticRequestHandler struct {
 	receiverResponce Responce
-	broker string
-	mongo string
-	fts string
+	singleServices map[string]string
 }
 
+func (rh *StaticRequestHandler) GetSingleService(service string) ([]byte, error) {
+	uri,ok := rh.singleServices[service]
+	if !ok {
+		return nil, errors.New("wrong service: " + service)
+	}
+	return  []byte(uri),nil
+}
 
 func (rh *StaticRequestHandler) GetReceivers(bool) ([]byte, error) {
 	return utils.MapToJson(&rh.receiverResponce)
 }
 
-func (rh *StaticRequestHandler) GetBroker() ([]byte, error) {
-	return []byte(rh.broker),nil
-}
-
-func (rh *StaticRequestHandler) GetMongo() ([]byte, error) {
-	return []byte(rh.mongo),nil
-}
-
-func (rh *StaticRequestHandler) GetFts() ([]byte, error) {
-	return []byte(rh.fts),nil
-}
-
-
-func (rh *StaticRequestHandler) Init(settings utils.Settings) error {
+func (rh *StaticRequestHandler) Init(settings common.Settings) error {
 	rh.receiverResponce.MaxConnections = settings.Receiver.MaxConnections
 	rh.receiverResponce.Uris = settings.Receiver.StaticEndpoints
-	rh.broker = settings.Broker.StaticEndpoint
-	rh.mongo = settings.Mongo.StaticEndpoint
-	rh.fts = settings.FileTransferService.StaticEndpoint
+	rh.singleServices = make(map[string]string)
+	rh.singleServices[common.NameBrokerService] = settings.Broker.StaticEndpoint
+	rh.singleServices[common.NameMongoService] = settings.Mongo.StaticEndpoint
+	rh.singleServices[common.NameFtsService] = settings.FileTransferService.StaticEndpoint
 	return nil
 }
diff --git a/discovery/src/asapo_discovery/request_handler/request_handler_static_test.go b/discovery/src/asapo_discovery/request_handler/request_handler_static_test.go
index 7409996fa..2f5cc8c6d 100644
--- a/discovery/src/asapo_discovery/request_handler/request_handler_static_test.go
+++ b/discovery/src/asapo_discovery/request_handler/request_handler_static_test.go
@@ -3,15 +3,15 @@ package request_handler
 import (
 	"github.com/stretchr/testify/assert"
 	"testing"
-    "asapo_common/utils"
+	"asapo_discovery/common"
 )
 
 
 var uris = []string{"ip1","ip2"}
 const max_conn = 1
 
-var static_settings utils.Settings= utils.Settings{Receiver:utils.ReceiverInfo{MaxConnections:max_conn,StaticEndpoints:uris},Broker:utils.BrokerInfo{
-	StaticEndpoint:"ip_broker"}, Mongo:utils.MongoInfo{StaticEndpoint:"ip_mongo"}, FileTransferService:utils.FtsInfo{StaticEndpoint:"ip_fts"}}
+var static_settings common.Settings= common.Settings{Receiver:common.ReceiverInfo{MaxConnections:max_conn,StaticEndpoints:uris},Broker:common.BrokerInfo{
+	StaticEndpoint:"ip_broker"}, Mongo:common.MongoInfo{StaticEndpoint:"ip_mongo"}, FileTransferService:common.FtsInfo{StaticEndpoint:"ip_fts"}}
 
 
 
@@ -31,14 +31,14 @@ func TestStaticHandlerGetReceviersOK(t *testing.T) {
 
 func TestStaticHandlerGetBrokerOK(t *testing.T) {
 	rh.Init(static_settings)
-	res,err := rh.GetBroker()
+	res,err := rh.GetSingleService(common.NameBrokerService)
 	assert.Equal(t,string(res), "ip_broker")
 	assert.Nil(t, err)
 }
 
 func TestStaticHandlerGetMongoOK(t *testing.T) {
 	rh.Init(static_settings)
-	res,err := rh.GetMongo()
+	res,err := rh.GetSingleService(common.NameMongoService)
 	assert.Equal(t,string(res), "ip_mongo")
 	assert.Nil(t, err)
 }
@@ -46,7 +46,7 @@ func TestStaticHandlerGetMongoOK(t *testing.T) {
 
 func TestStaticHandlerGetFtsOK(t *testing.T) {
 	rh.Init(static_settings)
-	res,err := rh.GetFts()
+	res,err := rh.GetSingleService(common.NameFtsService)
 	assert.Equal(t,string(res), "ip_fts")
 	assert.Nil(t, err)
 }
\ No newline at end of file
diff --git a/discovery/src/asapo_discovery/server/get_receivers.go b/discovery/src/asapo_discovery/server/get_receivers.go
index 056d30370..5fed8a36a 100644
--- a/discovery/src/asapo_discovery/server/get_receivers.go
+++ b/discovery/src/asapo_discovery/server/get_receivers.go
@@ -3,28 +3,17 @@ package server
 import (
 	"net/http"
 	"asapo_common/logger"
-	"errors"
+	"asapo_discovery/common"
 )
 
 func getService(service string) (answer []byte, code int) {
 	var err error
-	switch service {
-	case "receivers":
+	if (service == "asapo-receiver") {
 		answer, err = requestHandler.GetReceivers(settings.Receiver.UseIBAddress)
-		break
-	case "broker":
-		answer, err = requestHandler.GetBroker()
-		break
-	case "mongo":
-		answer, err = requestHandler.GetMongo()
-		break
-	case "fts":
-		answer, err = requestHandler.GetFts()
-		break
-	default:
-		err = errors.New("wrong request: "+service)
-	}
+	} else {
+		answer, err = requestHandler.GetSingleService(service)
 
+	}
 	log_str := "processing get "+service
 	if err != nil {
 		logger.Error(log_str + " - " + err.Error())
@@ -37,28 +26,28 @@ func getService(service string) (answer []byte, code int) {
 
 func routeGetReceivers(w http.ResponseWriter, r *http.Request) {
 	r.Header.Set("Content-type", "application/json")
-	answer,code := getService("receivers")
+	answer,code := getService(common.NameReceiverService)
 	w.WriteHeader(code)
 	w.Write(answer)
 }
 
 func routeGetBroker(w http.ResponseWriter, r *http.Request) {
 	r.Header.Set("Content-type", "application/json")
-	answer,code := getService("broker")
+	answer,code := getService(common.NameBrokerService)
 	w.WriteHeader(code)
 	w.Write(answer)
 }
 
 func routeGetMongo(w http.ResponseWriter, r *http.Request) {
 	r.Header.Set("Content-type", "application/json")
-	answer,code := getService("mongo")
+	answer,code := getService(common.NameMongoService)
 	w.WriteHeader(code)
 	w.Write(answer)
 }
 
 func routeGetFileTransferService(w http.ResponseWriter, r *http.Request) {
 	r.Header.Set("Content-type", "application/json")
-	answer,code := getService("fts")
+	answer,code := getService(common.NameFtsService)
 	w.WriteHeader(code)
 	w.Write(answer)
 }
\ No newline at end of file
diff --git a/discovery/src/asapo_discovery/server/listroutes.go b/discovery/src/asapo_discovery/server/listroutes.go
index 6ae466fa6..ec6ae1737 100644
--- a/discovery/src/asapo_discovery/server/listroutes.go
+++ b/discovery/src/asapo_discovery/server/listroutes.go
@@ -2,32 +2,32 @@ package server
 
 import (
 	"asapo_common/utils"
+	"asapo_discovery/common"
 )
 
 var listRoutes = utils.Routes{
 	utils.Route{
 		"GetReceivers",
 		"Get",
-		"/receivers",
+		"/" + common.NameReceiverService,
 		routeGetReceivers,
 	},
 	utils.Route{
 		"GetBroker",
 		"Get",
-		"/broker",
+		"/asapo-broker",
 		routeGetBroker,
 	},
 	utils.Route{
 		"GetMongo",
 		"Get",
-		"/mongo",
+		"/" + common.NameMongoService,
 		routeGetMongo,
 	},
 	utils.Route{
 		"GetFTS",
 		"Get",
-		"/fts",
+		"/" + common.NameFtsService,
 		routeGetFileTransferService,
 	},
-
 }
diff --git a/discovery/src/asapo_discovery/server/routes_test.go b/discovery/src/asapo_discovery/server/routes_test.go
index eeac5da55..f15fb6070 100644
--- a/discovery/src/asapo_discovery/server/routes_test.go
+++ b/discovery/src/asapo_discovery/server/routes_test.go
@@ -10,6 +10,7 @@ import (
 	"strings"
 	"testing"
 	"asapo_discovery/request_handler"
+	"asapo_discovery/common"
 )
 
 func containsMatcher(substr string) func(str string) bool {
@@ -24,27 +25,27 @@ func doRequest(path string) *httptest.ResponseRecorder {
 	return w
 }
 
-type GetReceiversTestSuite struct {
+type GetServicesTestSuite struct {
 	suite.Suite
 }
 
-func (suite *GetReceiversTestSuite) SetupTest() {
+func (suite *GetServicesTestSuite) SetupTest() {
 	requestHandler = new(request_handler.StaticRequestHandler)
-	var s utils.Settings= utils.Settings{Receiver:utils.ReceiverInfo{MaxConnections:10,StaticEndpoints:[]string{"ip1","ip2"}},
-	Broker:utils.BrokerInfo{StaticEndpoint:"ip_broker"},Mongo:utils.MongoInfo{StaticEndpoint:"ip_mongo"},
-		FileTransferService:utils.FtsInfo{StaticEndpoint:"ip_fts"}}
+	var s common.Settings= common.Settings{Receiver:common.ReceiverInfo{MaxConnections:10,StaticEndpoints:[]string{"ip1","ip2"}},
+	Broker:common.BrokerInfo{StaticEndpoint:"ip_broker"},Mongo:common.MongoInfo{StaticEndpoint:"ip_mongo"},
+		FileTransferService:common.FtsInfo{StaticEndpoint:"ip_fts"}}
 
 	requestHandler.Init(s)
 	logger.SetMockLog()
 }
 
-func (suite *GetReceiversTestSuite) TearDownTest() {
+func (suite *GetServicesTestSuite) TearDownTest() {
 	logger.UnsetMockLog()
 	requestHandler = nil
 }
 
-func TestGetReceiversTestSuite(t *testing.T) {
-	suite.Run(t, new(GetReceiversTestSuite))
+func TestGetServicesTestSuite(t *testing.T) {
+	suite.Run(t, new(GetServicesTestSuite))
 }
 
 func assertExpectations(t *testing.T) {
@@ -52,15 +53,15 @@ func assertExpectations(t *testing.T) {
 	logger.MockLog.ExpectedCalls = nil
 }
 
-func (suite *GetReceiversTestSuite) TestWrongPath() {
+func (suite *GetServicesTestSuite) TestWrongPath() {
 	w := doRequest("/blabla")
 	suite.Equal(http.StatusNotFound, w.Code, "wrong path")
 }
 
-func (suite *GetReceiversTestSuite) TestGetReceivers() {
-	logger.MockLog.On("Debug", mock.MatchedBy(containsMatcher("processing get receivers")))
+func (suite *GetServicesTestSuite) TestGetReceivers() {
+	logger.MockLog.On("Debug", mock.MatchedBy(containsMatcher("processing get "+common.NameReceiverService)))
 
-	w := doRequest("/receivers")
+	w := doRequest("/asapo-receiver")
 
 	suite.Equal(http.StatusOK, w.Code, "code ok")
 	suite.Equal(w.Body.String(), "{\"MaxConnections\":10,\"Uris\":[\"ip1\",\"ip2\"]}", "result")
@@ -68,30 +69,30 @@ func (suite *GetReceiversTestSuite) TestGetReceivers() {
 }
 
 
-func (suite *GetReceiversTestSuite) TestGetBroker() {
-	logger.MockLog.On("Debug", mock.MatchedBy(containsMatcher("processing get broker")))
+func (suite *GetServicesTestSuite) TestGetBroker() {
+	logger.MockLog.On("Debug", mock.MatchedBy(containsMatcher("processing get "+common.NameBrokerService)))
 
-	w := doRequest("/broker")
+	w := doRequest("/asapo-broker")
 
 	suite.Equal(http.StatusOK, w.Code, "code ok")
 	suite.Equal(w.Body.String(), "ip_broker", "result")
 	assertExpectations(suite.T())
 }
 
-func (suite *GetReceiversTestSuite) TestGetMongo() {
-	logger.MockLog.On("Debug", mock.MatchedBy(containsMatcher("processing get mongo")))
+func (suite *GetServicesTestSuite) TestGetMongo() {
+	logger.MockLog.On("Debug", mock.MatchedBy(containsMatcher("processing get "+common.NameMongoService)))
 
-	w := doRequest("/mongo")
+	w := doRequest("/asapo-mongodb")
 
 	suite.Equal(http.StatusOK, w.Code, "code ok")
 	suite.Equal(w.Body.String(), "ip_mongo", "result")
 	assertExpectations(suite.T())
 }
 
-func (suite *GetReceiversTestSuite) TestGetFts() {
-	logger.MockLog.On("Debug", mock.MatchedBy(containsMatcher("processing get fts")))
+func (suite *GetServicesTestSuite) TestGetFts() {
+	logger.MockLog.On("Debug", mock.MatchedBy(containsMatcher("processing get "+common.NameFtsService)))
 
-	w := doRequest("/fts")
+	w := doRequest("/asapo-file-transfer")
 
 	suite.Equal(http.StatusOK, w.Code, "code ok")
 	suite.Equal(w.Body.String(), "ip_fts", "result")
diff --git a/discovery/src/asapo_discovery/server/server.go b/discovery/src/asapo_discovery/server/server.go
index 63379b876..b1292d7a1 100644
--- a/discovery/src/asapo_discovery/server/server.go
+++ b/discovery/src/asapo_discovery/server/server.go
@@ -2,13 +2,13 @@ package server
 
 import (
 	"asapo_discovery/request_handler"
-	"asapo_common/utils"
+	"asapo_discovery/common"
 )
 
 var requestHandler request_handler.Agent
 
 
-var settings utils.Settings
+var settings common.Settings
 
 func SetHandler(rh request_handler.Agent) error {
 	requestHandler = rh
@@ -20,3 +20,4 @@ func SetHandler(rh request_handler.Agent) error {
 func GetHandlerMode()string {
 	return settings.Mode
 }
+
diff --git a/discovery/src/asapo_discovery/server/settings_test.go b/discovery/src/asapo_discovery/server/settings_test.go
index b6025b25a..a6f929522 100644
--- a/discovery/src/asapo_discovery/server/settings_test.go
+++ b/discovery/src/asapo_discovery/server/settings_test.go
@@ -3,11 +3,11 @@ package server
 import (
 	"github.com/stretchr/testify/assert"
 	"testing"
-	"asapo_common/utils"
+	"asapo_discovery/common"
 )
 
-func fillSettings(mode string) utils.Settings {
-	var settings utils.Settings
+func fillSettings(mode string) common.Settings {
+	var settings common.Settings
 	settings.Port = 1
 	settings.Mode = mode
 	settings.Receiver.MaxConnections = 10
-- 
GitLab