+func (m *ranListManagerInstance) InitNbIdentityMap() error {
+ nbIds, err := m.rnibDataService.GetListNodebIds()
+
+ if err != nil {
+ m.logger.Errorf("#ranListManagerInstance.InitNbIdentityMap - Failed fetching RAN list from DB. error: %s", err)
+ return err
+ }
+
+ for _, v := range nbIds {
+ m.nbIdentityMap[v.InventoryName] = v
+ }
+
+ m.logger.Infof("#ranListManagerInstance.InitNbIdentityMap - Successfully initiated nodeb identity map")
+ m.logger.Debugf("#ranListManagerInstance.InitNbIdentityMap - nodeb Identity map: %s", m.nbIdentityMap)
+ return nil
+}
+
+func (m *ranListManagerInstance) AddNbIdentity(nodeType entities.Node_Type, nbIdentity *entities.NbIdentity) error {
+ m.mux.Lock()
+ defer m.mux.Unlock()
+
+ m.nbIdentityMap[nbIdentity.InventoryName] = nbIdentity
+
+ err := m.rnibDataService.AddNbIdentity(nodeType, nbIdentity)
+
+ if err != nil {
+ m.logger.Errorf("#ranListManagerInstance.AddNbIdentity - RAN name: %s - Failed adding nodeb identity to DB. error: %s", nbIdentity.InventoryName, err)
+ return err
+ }
+
+ m.logger.Infof("#ranListManagerInstance.AddNbIdentity - RAN name: %s - Successfully added nodeb identity", nbIdentity.InventoryName)
+ m.logger.Debugf("#ranListManagerInstance.AddNbIdentity - nodeb Identity map: %s", m.nbIdentityMap)
+ return nil
+}
+
+func (m *ranListManagerInstance) UpdateNbIdentityConnectionStatus(nodeType entities.Node_Type, ranName string, connectionStatus entities.ConnectionStatus) error {
+ m.mux.Lock()
+ defer m.mux.Unlock()
+
+ m.logger.Infof("#ranListManagerInstance.UpdateNbIdentityConnectionStatus - RAN name: %s - updating nodeb identity connection status", ranName)
+
+ oldNbIdentity, ok := m.nbIdentityMap[ranName]
+ if !ok {
+ m.logger.Errorf("#ranListManagerInstance.UpdateNbIdentityConnectionStatus - RAN name: %s - nodeb identity not found in nbIdentityMap", ranName)
+ return e2managererrors.NewInternalError()
+ }
+
+ newNbIdentity := &entities.NbIdentity{
+ GlobalNbId: oldNbIdentity.GlobalNbId,
+ InventoryName: ranName,
+ ConnectionStatus: connectionStatus,
+ }
+ m.nbIdentityMap[ranName] = newNbIdentity
+
+ err := m.rnibDataService.UpdateNbIdentity(nodeType, oldNbIdentity, newNbIdentity)
+ if err != nil {
+ m.logger.Errorf("#ranListManagerInstance.UpdateNbIdentityConnectionStatus - RAN name: %s - Failed updating nodeb identity in DB. error: %s", ranName, err)
+ return err
+ }
+ m.logger.Infof("#ranListManagerInstance.UpdateNbIdentityConnectionStatus - RAN name: %s - Successfully updated nodeb identity", ranName)