From 15ca315669b446956c0fa8e1e651466b648e0a6d Mon Sep 17 00:00:00 2001 From: Manuel Kieweg <mail@manuelkieweg.de> Date: Tue, 6 Oct 2020 18:22:33 +0100 Subject: [PATCH] GetConfig filled with life --- nucleus/controller.go | 13 +++++-------- nucleus/interfaces/client.go | 2 +- nucleus/interfaces/clientConfig.go | 8 ++++++++ restconf/client/ciena/client.go | 10 ++++++---- 4 files changed, 20 insertions(+), 13 deletions(-) create mode 100644 nucleus/interfaces/clientConfig.go diff --git a/nucleus/controller.go b/nucleus/controller.go index 76beb0c3c..a0cdccbdf 100644 --- a/nucleus/controller.go +++ b/nucleus/controller.go @@ -18,11 +18,8 @@ type controllerConfig struct { ConfigPath string } -type clientConfig struct{ - identifier string - endpoint string - username string - password string +type clientConfigs struct { + Client []interfaces.ClientConfig `toml:"client"` } type Core struct { @@ -98,12 +95,12 @@ func (c *Core)readClientConfig(configFileClient string) error { if _,err := os.Stat(configFileClient); err != nil { return err } - clients := make([]clientConfig, 0) + clients := clientConfigs{} if _,err := toml.DecodeFile(configFileClient, &clients); err != nil { return err } - for _,client := range clients { - c.clients[client.identifier] = ciena.NewMCPClient(client.endpoint, client.username, client.password, &c.database) + for _,client := range clients.Client { + c.clients[client.Identifier] = ciena.NewMCPClient(client.Endpoint, client.Username, client.Password, &c.database, &client) } return nil } \ No newline at end of file diff --git a/nucleus/interfaces/client.go b/nucleus/interfaces/client.go index 1ada3063f..9e541e687 100644 --- a/nucleus/interfaces/client.go +++ b/nucleus/interfaces/client.go @@ -1,5 +1,5 @@ package interfaces type Client interface { - GetConfig() string + GetConfig() ClientConfig } diff --git a/nucleus/interfaces/clientConfig.go b/nucleus/interfaces/clientConfig.go new file mode 100644 index 000000000..917537b75 --- /dev/null +++ b/nucleus/interfaces/clientConfig.go @@ -0,0 +1,8 @@ +package interfaces + +type ClientConfig struct { + Identifier string `toml:"identifier"` + Endpoint string `toml:"endpoint"` + Username string `toml:"username"` + Password string `toml:"password"` +} diff --git a/restconf/client/ciena/client.go b/restconf/client/ciena/client.go index a384c683d..d9af6d024 100644 --- a/restconf/client/ciena/client.go +++ b/restconf/client/ciena/client.go @@ -4,6 +4,7 @@ import ( "bytes" "code.fbi.h-da.de/cocsn/gosdn/database" "code.fbi.h-da.de/cocsn/gosdn/log" + "code.fbi.h-da.de/cocsn/gosdn/nucleus/interfaces" "code.fbi.h-da.de/cocsn/gosdn/restconf/util" apiclient "code.fbi.h-da.de/cocsn/swagger/apis/mcp/client" "crypto/tls" @@ -19,15 +20,15 @@ type MCPClient struct { client *apiclient.ServiceTopologyTAPI database *database.Database buffer *bytes.Buffer + config *interfaces.ClientConfig } -func (c MCPClient) GetConfig() string { - //TODO: Fill with life - return "..." +func (c MCPClient) GetConfig() interfaces.ClientConfig { + return *c.config } //NewMCPClient creates a client -func NewMCPClient(endpoint, username, password string, database *database.Database) *MCPClient { +func NewMCPClient(endpoint, username, password string, database *database.Database, config *interfaces.ClientConfig) *MCPClient { // create the transport transport := httptransport.New(endpoint, "/", nil) transport.Transport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true} @@ -45,6 +46,7 @@ func NewMCPClient(endpoint, username, password string, database *database.Databa client: client, database: database, buffer: buffer, + config: config, } } -- GitLab