//
// Copyright 2019 AT&T Intellectual Property
// Copyright 2019 Nokia
+// Copyright 2023 Capgemini
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
const E2TAddressesKey = "E2TAddresses"
type rNibReaderInstance struct {
- sdl common.ISdlInstance
+ sdl common.ISdlInstance //Deprecated: Will be removed in a future release and replaced by sdlStorage
+ sdlStorage common.ISdlSyncStorage
+ ns string
}
/*
// GetNodeb retrieves responding nodeb entity from redis DB by nodeb inventory name
GetNodeb(inventoryName string) (*entities.NodebInfo, error)
// GetNodebByGlobalNbId retrieves responding nodeb entity from redis DB by nodeb global Id
- GetNodebByGlobalNbId(nodeType entities.Node_Type, globalNbId *entities.GlobalNbId) (*entities.NodebInfo, error)
+ GetNodebByGlobalNbId(nodeType entities.Node_Type, globalNbId *entities.GlobalNbId, cuupId string,duid string) (*entities.NodebInfo, error)
// GetCellList retrieves the list of cell entities belonging to responding nodeb entity from redis DB by nodeb inventory name
GetCellList(inventoryName string) (*entities.Cells, error)
// GetListGnbIds retrieves the list of gNodeb identity entities
GetE2TAddresses() ([]string, error)
GetGeneralConfiguration() (*entities.GeneralConfiguration, error)
+
+ GetRanFunctionDefinition(inventoryName string, Oid string) ([]string, error)
}
-/*
-GetRNibReader returns reference to RNibReader
-*/
+//GetNewRNibReader returns reference to RNibReader
+func GetNewRNibReader(storage common.ISdlSyncStorage) RNibReader {
+ return &rNibReaderInstance{
+ sdl: nil,
+ sdlStorage: storage,
+ ns: common.GetRNibNamespace(),
+ }
+}
+
+//GetRanFunctionDefinition from the OID
+func (w *rNibReaderInstance) GetRanFunctionDefinition(inventoryName string, oid string) ([]string, error){
+ nb, err := w.GetNodeb (inventoryName)
+ if (nb.GetGnb() != nil) {
+ ranFunction := nb.GetGnb().RanFunctions
+ functionDefinitionList := make([]string, 0)
+ for _, ranFunction := range ranFunction {
+ if (oid == ranFunction.RanFunctionOid) {
+ functionDefinitionList = append(functionDefinitionList ,ranFunction.RanFunctionDefinition)
+ }
+ }
+ return functionDefinitionList, err
+ }
+ return nil, common.NewResourceNotFoundErrorf("#rNibReader.GetCellList - served cells not found. Responding node RAN name: % s.", inventoryName)
+}
+
+//GetRNibReader returns reference to RNibReader
+//Deprecated: Will be removed in a future release, please use GetNewRNibReader instead.
func GetRNibReader(sdl common.ISdlInstance) RNibReader {
- return &rNibReaderInstance{sdl: sdl}
+ return &rNibReaderInstance{
+ sdl: sdl,
+ sdlStorage: nil,
+ ns: "",
+ }
}
func (w *rNibReaderInstance) GetNodeb(inventoryName string) (*entities.NodebInfo, error) {
return nbInfo, nil
}
-func (w *rNibReaderInstance) GetNodebByGlobalNbId(nodeType entities.Node_Type, globalNbId *entities.GlobalNbId) (*entities.NodebInfo, error) {
- key, rNibErr := common.ValidateAndBuildNodeBIdKey(nodeType.String(), globalNbId.GetPlmnId(), globalNbId.GetNbId())
+func (w *rNibReaderInstance) GetNodebByGlobalNbId(nodeType entities.Node_Type, globalNbId *entities.GlobalNbId, cuupid string, duid string) (*entities.NodebInfo, error) {
+ key, rNibErr := common.ValidateAndBuildNodeBIdKey(nodeType.String(), globalNbId.GetPlmnId(), globalNbId.GetNbId(), cuupid, duid)
if rNibErr != nil {
return nil, rNibErr
}
}
func (w *rNibReaderInstance) GetCountGnbList() (int, error) {
- size, err := w.sdl.GroupSize(entities.Node_GNB.String())
+ var size int64
+ var err error
+ if w.sdlStorage != nil {
+ size, err = w.sdlStorage.GroupSize(w.ns, entities.Node_GNB.String())
+ } else {
+ size, err = w.sdl.GroupSize(entities.Node_GNB.String())
+ }
if err != nil {
return 0, common.NewInternalError(err)
}
}
func (w *rNibReaderInstance) GetListNodebIds() ([]*entities.NbIdentity, error) {
- dataEnb, err := w.sdl.GetMembers(entities.Node_ENB.String())
+ var dataEnb, dataGnb []string
+ var err error
+ if w.sdlStorage != nil {
+ dataEnb, err = w.sdlStorage.GetMembers(w.ns, entities.Node_ENB.String())
+ } else {
+ dataEnb, err = w.sdl.GetMembers(entities.Node_ENB.String())
+ }
if err != nil {
return nil, common.NewInternalError(err)
}
- dataGnb, err := w.sdl.GetMembers(entities.Node_GNB.String())
+ if w.sdlStorage != nil {
+ dataGnb, err = w.sdlStorage.GetMembers(w.ns, entities.Node_GNB.String())
+ } else {
+ dataGnb, err = w.sdl.GetMembers(entities.Node_GNB.String())
+ }
if err != nil {
return nil, common.NewInternalError(err)
}
}
func (w *rNibReaderInstance) GetE2TInstances(addresses []string) ([]*entities.E2TInstance, error) {
+ var data map[string]interface{}
+ var err error
+
keys := common.MapE2TAddressesToKeys(addresses)
e2tInstances := []*entities.E2TInstance{}
- data, err := w.sdl.Get(keys)
+ if w.sdlStorage != nil {
+ data, err = w.sdlStorage.Get(w.ns, keys)
+ } else {
+ data, err = w.sdl.Get(keys)
+ }
if err != nil {
return []*entities.E2TInstance{}, common.NewInternalError(err)
}
func (w *rNibReaderInstance) getByKeyAndUnmarshalJson(key string, entity interface{}) error {
- data, err := w.sdl.Get([]string{key})
+ var data map[string]interface{}
+ var err error
+ if w.sdlStorage != nil {
+ data, err = w.sdlStorage.Get(w.ns, []string{key})
+ } else {
+ data, err = w.sdl.Get([]string{key})
+ }
if err != nil {
return common.NewInternalError(err)
}
func (w *rNibReaderInstance) getByKeyAndUnmarshal(key string, entity proto.Message) error {
- data, err := w.sdl.Get([]string{key})
+ var data map[string]interface{}
+ var err error
+ if w.sdlStorage != nil {
+ data, err = w.sdlStorage.Get(w.ns, []string{key})
+ } else {
+ data, err = w.sdl.Get([]string{key})
+ }
+
if err != nil {
return common.NewInternalError(err)
}
}
func (w *rNibReaderInstance) getListNodebIdsByType(nbType string) ([]*entities.NbIdentity, error) {
- data, err := w.sdl.GetMembers(nbType)
+ var data []string
+ var err error
+ if w.sdlStorage != nil {
+ data, err = w.sdlStorage.GetMembers(w.ns, nbType)
+ } else {
+ data, err = w.sdl.GetMembers(nbType)
+ }
if err != nil {
return nil, common.NewInternalError(err)
}