X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=reader%2FrNibReader.go;h=6f3327356649494ee9d4d242c30cd1f5e212ef5d;hb=6f0febff2d177ef6da0de23f785f81aec0603d96;hp=946a57a716165343bcbe30cc26080cdf945b8c0a;hpb=5e9bd76649d8135ff755e9d3d8cf0d0e59e2ad03;p=ric-plt%2Fnodeb-rnib.git diff --git a/reader/rNibReader.go b/reader/rNibReader.go index 946a57a..6f33273 100644 --- a/reader/rNibReader.go +++ b/reader/rNibReader.go @@ -1,6 +1,7 @@ // // 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. @@ -30,7 +31,9 @@ import ( 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 } /* @@ -40,7 +43,7 @@ type RNibReader interface { // 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 @@ -63,13 +66,45 @@ type RNibReader interface { GetE2TInstances(addresses []string) ([]*entities.E2TInstance, error) 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) { @@ -85,8 +120,8 @@ func (w *rNibReaderInstance) GetNodeb(inventoryName string) (*entities.NodebInfo 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 } @@ -126,7 +161,13 @@ func (w *rNibReaderInstance) GetListEnbIds() ([]*entities.NbIdentity, error) { } 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) } @@ -168,20 +209,25 @@ func (w *rNibReaderInstance) GetCellById(cellType entities.Cell_Type, cellId str } func (w *rNibReaderInstance) GetListNodebIds() ([]*entities.NbIdentity, error) { - dataEnb, err := w.sdl.GetMembers(entities.Node_ENB.String()) - if err != nil { - return nil, common.NewInternalError(err) + 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()) } - dataGnb, err := w.sdl.GetMembers(entities.Node_GNB.String()) if err != nil { return nil, common.NewInternalError(err) } - dataUnknown, err := w.sdl.GetMembers(entities.Node_UNKNOWN.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) } allIds := append(dataEnb, dataGnb...) - allIds = append(allIds, dataUnknown...) data, rnibErr := w.unmarshalIdentityList(allIds) return data, rnibErr } @@ -213,11 +259,18 @@ func (w *rNibReaderInstance) GetE2TInstance(address string) (*entities.E2TInstan } 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) @@ -252,8 +305,23 @@ func (w *rNibReaderInstance) GetE2TAddresses() ([]string, error) { return e2tAddresses, err } +func (w *rNibReaderInstance) GetGeneralConfiguration() (*entities.GeneralConfiguration, error) { + config := &entities.GeneralConfiguration{} + key := common.BuildGeneralConfigurationKey() + + err := w.getByKeyAndUnmarshalJson(key, config) + + return config, 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) @@ -270,7 +338,14 @@ func (w *rNibReaderInstance) getByKeyAndUnmarshalJson(key string, entity interfa } 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) } @@ -285,7 +360,13 @@ func (w *rNibReaderInstance) getByKeyAndUnmarshal(key string, entity proto.Messa } 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) }