Newer
Older
cmpb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/configurationmanagement"
"code.fbi.h-da.de/danet/gosdn/controller/interfaces/networkdomain"
"code.fbi.h-da.de/danet/gosdn/controller/store"
"code.fbi.h-da.de/danet/gosdn/controller/topology"
"code.fbi.h-da.de/danet/gosdn/controller/topology/links"
"code.fbi.h-da.de/danet/gosdn/controller/topology/nodes"
"code.fbi.h-da.de/danet/gosdn/controller/topology/ports"
"github.com/google/uuid"
// ConfigurationManagementServer represents ConfigurationManagementServer...
pndStore networkdomain.PndStore
topologyService topology.Service
nodeService nodes.Service
portService ports.Service
// NewConfigurationManagementServer creates the ConfigurationManagementServer..
func NewConfigurationManagementServer(
pndStore networkdomain.PndStore,
topologyService topology.Service,
nodeService nodes.Service, portService ports.Service,
) *ConfigurationManagementServer {
return &ConfigurationManagementServer{
pndStore: pndStore,
topologyService: topologyService,
nodeService: nodeService,
portService: portService}
}
type SDNConfig struct {
PndID string `json:"pndID"`
Nodes []nodes.Node `json:"nodes"`
Ports []ports.Port `json:"ports"`
Links []links.Link `json:"links"`
NetworkElements []networkelement.NetworkElement `json:"networkelements"`
func (c ConfigurationManagementServer) ExportSDNConfig(ctx context.Context, request *cmpb.ExportSDNConfigRequest) (*cmpb.ExportSDNConfigResponse, error) {
pndUUID := uuid.MustParse(request.Pid)
pnd, err := c.pndStore.Get(store.Query{ID: pndUUID})
if err != nil {
return nil, err
}
sdnConfig.NetworkElements = pnd.NetworkElements()
sdnConfig.Nodes, err = c.nodeService.GetAll()
if err != nil {
return nil, err
}
sdnConfig.Ports, err = c.portService.GetAll()
if err != nil {
return nil, err
}
sdnConfig.Links, err = c.topologyService.GetAll()
if err != nil {
return nil, err
}
jsonSDNConfig, err := json.MarshalIndent(sdnConfig, "", " ")
}
// ImportSDNConfig receives an SDN configuration and imports it.
func (s *NetworkElementServer) ImportSDNConfig(ctx context.Context, request *cmpb.ImportSDNConfigRequest) (*cmpb.ImportSDNConfigResponse, error) {
return &cmpb.ImportSDNConfigResponse{