X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=E2Manager%2FrNibWriter%2FrNibWriter.go;h=a44f38822cf10cf53144f48314d2318894dae075;hb=4c67d61c4898a775d1280ee6fadd83637317037a;hp=f9f75bd77c21579b0a415ca43c07ff5eaa25c326;hpb=08bbf91d9f5afd6ecd6eeb9bcc8c160b8242d1ec;p=ric-plt%2Fe2mgr.git diff --git a/E2Manager/rNibWriter/rNibWriter.go b/E2Manager/rNibWriter/rNibWriter.go index f9f75bd..a44f388 100644 --- a/E2Manager/rNibWriter/rNibWriter.go +++ b/E2Manager/rNibWriter/rNibWriter.go @@ -44,6 +44,7 @@ type RNibWriter interface { SaveE2TAddresses(addresses []string) error RemoveE2TInstance(e2tAddress string) error UpdateGnbCells(nodebInfo *entities.NodebInfo, servedNrCells []*entities.ServedNRCell) error + RemoveServedNrCells(inventoryName string, servedNrCells []*entities.ServedNRCell) error } /* @@ -54,6 +55,18 @@ func GetRNibWriter(sdl common.ISdlInstance) RNibWriter { return &rNibWriterInstance{sdl: sdl} } + +func (w *rNibWriterInstance) RemoveServedNrCells(inventoryName string, servedNrCells []*entities.ServedNRCell) error { + cellKeysToRemove := buildCellKeysToRemove(inventoryName, servedNrCells) + err := w.sdl.Remove(cellKeysToRemove) + + if err != nil { + return common.NewInternalError(err) + } + + return nil +} + /* SaveNodeb saves nodeB entity data in the redis DB according to the specified data model */ @@ -148,6 +161,28 @@ func (w *rNibWriterInstance) UpdateGnbCells(nodebInfo *entities.NodebInfo, serve return nil } +func buildCellKeysToRemove(inventoryName string, servedNrCellsToRemove []*entities.ServedNRCell) []string { + + cellKeysToRemove := []string{} + + for _, cell := range servedNrCellsToRemove { + + key, _ := common.ValidateAndBuildNrCellIdKey(cell.GetServedNrCellInformation().GetCellId()) + + if len(key) != 0 { + cellKeysToRemove = append(cellKeysToRemove, key) + } + + key, _ = common.ValidateAndBuildCellNamePciKey(inventoryName, cell.GetServedNrCellInformation().GetNrPci()) + + if len(key) != 0 { + cellKeysToRemove = append(cellKeysToRemove, key) + } + } + + return cellKeysToRemove +} + func buildUpdateNodebInfoPairs(nodebInfo *entities.NodebInfo) ([]interface{}, error) { nodebNameKey, rNibErr := common.ValidateAndBuildNodeBNameKey(nodebInfo.GetRanName())