Skip to content
Snippets Groups Projects
Commit bea49da9 authored by Manuel Kieweg's avatar Manuel Kieweg
Browse files

proper bytes.Buffer instead of makeshift []byte

parent 68888f89
No related branches found
No related tags found
2 merge requests!28Resolve "Proper IO Buffer for MCP Client",!18Develop
......@@ -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)
......
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
}
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
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment