summaryrefslogtreecommitdiffstats
path: root/src/ncm/cmd
diff options
context:
space:
mode:
authorEric Multanen <eric.w.multanen@intel.com>2020-04-23 12:48:55 -0700
committerEric Multanen <eric.w.multanen@intel.com>2020-05-13 12:17:36 -0700
commita08968c161b999238cbd61ea2eb9fd597a5b37e6 (patch)
tree7a9a62b071a6aea583f69c44e283ed8502f45b01 /src/ncm/cmd
parentbd3e69e7a26aaa00d3367f1eeb78e91e63ebd404 (diff)
Add gRPC servers to ncm service
Add a contextupdate grpc server to the ncm service. Issue-ID: MULTICLOUD-1029 Signed-off-by: Eric Multanen <eric.w.multanen@intel.com> Change-Id: I38caa625c028baac06a6202f03b86d0f2bf38126
Diffstat (limited to 'src/ncm/cmd')
-rw-r--r--src/ncm/cmd/main.go59
1 files changed, 58 insertions, 1 deletions
diff --git a/src/ncm/cmd/main.go b/src/ncm/cmd/main.go
index c4ae423f..49af81ee 100644
--- a/src/ncm/cmd/main.go
+++ b/src/ncm/cmd/main.go
@@ -15,23 +15,73 @@ package main
import (
"context"
+ "fmt"
"log"
"math/rand"
+ "net"
"net/http"
"os"
"os/signal"
+ "strings"
"time"
"github.com/gorilla/handlers"
"github.com/onap/multicloud-k8s/src/ncm/api"
+ register "github.com/onap/multicloud-k8s/src/ncm/pkg/grpc"
+ "github.com/onap/multicloud-k8s/src/ncm/pkg/grpc/contextupdateserver"
+ updatepb "github.com/onap/multicloud-k8s/src/orchestrator/pkg/grpc/contextupdate"
"github.com/onap/multicloud-k8s/src/orchestrator/pkg/infra/auth"
"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 main() {
+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...)
+ updatepb.RegisterContextupdateServer(grpcServer, contextupdateserver.NewContextupdateServer())
+ log.Println("Starting Network Configuration Manager gRPC Server")
+ err = grpcServer.Serve(lis)
+ if err != nil {
+ log.Fatalf("ncm grpc server is not serving %v", err)
+ }
+ return err
+}
+
+func main() {
rand.Seed(time.Now().UnixNano())
err := db.InitializeDatabaseConnection("mco")
@@ -56,6 +106,13 @@ func main() {
Addr: ":" + config.GetConfiguration().ServicePort,
}
+ go func() {
+ err := startGrpcServer()
+ if err != nil {
+ log.Fatalf("GRPC server failed to start")
+ }
+ }()
+
connectionsClose := make(chan struct{})
go func() {
c := make(chan os.Signal, 1)