Skip to content
Snippets Groups Projects
main.go 739 B
Newer Older
  • Learn to ignore specific revisions
  • package main
    
    import (
    	"log"
    	"os"
    
    	"code.fbi.h-da.de/danet/gosdn/controller/plugin/shared"
    	generated "code.fbi.h-da.de/danet/gosdn/models/generated/arista"
    	"code.fbi.h-da.de/danet/gosdn/plugins/sdk"
    	"github.com/hashicorp/go-plugin"
    )
    
    func main() {
    
    	// Create a new DeviceModel.
    
    	deviceModel, err := sdk.NewDeviceModel(generated.Schema, generated.Unmarshal, generated.SchemaTreeGzip)
    	if err != nil {
    		log.Println(err)
    		os.Exit(1)
    	}
    
    	// Serve the DeviceModelPlugin and provide the implemented deviceModel.
    
    	plugin.Serve(&plugin.ServeConfig{
    		HandshakeConfig: shared.Handshake,
    		Plugins: map[string]plugin.Plugin{
    			"deviceModel": &shared.DeviceModelPlugin{Impl: deviceModel},
    		},
    		GRPCServer: plugin.DefaultGRPCServer,
    	})
    }