diff --git a/nucleus/nucleus-core.go b/nucleus/nucleus-core.go index 5df7e06e4bc636360acab367cb2edfd82702e4ce..2c65edf25218f73c6b542dfcffae844077c38b06 100644 --- a/nucleus/nucleus-core.go +++ b/nucleus/nucleus-core.go @@ -58,7 +58,7 @@ func StartUp(socket, filename string) { log.Info("Starting my ducks") // Init the Core core := Core{ - clients: make(map[string]interfaces.Client, 0), + clients: make(map[string]interfaces.Client), database: database.Database{}, } core.Init(socket, filename) diff --git a/restconf/client/ciena/client.go b/restconf/client/ciena/client.go index 100ab056bf6e90ecb2bf991f8727460382ad140e..9b3738e7e692b232359ef1a2ce418c60b622b5ff 100644 --- a/restconf/client/ciena/client.go +++ b/restconf/client/ciena/client.go @@ -1,7 +1,9 @@ package ciena 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/restconf/util" apiclient "code.fbi.h-da.de/cocsn/swagger/apis/mcp/client" "crypto/tls" @@ -16,7 +18,7 @@ type MCPClient struct { transport *httptransport.Runtime client *apiclient.ServiceTopologyTAPI database *database.Database - buf *[]byte + buffer *bytes.Buffer } func (c MCPClient) GetConfig() string { @@ -25,7 +27,7 @@ func (c MCPClient) GetConfig() string { } //NewMCPClient creates a client -func NewMCPClient(endpoint, username, password string, database *database.Database) MCPClient { +func NewMCPClient(endpoint, username, password string, database *database.Database) *MCPClient { // create the transport transport := httptransport.New(endpoint, "/", nil) transport.Transport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true} @@ -36,37 +38,37 @@ func NewMCPClient(endpoint, username, password string, database *database.Databa transport.DefaultAuthentication = basicAuth client := apiclient.New(transport, strfmt.Default) - buf := make([]byte, 0) - transport.Consumers[runtime.JSONMime] = util.YANGConsumer{Data: &buf} + buffer := new(bytes.Buffer) + transport.Consumers[runtime.JSONMime] = util.YANGConsumer{Data: buffer} - return MCPClient{ + return &MCPClient{ transport: transport, client: client, - database: database, - buf: &buf, + database: database, + buffer: buffer, } } func (c *MCPClient) GetConnections() error { - c.buf = nil + defer c.buffer.Reset() _, err := c.client.TapiConnectivityCore.GetTapiCoreContextConnection(nil) - c.database.StoreConnections(string(*c.buf)) - c.buf = nil + c.database.StoreConnections(c.buffer.String()) + log.Debug(c.buffer.String()) return err } func (c *MCPClient) GetNodes() error { - c.buf = nil + defer c.buffer.Reset() _, err := c.client.TapiTopologyCore.GetTapiCoreContextTopologyMcpBaseTopologyNode(nil) - c.database.StoreNodes(string(*c.buf)) - c.buf = nil + c.database.StoreNodes(c.buffer.String()) + log.Debug(c.buffer.String()) return err } func (c *MCPClient) GetNodeEdgePoints() error { - c.buf = nil + defer c.buffer.Reset() _, err := c.client.TapiTopologyCore.GetTapiCoreContextTopologyMcpBaseTopologyNodeEdgePoint(nil) - c.database.StoreNodeEdgePoints(string(*c.buf)) - c.buf = nil + c.database.StoreNodeEdgePoints(c.buffer.String()) + log.Debug(c.buffer.String()) return err } diff --git a/restconf/util/unmarshal.go b/restconf/util/unmarshal.go index b044bd09ceb2385a7087850ed2c322db8ce4634c..2386eec8e18bc61e08b71fc7cc782ebe9318bb06 100644 --- a/restconf/util/unmarshal.go +++ b/restconf/util/unmarshal.go @@ -1,16 +1,15 @@ package util import ( + "bytes" "io" - "io/ioutil" ) type YANGConsumer struct { - Data *[]byte + Data *bytes.Buffer } func (yc YANGConsumer)Consume(reader io.Reader, _ interface{}) error { - var err error = nil - *yc.Data, err = ioutil.ReadAll(reader) + _,err := yc.Data.ReadFrom(reader) return err }