X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=E2Manager%2Fapp%2Fmain.go;h=8eb5a64d267b5b70d275ad07e696c65a452b6b8b;hb=76709204dfd7968156b5fa81190f146a8991812d;hp=dd0875d7a04d498fbd2c6d0a69078e09a705322d;hpb=15d3982b5eda43a5b5b9054d7ecb026448c6ca16;p=ric-plt%2Fe2mgr.git diff --git a/E2Manager/app/main.go b/E2Manager/app/main.go index dd0875d..8eb5a64 100644 --- a/E2Manager/app/main.go +++ b/E2Manager/app/main.go @@ -17,13 +17,12 @@ // This source code is part of the near-RT RIC (RAN Intelligent Controller) // platform project (RICP). - package main import ( + "e2mgr/clients" "e2mgr/configuration" "e2mgr/controllers" - "e2mgr/converters" "e2mgr/httpserver" "e2mgr/logger" "e2mgr/managers" @@ -37,12 +36,11 @@ import ( "e2mgr/services/rmrsender" "fmt" "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/reader" + "gerrit.o-ran-sc.org/r/ric-plt/sdlgo" "os" "strconv" ) -const MAX_RNIB_POOL_INSTANCES = 4 - func main() { config := configuration.ParseConfiguration() logLevel, _ := logger.LogLevelTokenToLevel(config.Logging.LogLevel) @@ -51,32 +49,40 @@ func main() { fmt.Printf("#app.main - failed to initialize logger, error: %s", err) os.Exit(1) } - rNibWriter.Init("e2Manager", MAX_RNIB_POOL_INSTANCES) - defer rNibWriter.Close() - reader.Init("e2Manager", MAX_RNIB_POOL_INSTANCES) - defer reader.Close() - rnibDataService := services.NewRnibDataService(logger, config, reader.GetRNibReader, rNibWriter.GetRNibWriter) + logger.Infof("#app.main - Configuration %s", config) + db := sdlgo.NewDatabase() + sdl := sdlgo.NewSdlInstance("e2Manager", db) + defer sdl.Close() + rnibDataService := services.NewRnibDataService(logger, config, reader.GetRNibReader(sdl), rNibWriter.GetRNibWriter(sdl)) var msgImpl *rmrCgo.Context rmrMessenger := msgImpl.Init("tcp:"+strconv.Itoa(config.Rmr.Port), config.Rmr.MaxMsgSize, 0, logger) rmrSender := rmrsender.NewRmrSender(logger, rmrMessenger) + kubernetes := managers.NewKubernetesManager(logger, config) ranSetupManager := managers.NewRanSetupManager(logger, rmrSender, rnibDataService) - ranReconnectionManager := managers.NewRanReconnectionManager(logger, config, rnibDataService, ranSetupManager) - ranStatusChangeManager := managers.NewRanStatusChangeManager(logger, rmrSender) - x2SetupResponseConverter := converters.NewX2SetupResponseConverter(logger) - x2SetupResponseManager := managers.NewX2SetupResponseManager(x2SetupResponseConverter) - x2SetupFailureResponseConverter := converters.NewX2SetupFailureResponseConverter(logger) - x2SetupFailureResponseManager := managers.NewX2SetupFailureResponseManager(x2SetupFailureResponseConverter) - rmrNotificationHandlerProvider := rmrmsghandlerprovider.NewNotificationHandlerProvider(logger, rnibDataService, ranReconnectionManager, ranStatusChangeManager, rmrSender, x2SetupResponseManager, x2SetupFailureResponseManager) + e2tInstancesManager := managers.NewE2TInstancesManager(rnibDataService, logger) + routingManagerClient := clients.NewRoutingManagerClient(logger, config, clients.NewHttpClient()) + ranListManager := managers.NewRanListManager(logger) + ranAlarmService := services.NewRanAlarmService(logger, config) + ranConnectStatusChangeManager := managers.NewRanConnectStatusChangeManager(logger, rnibDataService,ranListManager, ranAlarmService) + e2tAssociationManager := managers.NewE2TAssociationManager(logger, rnibDataService, e2tInstancesManager, routingManagerClient, ranConnectStatusChangeManager) + e2tShutdownManager := managers.NewE2TShutdownManager(logger, config, rnibDataService, e2tInstancesManager, e2tAssociationManager, kubernetes) + e2tKeepAliveWorker := managers.NewE2TKeepAliveWorker(logger, rmrSender, e2tInstancesManager, e2tShutdownManager, config) + rmrNotificationHandlerProvider := rmrmsghandlerprovider.NewNotificationHandlerProvider() + rmrNotificationHandlerProvider.Init(logger, config, rnibDataService, rmrSender, ranSetupManager, e2tInstancesManager, routingManagerClient, e2tAssociationManager, ranConnectStatusChangeManager) notificationManager := notificationmanager.NewNotificationManager(logger, rmrNotificationHandlerProvider) rmrReceiver := rmrreceiver.NewRmrReceiver(logger, rmrMessenger, notificationManager) - defer (*rmrMessenger).Close() + e2tInstancesManager.ResetKeepAliveTimestampsForAllE2TInstances() + + defer rmrMessenger.Close() go rmrReceiver.ListenAndHandle() + go e2tKeepAliveWorker.Execute() - httpMsgHandlerProvider := httpmsghandlerprovider.NewIncomingRequestHandlerProvider(logger, rmrSender, config, rnibDataService, ranSetupManager) + httpMsgHandlerProvider := httpmsghandlerprovider.NewIncomingRequestHandlerProvider(logger, rmrSender, config, rnibDataService, ranSetupManager, e2tInstancesManager, e2tAssociationManager, routingManagerClient) rootController := controllers.NewRootController(rnibDataService) nodebController := controllers.NewNodebController(logger, httpMsgHandlerProvider) - httpserver.Run(config.Http.Port, rootController, nodebController) + e2tController := controllers.NewE2TController(logger, httpMsgHandlerProvider) + _ = httpserver.Run(logger, config.Http.Port, rootController, nodebController, e2tController) }