X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=E2Manager%2FrNibWriter%2FrNibWriter.go;h=670ee6b59feab5b054350d09dc3282c6e4be030c;hb=refs%2Fchanges%2F05%2F4505%2F1;hp=30692588b47e588ef852b57f62b4540a994a6d27;hpb=7000880c4031e607a2fe36046fd097f486476a84;p=ric-plt%2Fe2mgr.git diff --git a/E2Manager/rNibWriter/rNibWriter.go b/E2Manager/rNibWriter/rNibWriter.go index 3069258..670ee6b 100644 --- a/E2Manager/rNibWriter/rNibWriter.go +++ b/E2Manager/rNibWriter/rNibWriter.go @@ -46,6 +46,7 @@ RNibWriter interface allows saving data to the redis DB type RNibWriter interface { SaveNodeb(nodebInfo *entities.NodebInfo) error UpdateNodebInfo(nodebInfo *entities.NodebInfo) error + UpdateNodebInfoAndPublish(nodebInfo *entities.NodebInfo) error SaveRanLoadInformation(inventoryName string, ranLoadInformation *entities.RanLoadInformation) error SaveE2TInstance(e2tInstance *entities.E2TInstance) error SaveE2TAddresses(addresses []string) error @@ -59,6 +60,7 @@ type RNibWriter interface { UpdateEnb(nodebInfo *entities.NodebInfo, servedCells []*entities.ServedCellInfo) error AddNbIdentity(nodeType entities.Node_Type, nbIdentity *entities.NbIdentity) error RemoveNbIdentity(nodeType entities.Node_Type, nbIdentity *entities.NbIdentity) error + AddEnb(nodebInfo *entities.NodebInfo) error } /* @@ -166,13 +168,48 @@ func (w *rNibWriterInstance) SaveNodeb(nodebInfo *entities.NodebInfo) error { } } - if nodebInfo.GetNodeType() == entities.Node_ENB { - channelsAndEvents := getChannelsAndEventsPair(w.rnibWriterConfig.RanManipulationMessageChannel, nodebInfo.RanName, RanAddedEvent) - err = w.sdl.SetAndPublish(channelsAndEvents, pairs) - } else { - err = w.sdl.Set(pairs) + err = w.sdl.Set(pairs) + + if err != nil { + return common.NewInternalError(err) + } + + return nil +} + +func (w *rNibWriterInstance) AddEnb(nodebInfo *entities.NodebInfo) error { + + data, err := proto.Marshal(nodebInfo) + + if err != nil { + return common.NewInternalError(err) + } + + var pairs []interface{} + key, rNibErr := common.ValidateAndBuildNodeBNameKey(nodebInfo.RanName) + + if rNibErr != nil { + return rNibErr + } + + pairs = append(pairs, key, data) + + if nodebInfo.GlobalNbId != nil { + + key, rNibErr = common.ValidateAndBuildNodeBIdKey(nodebInfo.GetNodeType().String(), nodebInfo.GlobalNbId.GetPlmnId(), nodebInfo.GlobalNbId.GetNbId()) + if rNibErr != nil { + return rNibErr + } + pairs = append(pairs, key, data) } + pairs, rNibErr = appendEnbCells(nodebInfo.RanName, nodebInfo.GetEnb().GetServedCells(), pairs) + if rNibErr != nil { + return rNibErr + } + + channelsAndEvents := getChannelsAndEventsPair(w.rnibWriterConfig.RanManipulationMessageChannel, nodebInfo.RanName, RanAddedEvent) + err = w.sdl.SetAndPublish(channelsAndEvents, pairs) if err != nil { return common.NewInternalError(err) } @@ -304,10 +341,7 @@ func (w *rNibWriterInstance) RemoveNbIdentity(nodeType entities.Node_Type, nbIde return nil } -/* -UpdateNodebInfo... -*/ -func (w *rNibWriterInstance) UpdateNodebInfo(nodebInfo *entities.NodebInfo) error { +func (w *rNibWriterInstance) updateNodebInfo(nodebInfo *entities.NodebInfo, publish bool) error { pairs, err := buildUpdateNodebInfoPairs(nodebInfo) @@ -315,7 +349,12 @@ func (w *rNibWriterInstance) UpdateNodebInfo(nodebInfo *entities.NodebInfo) erro return err } - err = w.sdl.Set(pairs) + if publish { + channelsAndEvents := getChannelsAndEventsPair(w.rnibWriterConfig.RanManipulationMessageChannel, nodebInfo.RanName, RanUpdatedEvent) + err = w.sdl.SetAndPublish(channelsAndEvents, pairs) + } else { + err = w.sdl.Set(pairs) + } if err != nil { return common.NewInternalError(err) @@ -324,6 +363,21 @@ func (w *rNibWriterInstance) UpdateNodebInfo(nodebInfo *entities.NodebInfo) erro return nil } +/* +UpdateNodebInfo... +*/ +func (w *rNibWriterInstance) UpdateNodebInfo(nodebInfo *entities.NodebInfo) error { + return w.updateNodebInfo(nodebInfo, false) +} + +/* +UpdateNodebInfoAndPublish... +*/ +func (w *rNibWriterInstance) UpdateNodebInfoAndPublish(nodebInfo *entities.NodebInfo) error { + return w.updateNodebInfo(nodebInfo, true) +} + + /* SaveRanLoadInformation stores ran load information for the provided ran */