Skip to content
Snippets Groups Projects
Commit 9c33424a authored by Fabian Seidl's avatar Fabian Seidl
Browse files

add API stuff for configuration management

parent e17e6adc
Branches
Tags
1 merge request!790Resolve "Update gRPC abstraction API with missing calls and refactoring"
package api
import (
"context"
"time"
cpb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/configurationmanagement"
nbi "code.fbi.h-da.de/danet/gosdn/controller/northbound/client"
)
// ExportSDNConfig returns the SDN configuration.
func ExportSDNConfig(ctx context.Context, addr, pid string) (*cpb.ExportSDNConfigResponse, error) {
configClient, err := nbi.ConfigurationManagementClient(addr, dialOptions...)
if err != nil {
return nil, err
}
req := &cpb.ExportSDNConfigRequest{
Timestamp: time.Now().UnixNano(),
Pid: pid,
}
return configClient.ExportSDNConfig(ctx, req)
}
// ImportSDNConfig receives an SDN configuration and imports it.
func ImportSDNConfig(ctx context.Context, addr, pid, sdnConfigData string) (*cpb.ImportSDNConfigResponse, error) {
configClient, err := nbi.ConfigurationManagementClient(addr, dialOptions...)
if err != nil {
return nil, err
}
req := &cpb.ImportSDNConfigRequest{
Timestamp: time.Now().UnixNano(),
Pid: pid,
SdnConfigData: sdnConfigData,
}
return configClient.ImportSDNConfig(ctx, req)
}
package client
import (
cpb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/configurationmanagement"
"google.golang.org/grpc"
)
// ConfigurationManagementClient returns a client for the gRPC ConfigurationManagement service. It takes
// the address of the gRPC endpoint and optional grpc.DialOption
// as argument.
func ConfigurationManagementClient(addr string, opts ...grpc.DialOption) (cpb.ConfigurationManagementServiceClient, error) {
conn, err := grpc.Dial(addr, opts...)
if err != nil {
return nil, err
}
return cpb.NewConfigurationManagementServiceClient(conn), nil
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment