From: wahidw Date: Fri, 12 Nov 2021 03:45:14 +0000 (+0000) Subject: MEID table corruption due to index mismatch X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=commitdiff_plain;h=refs%2Fheads%2Fdawn;p=ric-plt%2Frtmgr.git MEID table corruption due to index mismatch Signed-off-by: wahidw Change-Id: I60aead19dbb164e75f2e0b959aed371fc339d9aa --- diff --git a/pkg/nbi/httprestful.go b/pkg/nbi/httprestful.go index ab62a13..b8bee32 100644 --- a/pkg/nbi/httprestful.go +++ b/pkg/nbi/httprestful.go @@ -316,6 +316,7 @@ func CreateNewE2tHandleHandlerImpl(data *models.E2tData) error { time.Sleep(10 * time.Second) for ep, value := range rtmgr.RMRConnStatus { if ep == *data.E2TAddress && value == true { + rtmgr.RMRConnStatus[ep] = false return nil } } diff --git a/pkg/rpe/rmr.go b/pkg/rpe/rmr.go index 8279e17..5447693 100644 --- a/pkg/rpe/rmr.go +++ b/pkg/rpe/rmr.go @@ -113,14 +113,16 @@ func (r *Rmr) generateRMRPolicies(eps rtmgr.Endpoints, rcs *rtmgr.RicComponents, mapindex := "mme_del|" + MEID + "\n" i := keys[mapindex].index if keys[mapindex].flag { - copy(rawrt[i:], rawrt[i+1:]) - rawrt[len(rawrt)-1] = "" - rawrt = rawrt[:len(rawrt)-1] + //copy(rawrt[i:], rawrt[i+1:]) + //rawrt[len(rawrt)-1] = "" + //rawrt = rawrt[:len(rawrt)-1] + rawrt[i] = "" delete(keys, mapindex) count-- } } } + rawrt = removeEmptyStrings(rawrt) rawrt = append(rawrt, key+"meid_map|end|"+strconv.Itoa(count)+"\n") xapp.Logger.Debug("rmr.GeneratePolicies returns: %v", rawrt) @@ -182,6 +184,16 @@ func (r *RmrPush) GenerateRouteTable(eps rtmgr.Endpoints) *rtmgr.RouteTable { } func (r *RmrPush) GeneratePartialPolicies(eps rtmgr.Endpoints, xappSubData *models.XappSubscriptionData, updatetype rtmgr.RMRUpdateType) *[]string { - xapp.Logger.Debug("Invoked rmr.GeneratePartialRMR, args: %v: ", eps) + xapp.Logger.Debug("Invoked rmr.GeneratePartialPolicies, args: %v: ", eps) return r.generatePartialRMRPolicies(eps, xappSubData, "", updatetype) } + +func removeEmptyStrings(s []string) []string { + var r []string + for _, str := range s { + if str != "" { + r = append(r, str) + } + } + return r +}