Skip to content
Snippets Groups Projects
configurationManagement.go 1.05 KiB
Newer Older
  • Learn to ignore specific revisions
  • 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)
    }