Newer
Older
/*
This file contains the grpc cli server-side calls.
Functions here should call other functions in charge of the
particular task.
package nucleus
import (
pb "code.fbi.h-da.de/cocsn/gosdn/cliInterface"
"code.fbi.h-da.de/cocsn/gosdn/restconf/client/ciena"
"context"
"google.golang.org/grpc"
"net"
)
// server is used to implement the grcp cli server
pb.UnimplementedGrpcCliServer
core *Core
}
func (s *server) SayHello(ctx context.Context, in *pb.HelloRequest) (*pb.HelloReply, error) {
return &pb.HelloReply{Message: "Hello " + in.GetName(), GoSDNInfo: "goSDN in version: DEVELOP"}, nil
}
func (s *server) Shutdown(ctx context.Context, in *pb.ShutdownRequest) (*pb.ShutdownReply, error) {
log.Info("Shutdown Received: ", in.GetName())
s.core.IsRunning <- false
return &pb.ShutdownReply{Message: "Shutdown " + in.GetName()}, nil
}
func getCLIGoing(core *Core) {
log.Info("Starting: GetCLIGoing")
// Boot-up the control interface for the cli
cliControlListener, err := net.Listen("tcp", core.config.CliSocket)
if err != nil {
}
cliControlServer := grpc.NewServer()
pb.RegisterGrpcCliServer(cliControlServer, &server{core: core})
if err := cliControlServer.Serve(cliControlListener); err != nil {
log.Info("Started: GetCLIGoing")
}
// SBI specific calls, by now TAPI only
func (s *server) TAPIGetEdge(ctx context.Context, in *pb.TAPIRequest) (*pb.TAPIReply, error) {
if err := s.core.clients["ciena-mcp"].(*ciena.MCPClient).GetNodes(); err != nil {
log.Error(err)
return &pb.TAPIReply{Message: "TAPI error"}, nil
return &pb.TAPIReply{Message: "Done"}, nil
}
func (s *server) TAPIGetEdgeNode(ctx context.Context, in *pb.TAPIRequest) (*pb.TAPIReply, error) {
if err := s.core.clients["ciena-mcp"].(*ciena.MCPClient).GetNodeEdgePoints(); err != nil {
log.Error(err)
return &pb.TAPIReply{Message: "TAPI error"}, nil
return &pb.TAPIReply{Message: "Done"}, nil
}
func (s *server) TAPIGetLink(ctx context.Context, in *pb.TAPIRequest) (*pb.TAPIReply, error) {
if err := s.core.clients["ciena-mcp"].(*ciena.MCPClient).GetLinks(); err != nil {
log.Error(err)
return &pb.TAPIReply{Message: "TAPI error"}, nil
return &pb.TAPIReply{Message: "Done"}, nil
}