From bea49da9674b4e546cd703f3470958999821fe25 Mon Sep 17 00:00:00 2001 From: Manuel Kieweg <mail@manuelkieweg.de> Date: Mon, 28 Sep 2020 18:12:50 +0100 Subject: [PATCH] proper bytes.Buffer instead of makeshift []byte --- nucleus/nucleus-core.go | 2 +- restconf/client/ciena/client.go | 34 +++++++++++++++++---------------- restconf/util/unmarshal.go | 7 +++---- 3 files changed, 22 insertions(+), 21 deletions(-) diff --git a/nucleus/nucleus-core.go b/nucleus/nucleus-core.go index 5df7e06e4..2c65edf25 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 100ab056b..9b3738e7e 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 b044bd09c..2386eec8e 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 } -- GitLab