summary |
shortlog |
log |
commit | commitdiff |
review |
tree
raw |
patch |
inline | side by side (from parent 1:
fc67b03)
Make subscription unavailable when under reset
Signed-off-by: naman.gupta <naman.gupta@samsung.com>
Change-Id: I98ace9baf042586c1f00bcfce66d5d912671c98c
c.PrintRESTSubscriptionRequest(p)
}
c.PrintRESTSubscriptionRequest(p)
}
- if c.e2IfState.IsE2ConnectionUp(p.Meid) == false {
- xapp.Logger.Error("No E2 connection for ranName %v", *p.Meid)
+ if c.e2IfState.IsE2ConnectionUp(p.Meid) == false || c.e2IfState.IsE2ConnectionUnderReset(p.Meid) == true {
+ if c.e2IfState.IsE2ConnectionUp(p.Meid) == false {
+ xapp.Logger.Error("No E2 connection for ranName %v", *p.Meid)
+ } else if c.e2IfState.IsE2ConnectionUnderReset(p.Meid) == true {
+ xapp.Logger.Error("E2 Node for ranName %v UNDER RESET", *p.Meid)
+ }
c.UpdateCounter(cRestReqRejDueE2Down)
return nil, common.SubscribeServiceUnavailableCode
}
c.UpdateCounter(cRestReqRejDueE2Down)
return nil, common.SubscribeServiceUnavailableCode
}
}
type E2IfState struct {
}
type E2IfState struct {
- mutex sync.Mutex
- control *Control
- NbIdMap map[string]string
+ mutex sync.Mutex
+ control *Control
+ NbIdMap map[string]string
+ NbIdStatusMap map[string]string
}
func (e *E2IfState) Init(c *Control) {
e.control = c
e.NbIdMap = make(map[string]string, 0)
}
func (e *E2IfState) Init(c *Control) {
e.control = c
e.NbIdMap = make(map[string]string, 0)
+ e.NbIdStatusMap = make(map[string]string, 0)
e.ReadE2ConfigurationFromRnib()
err := e.SubscribeChannels()
if err != nil {
e.ReadE2ConfigurationFromRnib()
err := e.SubscribeChannels()
if err != nil {
}
xapp.Logger.Debug("E2 CONNECTED. NbId=%s", nbId)
e.NbIdMap[nbId] = nbId
}
xapp.Logger.Debug("E2 CONNECTED. NbId=%s", nbId)
e.NbIdMap[nbId] = nbId
+ e.NbIdStatusMap[nbId] = "CONNECTED"
} else if strings.Contains(events[0], "_DISCONNECTED") {
e.control.UpdateCounter(cE2StateChangedToDown)
nbId, err := ExtractNbiIdFromString(events[0])
} else if strings.Contains(events[0], "_DISCONNECTED") {
e.control.UpdateCounter(cE2StateChangedToDown)
nbId, err := ExtractNbiIdFromString(events[0])
}
xapp.Logger.Debug("E2 DISCONNECTED. NbId=%s", nbId)
if _, ok := e.NbIdMap[nbId]; ok {
}
xapp.Logger.Debug("E2 DISCONNECTED. NbId=%s", nbId)
if _, ok := e.NbIdMap[nbId]; ok {
+ e.NbIdStatusMap[nbId] = "DISCONNECTED"
delete(e.NbIdMap, nbId)
e.control.registry.DeleteAllE2Subscriptions(nbId, e.control)
}
delete(e.NbIdMap, nbId)
e.control.registry.DeleteAllE2Subscriptions(nbId, e.control)
}
xapp.Logger.Error("NotificationCb _UNDER_RESET %v ", err)
return
}
xapp.Logger.Error("NotificationCb _UNDER_RESET %v ", err)
return
}
+ e.NbIdStatusMap[nbId] = "UNDER_RESET"
xapp.Logger.Debug("E2 Under Reset. NbId=%s", nbId)
if _, ok := e.NbIdMap[nbId]; ok {
e.control.registry.DeleteAllE2Subscriptions(nbId, e.control)
xapp.Logger.Debug("E2 Under Reset. NbId=%s", nbId)
if _, ok := e.NbIdMap[nbId]; ok {
e.control.registry.DeleteAllE2Subscriptions(nbId, e.control)
+func (e *E2IfState) IsE2ConnectionUnderReset(nbId *string) bool {
+
+ if status := e.NbIdStatusMap[*nbId]; status == "UNDER_RESET" {
+ return true
+ } else {
+ return false
+ }
+}
+
func ExtractNbiIdFromString(s string) (string, error) {
// Expected string formats are below
func ExtractNbiIdFromString(s string) (string, error) {
// Expected string formats are below