Newer
Older
package server
import (
"context"
"time"
cm "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/configurationmanagement"
ne "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/networkelement"
log "github.com/sirupsen/logrus"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
)
// ConfigurationManagementServer represents a core server.
type ConfigurationManagementServer struct {
}
// ConfigurationManagementServer receives a pndStore and returns a new coreServer.
func NewConfigurationManagementServer(networkElementStore networkelement.Store) *ConfigurationManagementServer {
return &ConfigurationManagementServer{networkElementStore: networkElementStore}
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
}
// ExportSDNConfig returns the SDN configuration.
func (c ConfigurationManagementServer) ExportSDNConfig(ctx context.Context, request *cm.ExportSDNConfigRequest) (*cm.ExportSDNConfigResponse, error) {
//pnd := request.Pid
networkElements := c.networkDomain.NetworkElements()
convertedNetworkelements := []*ne.NetworkElement{}
for _, networkElement := range networkElements {
ygotStructAsJSON, err := networkElement.GetModelAsString()
if err != nil {
log.Error(err)
return nil, status.Errorf(codes.Aborted, "%v", err)
}
convertedNetworkelements = append(convertedNetworkelements, &ne.NetworkElement{
Id: networkElement.ID().String(),
Name: networkElement.Name(),
Model: ygotStructAsJSON,
})
}
return &cm.ExportSDNConfigResponse{
Timestamp: time.Now().UnixNano(),
SdnConfig: "nothing yet"}, nil
}
// ImportSDNConfig receives an SDN configuration and imports it.
func (s *NetworkElementServer) ImportSDNConfig(ctx context.Context, request *cm.ImportSDNConfigRequest) (*cm.ImportSDNConfigResponse, error) {
return &cm.ImportSDNConfigResponse{
Timestamp: time.Now().UnixNano()}, nil
}