From 349a098dffbe8db49a067f3c9b37c44d891ce704 Mon Sep 17 00:00:00 2001 From: Mohamed Abukar Date: Sat, 8 Jun 2019 18:15:42 +0300 Subject: [PATCH] Remove UENIB interface for now Change-Id: Ia7e495ee41157ea0ee43a084834383d167e6a1a7 Signed-off-by: Mohamed Abukar --- pkg/xapp/db.go | 37 ++++++++++--------------------------- pkg/xapp/rmr.go | 24 ++++++++++++++++-------- pkg/xapp/xapp.go | 14 +++++++++++--- 3 files changed, 37 insertions(+), 38 deletions(-) diff --git a/pkg/xapp/db.go b/pkg/xapp/db.go index 0ab0b1f..36fbfc1 100755 --- a/pkg/xapp/db.go +++ b/pkg/xapp/db.go @@ -21,9 +21,6 @@ package xapp import ( sdl "gerrit.o-ran-sc.org/r/ric-plt/sdlgo" - "gitlabe1.ext.net.nokia.com/ric_dev/ue-nib/api" - "gitlabe1.ext.net.nokia.com/ric_dev/ue-nib/pkg/uenibreader" - "gitlabe1.ext.net.nokia.com/ric_dev/ue-nib/pkg/uenibwriter" "sync" "time" ) @@ -37,14 +34,10 @@ var SDLCounterOpts = []CounterOpts{ } type SDLClient struct { - db *sdl.SdlInstance - stat map[string]Counter - mux sync.Mutex -} - -type UENIBClient struct { - reader *uenibreader.Reader - writer *uenibwriter.Writer + db *sdl.SdlInstance + stat map[string]Counter + mux sync.Mutex + ready bool } type RNIBClient struct { @@ -55,6 +48,8 @@ type RNIBClient struct { func NewSDLClient(ns string) *SDLClient { return &SDLClient{ db: sdl.NewSdlInstance(ns, sdl.NewDatabase()), + stat: Metric.RegisterCounterGroup(SDLCounterOpts, "SDL"), + ready: false, } } @@ -67,9 +62,12 @@ func (s *SDLClient) TestConnection() { Logger.Warn("Database connection not ready, waiting ...") time.Sleep(time.Duration(5 * time.Second)) } + s.ready = true Logger.Info("Connection to database established!") +} - s.RegisterMetrics() +func (s *SDLClient) IsReady() bool { + return s.ready } func (s *SDLClient) Store(key string, value interface{}) (err error) { @@ -121,21 +119,6 @@ func (c *SDLClient) GetStat() (t SDLStatistics) { return } -func NewUENIBClient() *UENIBClient { - return &UENIBClient{ - reader: uenibreader.NewReader(), - writer: uenibwriter.NewWriter(), - } -} - -func (u *UENIBClient) StoreUeMeasurement(gNbId string, gNbUeX2ApId string, data *api.MeasResults) error { - return u.writer.UpdateUeMeasurement(gNbId, gNbUeX2ApId, data) -} - -func (u *UENIBClient) ReadUeMeasurement(gNbId string, gNbUeX2ApId string) (*api.MeasResults, error) { - return u.reader.GetUeMeasurement(gNbId, gNbUeX2ApId) -} - // To be removed ... func NewRNIBClient(ns string) *RNIBClient { return &RNIBClient{ diff --git a/pkg/xapp/rmr.go b/pkg/xapp/rmr.go index 9b1edd7..e910ec1 100755 --- a/pkg/xapp/rmr.go +++ b/pkg/xapp/rmr.go @@ -61,6 +61,7 @@ type RMRClient struct { mux sync.Mutex stat map[string]Counter consumers []MessageConsumer + readyCb ReadyCB } type MessageConsumer interface { @@ -68,24 +69,23 @@ type MessageConsumer interface { } func NewRMRClient() *RMRClient { - r := &RMRClient{} - r.consumers = make([]MessageConsumer, 0) - p := C.CString(viper.GetString("rmr.protPort")) m := C.int(viper.GetInt("rmr.maxSize")) defer C.free(unsafe.Pointer(p)) - r.context = C.rmr_init(p, m, C.int(0)) - if r.context == nil { + ctx := C.rmr_init(p, m, C.int(0)) + if ctx == nil { Logger.Fatal("rmrClient: Initializing RMR context failed, bailing out!") } - return r + return &RMRClient{ + context: ctx, + consumers: make([]MessageConsumer, 0), + stat: Metric.RegisterCounterGroup(RMRCounterOpts, "RMR"), + } } func (m *RMRClient) Start(c MessageConsumer) { - m.RegisterMetrics() - for { Logger.Info("rmrClient: Waiting for RMR to be ready ...") @@ -104,6 +104,10 @@ func (m *RMRClient) Start(c MessageConsumer) { go m.Worker("worker-"+strconv.Itoa(w), 0) } + if m.readyCb != nil { + m.readyCb() + } + m.Wait() } @@ -215,3 +219,7 @@ func (m *RMRClient) IsReady() bool { func (m *RMRClient) GetRicMessageId(mid string) int { return RICMessageTypes[mid] } + +func (m *RMRClient) SetReadyCB(cb ReadyCB) { + m.readyCb = cb +} diff --git a/pkg/xapp/xapp.go b/pkg/xapp/xapp.go index d796afe..78df93e 100755 --- a/pkg/xapp/xapp.go +++ b/pkg/xapp/xapp.go @@ -25,11 +25,12 @@ import ( "net/http" ) +type ReadyCB func() + var ( // XApp is an application instance Rmr *RMRClient Sdl *SDLClient - UeNib *UENIBClient Rnib *RNIBClient Resource *Router Metric *Metrics @@ -42,11 +43,10 @@ func init() { Logger = LoadConfig() Logger.SetLevel(viper.GetInt("logger.level")) - Rmr = NewRMRClient() Resource = NewRouter() Config = Configurator{} - UeNib = NewUENIBClient() Metric = NewMetrics(viper.GetString("metrics.url"), viper.GetString("metrics.namespace"), Resource.router) + Rmr = NewRMRClient() if viper.IsSet("db.namespaces") { namespaces := viper.GetStringSlice("db.namespaces") @@ -69,3 +69,11 @@ func Run(c MessageConsumer) { Sdl.TestConnection() Rmr.Start(c) } + +func IsReady() bool { + return Rmr.IsReady() && Sdl.IsReady() +} + +func SetReadyCB(cb ReadyCB) { + Rmr.SetReadyCB(cb) +} \ No newline at end of file -- 2.16.6