+//-------------------------------------------------------------------
+//
+//-------------------------------------------------------------------
+func (c *Control) ReadRESTSubscriptions() error {
+ var err error
+ var restSubscriptions map[string]*RESTSubscription
+ for i := 0; dbRetryForever == "true" || i < dbTryCount; i++ {
+ xapp.Logger.Debug("Reading REST subscriptions from db")
+ restSubscriptions, err = c.ReadAllRESTSubscriptionsFromSdl()
+ if err != nil {
+ xapp.Logger.Error("%v", err)
+ <-time.After(1 * time.Second)
+ } else {
+ c.registry.restSubscriptions = restSubscriptions
+ return nil
+ }
+ }
+ xapp.Logger.Debug("Continuing without retring")
+ return err
+}
+
+//-------------------------------------------------------------------
+//
+//-------------------------------------------------------------------
+func (c *Control) ReadConfigParameters(f string) {
+
+ xapp.Logger.Debug("ReadConfigParameters")
+
+ c.LoggerLevel = int(xapp.Logger.GetLevel())
+ xapp.Logger.Info("LoggerLevel = %v", c.LoggerLevel)
+ c.e2ap.SetASN1DebugPrintStatus(c.LoggerLevel)
+
+ // viper.GetDuration returns nanoseconds
+ e2tSubReqTimeout = viper.GetDuration("controls.e2tSubReqTimeout_ms") * 1000000
+ if e2tSubReqTimeout == 0 {
+ e2tSubReqTimeout = 2000 * 1000000
+ xapp.Logger.Debug("WARNING: Using hard coded default value for e2tSubReqTimeout")
+ }
+ xapp.Logger.Debug("e2tSubReqTimeout= %v", e2tSubReqTimeout)
+
+ e2tSubDelReqTime = viper.GetDuration("controls.e2tSubDelReqTime_ms") * 1000000
+ if e2tSubDelReqTime == 0 {
+ e2tSubDelReqTime = 2000 * 1000000
+ xapp.Logger.Debug("WARNING: Using hard coded default value for e2tSubDelReqTime")
+ }
+ xapp.Logger.Debug("e2tSubDelReqTime= %v", e2tSubDelReqTime)
+
+ e2tRecvMsgTimeout = viper.GetDuration("controls.e2tRecvMsgTimeout_ms") * 1000000
+ if e2tRecvMsgTimeout == 0 {
+ e2tRecvMsgTimeout = 2000 * 1000000
+ xapp.Logger.Debug("WARNING: Using hard coded default value for e2tRecvMsgTimeout")
+ }
+ xapp.Logger.Debug("e2tRecvMsgTimeout= %v", e2tRecvMsgTimeout)
+
+ e2tMaxSubReqTryCount = viper.GetUint64("controls.e2tMaxSubReqTryCount")
+ if e2tMaxSubReqTryCount == 0 {
+ e2tMaxSubReqTryCount = 1
+ xapp.Logger.Debug("WARNING: Using hard coded default value for e2tMaxSubReqTryCount")
+ }
+ xapp.Logger.Debug("e2tMaxSubReqTryCount= %v", e2tMaxSubReqTryCount)
+
+ e2tMaxSubDelReqTryCount = viper.GetUint64("controls.e2tMaxSubDelReqTryCount")
+ if e2tMaxSubDelReqTryCount == 0 {
+ e2tMaxSubDelReqTryCount = 1
+ xapp.Logger.Debug("WARNING: Using hard coded default value for e2tMaxSubDelReqTryCount")
+ }
+ xapp.Logger.Debug("e2tMaxSubDelReqTryCount= %v", e2tMaxSubDelReqTryCount)
+
+ checkE2State = viper.GetString("controls.checkE2State")
+ if checkE2State == "" {
+ checkE2State = "true"
+ xapp.Logger.Debug("WARNING: Using hard coded default value for checkE2State")
+ }
+ xapp.Logger.Debug("checkE2State= %v", checkE2State)
+
+ readSubsFromDb = viper.GetString("controls.readSubsFromDb")
+ if readSubsFromDb == "" {
+ readSubsFromDb = "true"
+ xapp.Logger.Debug("WARNING: Using hard coded default value for readSubsFromDb")
+ }
+ xapp.Logger.Debug("readSubsFromDb= %v", readSubsFromDb)
+
+ dbTryCount = viper.GetInt("controls.dbTryCount")
+ if dbTryCount == 0 {
+ dbTryCount = 200
+ xapp.Logger.Debug("WARNING: Using hard coded default value for dbTryCount")
+ }
+ xapp.Logger.Debug("dbTryCount= %v", dbTryCount)
+
+ dbRetryForever = viper.GetString("controls.dbRetryForever")
+ if dbRetryForever == "" {
+ dbRetryForever = "true"
+ xapp.Logger.Debug("WARNING: Using hard coded default value for dbRetryForever")
+ }
+ xapp.Logger.Debug("dbRetryForever= %v", dbRetryForever)
+
+ // Internal cfg parameter, used to define a wait time for RMR route clean-up. None default
+ // value 100ms used currently only in unittests.
+ waitRouteCleanup_ms = viper.GetDuration("controls.waitRouteCleanup_ms") * 1000000
+ if waitRouteCleanup_ms == 0 {
+ waitRouteCleanup_ms = 5000 * 1000000
+ xapp.Logger.Debug("WARNING: Using hard coded default value for waitRouteCleanup_ms")
+ }
+ xapp.Logger.Debug("waitRouteCleanup= %v", waitRouteCleanup_ms)