From 827a6410631045b503ce098de6683c6916c09842 Mon Sep 17 00:00:00 2001 From: Mohamed Abukar Date: Thu, 12 Nov 2020 10:02:41 +0200 Subject: [PATCH] Backward compatible with old xApp descriptor Change-Id: I390425c5e05b17f039e4bce5f99a02f788041ba2 Signed-off-by: Mohamed Abukar --- config/config-file.json | 3 ++- pkg/xapp/config.go | 13 +++++++++---- pkg/xapp/db.go | 3 +++ pkg/xapp/rmr.go | 11 +++++++++++ pkg/xapp/xapp.go | 8 ++++++-- pkg/xapp/xapp_test.go | 10 +++++----- 6 files changed, 36 insertions(+), 12 deletions(-) diff --git a/config/config-file.json b/config/config-file.json index 5741d69..cacdde9 100755 --- a/config/config-file.json +++ b/config/config-file.json @@ -70,7 +70,8 @@ "timeout": 5, "host": "service-ricplt-submgr-http.ricplt:8088", "clientEndpoint": "service-ricxapp-ueec-http.ricxapp:8080" - } + }, + "waitForSdl": false }, "metrics": { "url": "/ric/v1/metrics", diff --git a/pkg/xapp/config.go b/pkg/xapp/config.go index bb76a07..8ab7941 100755 --- a/pkg/xapp/config.go +++ b/pkg/xapp/config.go @@ -63,7 +63,7 @@ func LoadConfig() (l *Log) { } l.Info("Using config file: %s", viper.ConfigFileUsed()) - updatemtypes := func() { + updateMTypes := func() { var mtypes []mtype viper.UnmarshalKey("rmr.mtypes", &mtypes) @@ -92,14 +92,19 @@ func LoadConfig() (l *Log) { } } - updatemtypes() + updateMTypes() viper.WatchConfig() viper.OnConfigChange(func(e fsnotify.Event) { l.Info("config file %s changed ", e.Name) - updatemtypes() - Logger.SetLevel(viper.GetInt("controls.logger.level")) + updateMTypes() + if viper.IsSet("controls.logger.level") { + Logger.SetLevel(viper.GetInt("controls.logger.level")) + } else { + Logger.SetLevel(viper.GetInt("logger.level")) + } + if len(ConfigChangeListeners) > 0 { for _, f := range ConfigChangeListeners { go f(e.Name) diff --git a/pkg/xapp/db.go b/pkg/xapp/db.go index a7302cd..e422cfd 100755 --- a/pkg/xapp/db.go +++ b/pkg/xapp/db.go @@ -73,6 +73,9 @@ type RNIBClient struct { // NewSDLClient returns a new SDLClient. func NewSDLClient(ns string) *SDLClient { + if ns == "" { + ns = "sdl" + } return &SDLClient{ db: sdl.NewSdlInstance(ns, sdl.NewDatabase()), stat: Metric.RegisterCounterGroup(SDLCounterOpts, "SDL"), diff --git a/pkg/xapp/rmr.go b/pkg/xapp/rmr.go index 9407024..ef8aea5 100755 --- a/pkg/xapp/rmr.go +++ b/pkg/xapp/rmr.go @@ -67,6 +67,7 @@ import ( "bytes" "crypto/md5" "fmt" + "github.com/spf13/viper" "strings" "time" "unsafe" @@ -169,6 +170,16 @@ func NewRMRClientWithParams(params *RMRClientParams) *RMRClient { func NewRMRClient() *RMRClient { p := GetPortData("rmr-data") + if p.Port == 0 || viper.IsSet("rmr.protPort") { + // Old xApp descriptor used, fallback to rmr section + fmt.Sscanf(viper.GetString("rmr.protPort"), "tcp:%d", &p.Port) + p.MaxSize = viper.GetInt("rmr.maxSize") + p.ThreadType = viper.GetInt("rmr.threadType") + p.LowLatency = viper.GetBool("rmr.lowLatency") + p.FastAck = viper.GetBool("rmr.fastAck") + p.MaxRetryOnFailure = viper.GetInt("rmr.maxRetryOnFailure") + } + return NewRMRClientWithParams( &RMRClientParams{ RmrData: p, diff --git a/pkg/xapp/xapp.go b/pkg/xapp/xapp.go index 5ab48ab..a9a130e 100755 --- a/pkg/xapp/xapp.go +++ b/pkg/xapp/xapp.go @@ -123,12 +123,16 @@ func init() { // Load xapp configuration Logger = LoadConfig() - Logger.SetLevel(viper.GetInt("controls.logger.level")) + if viper.IsSet("controls.logger.level") { + Logger.SetLevel(viper.GetInt("controls.logger.level")) + } else { + Logger.SetLevel(viper.GetInt("logger.level")) + } Resource = NewRouter() Config = Configurator{} Metric = NewMetrics(viper.GetString("metrics.url"), viper.GetString("metrics.namespace"), Resource.router) Subscription = NewSubscriber(viper.GetString("subscription.host"), viper.GetInt("subscription.timeout")) - Sdl = NewSDLClient(viper.GetString("db.namespace")) + Sdl = NewSDLClient(viper.GetString("controls.db.namespace")) Rnib = NewRNIBClient() InstallSignalHandler() diff --git a/pkg/xapp/xapp_test.go b/pkg/xapp/xapp_test.go index abf9345..baafa16 100755 --- a/pkg/xapp/xapp_test.go +++ b/pkg/xapp/xapp_test.go @@ -44,7 +44,7 @@ func (m Consumer) Consume(params *RMRParams) (err error) { // Test cases func TestMain(m *testing.M) { - go RunWithParams(Consumer{}, viper.GetBool("db.waitForSdl")) + go RunWithParams(Consumer{}, viper.GetBool("controls.waitForSdl")) time.Sleep(time.Duration(5) * time.Second) code := m.Run() os.Exit(code) @@ -122,7 +122,7 @@ func TestMessagesReceivedSuccessfully(t *testing.T) { // Allow time to process the messages time.Sleep(time.Duration(5) * time.Second) - waitForSdl := viper.GetBool("db.waitForSdl") + waitForSdl := viper.GetBool("controls.waitForSdl") stats := getMetrics(t) if !strings.Contains(stats, "ricxapp_RMR_Transmitted 100") { t.Errorf("Error: ricxapp_RMR_Transmitted value incorrect: %v", stats) @@ -168,7 +168,7 @@ func TestMessagesReceivedSuccessfullyUsingWh(t *testing.T) { // Allow time to process the messages time.Sleep(time.Duration(5) * time.Second) - waitForSdl := viper.GetBool("db.waitForSdl") + waitForSdl := viper.GetBool("controls.waitForSdl") stats := getMetrics(t) if !strings.Contains(stats, "ricxapp_RMR_Transmitted 200") { t.Errorf("Error: ricxapp_RMR_Transmitted value incorrect: %v", stats) @@ -210,7 +210,7 @@ func TestMessagesReceivedSuccessfullyUsingWhCall(t *testing.T) { // Allow time to process the messages time.Sleep(time.Duration(2) * time.Second) - waitForSdl := viper.GetBool("db.waitForSdl") + waitForSdl := viper.GetBool("controls.waitForSdl") stats := getMetrics(t) if !strings.Contains(stats, "ricxapp_RMR_Transmitted 200") { t.Errorf("Error: ricxapp_RMR_Transmitted value incorrect: %v", stats) @@ -240,7 +240,7 @@ func TestMessagesReceivedSuccessfullyUsingWhCall(t *testing.T) { func TestSubscribeChannels(t *testing.T) { Logger.Info("CASE: TestSubscribeChannels") - if !viper.GetBool("db.waitForSdl") { + if !viper.GetBool("controls.waitForSdl") { return } -- 2.16.6