diff options
author | Manjunath Ranganathaiah <manjunath.ranganathaiah@intel.com> | 2020-05-11 20:03:43 +0000 |
---|---|---|
committer | Eric Multanen <eric.w.multanen@intel.com> | 2020-05-21 12:33:33 -0700 |
commit | 864c44c57473cbb10b55607cdd6e55fac592a43d (patch) | |
tree | 55eb95ace545b567d8742c4254b0286e25b3ba32 /src/rsync/cmd | |
parent | 10b401413dd722ef57de79ba3caaa873ed1093b8 (diff) |
InstallApp Grpc proto and server for rsync
Add the InstallApp GRPC proto file server code
to the resource synchronizer.
Issue-ID: MULTICLOUD-1005
Signed-off-by: Manjunath Ranganathaiah <manjunath.ranganathaiah@intel.com>
Change-Id: I8e586f1b878009fd4df53ef48aae6deded0f64ea
Diffstat (limited to 'src/rsync/cmd')
-rw-r--r-- | src/rsync/cmd/main.go | 60 |
1 files changed, 58 insertions, 2 deletions
diff --git a/src/rsync/cmd/main.go b/src/rsync/cmd/main.go index 6e30b60b..ce98edd2 100644 --- a/src/rsync/cmd/main.go +++ b/src/rsync/cmd/main.go @@ -17,11 +17,63 @@ import ( "fmt" "log" "math/rand" + "net" + register "rsync/pkg/grpc" + installpb "rsync/pkg/grpc/installapp" + "rsync/pkg/grpc/installappserver" + "strings" "time" + + "github.com/onap/multicloud-k8s/src/orchestrator/pkg/infra/config" contextDb "github.com/onap/multicloud-k8s/src/orchestrator/pkg/infra/contextdb" "github.com/onap/multicloud-k8s/src/orchestrator/pkg/infra/db" + "google.golang.org/grpc" + "google.golang.org/grpc/credentials" + "google.golang.org/grpc/testdata" ) +func startGrpcServer() error { + var tls bool + + if strings.Contains(config.GetConfiguration().GrpcEnableTLS, "enable") { + tls = true + } else { + tls = false + } + certFile := config.GetConfiguration().GrpcServerCert + keyFile := config.GetConfiguration().GrpcServerKey + + host, port := register.GetServerHostPort() + + lis, err := net.Listen("tcp", fmt.Sprintf("%s:%d", host, port)) + if err != nil { + log.Fatalf("Could not listen to port: %v", err) + } + var opts []grpc.ServerOption + if tls { + if certFile == "" { + certFile = testdata.Path("server.pem") + } + if keyFile == "" { + keyFile = testdata.Path("server.key") + } + creds, err := credentials.NewServerTLSFromFile(certFile, keyFile) + if err != nil { + log.Fatalf("Could not generate credentials %v", err) + } + opts = []grpc.ServerOption{grpc.Creds(creds)} + } + grpcServer := grpc.NewServer(opts...) + installpb.RegisterInstallappServer(grpcServer, installappserver.NewInstallAppServer()) + + log.Println("Starting rsync gRPC Server") + err = grpcServer.Serve(lis) + if err != nil { + log.Fatalf("rsync grpc server is not serving %v", err) + } + return err +} + func main() { rand.Seed(time.Now().UnixNano()) @@ -44,6 +96,10 @@ func main() { log.Fatalln("Exiting...") } - // Initialize grpc - + // Start grpc + fmt.Println("starting rsync GRPC server..") + err = startGrpcServer() + if err != nil { + log.Fatalf("GRPC server failed to start") + } } |