"strconv"
)
+const (
+ GeneralKey = "GENERAL"
+ GeneralKeyDefaultValue = "{\"enableRic\":true}"
+)
+
+func initKeys(logger *logger.Logger, sdl *sdlgo.SdlInstance) error {
+ ok, err := sdl.SetIfNotExists(GeneralKey, GeneralKeyDefaultValue)
+
+ if err != nil {
+ logger.Errorf("#app.main - Failed setting GENERAL key")
+ return err
+ }
+
+ if ok {
+ logger.Infof("#app.main - Successfully set GENERAL key")
+ } else {
+ logger.Infof("#app.main - GENERAL key exists, no need to set")
+ }
+
+ return nil
+
+}
+
func main() {
config := configuration.ParseConfiguration()
logLevel, _ := logger.LogLevelTokenToLevel(config.Logging.LogLevel)
logger.Infof("#app.main - Configuration %s", config)
db := sdlgo.NewDatabase()
sdl := sdlgo.NewSdlInstance("e2Manager", db)
+ err = initKeys(logger, sdl)
+
+ if err != nil {
+ os.Exit(1)
+ }
+
defer sdl.Close()
rnibDataService := services.NewRnibDataService(logger, config, reader.GetRNibReader(sdl), rNibWriter.GetRNibWriter(sdl, config.RnibWriter))
+
+ ranListManager := managers.NewRanListManager(logger, rnibDataService)
+
+ err = ranListManager.InitNbIdentityMap()
+
+ if err != nil {
+ logger.Errorf("#app.main - quit")
+ os.Exit(1)
+ }
+
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)
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, ranConnectStatusChangeManager)
+ e2tShutdownManager := managers.NewE2TShutdownManager(logger, config, rnibDataService, e2tInstancesManager, e2tAssociationManager, ranConnectStatusChangeManager)
e2tKeepAliveWorker := managers.NewE2TKeepAliveWorker(logger, rmrSender, e2tInstancesManager, e2tShutdownManager, config)
rmrNotificationHandlerProvider := rmrmsghandlerprovider.NewNotificationHandlerProvider()
- rmrNotificationHandlerProvider.Init(logger, config, rnibDataService, rmrSender, e2tInstancesManager, routingManagerClient, e2tAssociationManager, ranConnectStatusChangeManager)
+ rmrNotificationHandlerProvider.Init(logger, config, rnibDataService, rmrSender, e2tInstancesManager, routingManagerClient, e2tAssociationManager, ranConnectStatusChangeManager, ranListManager)
notificationManager := notificationmanager.NewNotificationManager(logger, rmrNotificationHandlerProvider)
rmrReceiver := rmrreceiver.NewRmrReceiver(logger, rmrMessenger, notificationManager)
+ nodebValidator := managers.NewNodebValidator()
+ updateEnbManager := managers.NewUpdateEnbManager(logger, rnibDataService, nodebValidator)
+ updateGnbManager := managers.NewUpdateGnbManager(logger, rnibDataService, nodebValidator)
e2tInstancesManager.ResetKeepAliveTimestampsForAllE2TInstances()
go rmrReceiver.ListenAndHandle()
go e2tKeepAliveWorker.Execute()
- httpMsgHandlerProvider := httpmsghandlerprovider.NewIncomingRequestHandlerProvider(logger, rmrSender, config, rnibDataService, ranSetupManager, e2tInstancesManager, e2tAssociationManager, routingManagerClient, ranConnectStatusChangeManager)
+ httpMsgHandlerProvider := httpmsghandlerprovider.NewIncomingRequestHandlerProvider(logger, rmrSender, config, rnibDataService, e2tInstancesManager, routingManagerClient, ranConnectStatusChangeManager, nodebValidator, updateEnbManager, updateGnbManager, ranListManager)
rootController := controllers.NewRootController(rnibDataService)
nodebController := controllers.NewNodebController(logger, httpMsgHandlerProvider)
e2tController := controllers.NewE2TController(logger, httpMsgHandlerProvider)
- _ = httpserver.Run(logger, config.Http.Port, rootController, nodebController, e2tController)
+ symptomController := controllers.NewSymptomdataController(logger, httpMsgHandlerProvider, rnibDataService, ranListManager)
+ _ = httpserver.Run(logger, config.Http.Port, rootController, nodebController, e2tController, symptomController)
}