diff --git a/nucleus/controller.go b/nucleus/controller.go index 76beb0c3cc69aa02e4790ade1b8bc2d36edefda1..a0cdccbdf972faaa42b18d2cff72e23c6793c16a 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 1ada3063fe1ae8a8557d379b2d16bdc9f30efa81..9e541e687706e35d740cdc04ac1b3471a86b9be7 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 0000000000000000000000000000000000000000..917537b7541ba7dedf5203228f756b4511297856 --- /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 a384c683dd42af0550930f20f48e70e0b33105d3..d9af6d0247d776dc0d5a7f9771f2dc60fbb0dcc1 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, } }