Skip to content
Snippets Groups Projects

Enable export and import of SDN configuration

Merged Ghost User requested to merge export-import-sdn-config into develop
2 files
+ 25
18
Compare changes
  • Side-by-side
  • Inline
Files
2
@@ -117,20 +117,30 @@ func (c ConfigurationManagementServer) ImportSDNConfig(ctx context.Context, requ
//TODO: Clear DB
//Create all elements
c.createElements(&sdnConfig, request)
if err != nil {
return nil, err
}
return &cmpb.ImportSDNConfigResponse{
Timestamp: time.Now().UnixNano()}, nil
}
func (c ConfigurationManagementServer) createElements(sdnConfig *loadedSDNConfig, request *cmpb.ImportSDNConfigRequest) error {
pndUUID := uuid.MustParse(request.Pid)
pnd, err := c.pndStore.Get(store.Query{ID: pndUUID})
if err != nil {
return nil, err
return err
}
for _, inputSBI := range sdnConfig.Sbis {
sbi, err := nucleus.NewSBI(inputSBI.Type, uuid.MustParse(inputSBI.ID))
if err != nil {
return nil, err
return err
}
err = pnd.AddSbi(sbi)
if err != nil {
return nil, err
return err
}
}
@@ -141,7 +151,7 @@ func (c ConfigurationManagementServer) ImportSDNConfig(ctx context.Context, requ
}
_, err = c.nodeService.EnsureExists(node)
if err != nil {
return nil, err
return err
}
}
@@ -153,26 +163,26 @@ func (c ConfigurationManagementServer) ImportSDNConfig(ctx context.Context, requ
}
_, err = c.portService.EnsureExists(port)
if err != nil {
return nil, err
return err
}
}
for _, inputPort := range sdnConfig.Links {
sourceNode, err := c.nodeService.Get(store.Query{ID: inputPort.SourceNode.ID})
if err != nil {
return nil, err
return err
}
targetNode, err := c.nodeService.Get(store.Query{ID: inputPort.TargetNode.ID})
if err != nil {
return nil, err
return err
}
sourcePort, err := c.portService.Get(store.Query{ID: inputPort.SourcePort.ID})
if err != nil {
return nil, err
return err
}
targetPort, err := c.portService.Get(store.Query{ID: inputPort.TargetPort.ID})
if err != nil {
return nil, err
return err
}
link := links.Link{
ID: inputPort.ID,
@@ -184,7 +194,7 @@ func (c ConfigurationManagementServer) ImportSDNConfig(ctx context.Context, requ
}
err = c.topologyService.AddLink(link)
if err != nil {
return nil, err
return err
}
}
@@ -205,21 +215,18 @@ func (c ConfigurationManagementServer) ImportSDNConfig(ctx context.Context, requ
uuid.MustParse(inputNetworkElement.ID),
)
if err != nil {
return nil, err
return err
}
networkelement, err := pnd.GetNetworkElement(inputNetworkElement.ID)
if err != nil {
return nil, err
return err
}
err = pnd.UpdateNetworkElement(networkelement, inputNetworkElement.Model)
if err != nil {
return nil, err
return err
}
}
return &cmpb.ImportSDNConfigResponse{
Timestamp: time.Now().UnixNano()}, nil
return nil
}
Loading