NONE_RAW_EVENT = "NONE"
)
+type IRanConnectStatusChangeManager interface {
+ ChangeStatus(nodebInfo *entities.NodebInfo, nextStatus entities.ConnectionStatus) (bool, error)
+}
+
type RanConnectStatusChangeManager struct {
logger *logger.Logger
rnibDataService services.RNibDataService
}
}
-func (m *RanConnectStatusChangeManager) ChangeStatus(nodebInfo *entities.NodebInfo, nextStatus entities.ConnectionStatus) error {
+func (m *RanConnectStatusChangeManager) ChangeStatus(nodebInfo *entities.NodebInfo, nextStatus entities.ConnectionStatus) (bool, error) {
m.logger.Infof("#RanConnectStatusChangeManager.ChangeStatus - RAN name: %s, currentStatus: %s, nextStatus: %s", nodebInfo.RanName, nodebInfo.GetConnectionStatus(), nextStatus)
+ var ranStatusChangePublished bool
+
// set the proper event
event := m.setEvent(nodebInfo, nextStatus)
isConnectivityEvent := event != NONE_RAW_EVENT
if !isConnectivityEvent {
err := m.updateNodebInfo(nodebInfo)
if err != nil {
- return err
+ return ranStatusChangePublished, err
}
} else {
err := m.updateNodebInfoOnConnectionStatusInversion(nodebInfo, event)
if err != nil {
- return err
+ return ranStatusChangePublished, err
}
+ ranStatusChangePublished = true
}
// in any case, update RanListManager
}
}
- return nil
+ return ranStatusChangePublished, nil
}
func (m *RanConnectStatusChangeManager) updateNodebInfoOnConnectionStatusInversion(nodebInfo *entities.NodebInfo, event string) error {