package rNibWriter
import (
- "errors"
"fmt"
"gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common"
"gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities"
RNibWriter interface allows saving data to the redis DB
*/
type RNibWriter interface {
- SaveNodeb(nbIdentity *entities.NbIdentity, nb *entities.NodebInfo) common.IRNibError
- UpdateNodebInfo(nodebInfo *entities.NodebInfo) common.IRNibError
- SaveRanLoadInformation(inventoryName string, ranLoadInformation *entities.RanLoadInformation) common.IRNibError
+ SaveNodeb(nbIdentity *entities.NbIdentity, nb *entities.NodebInfo) error
+ UpdateNodebInfo(nodebInfo *entities.NodebInfo) error
+ SaveRanLoadInformation(inventoryName string, ranLoadInformation *entities.RanLoadInformation) error
}
/*
func initPool(poolSize int, newObj func() interface{}, destroyObj func(interface{})) {
writerPool = common.NewPool(poolSize, newObj, destroyObj)
}
-
/*
-GetRNibWriter returns RNibWriter instance from the pool
+GetRNibWriter returns reference to RNibWriter
*/
func GetRNibWriter() RNibWriter {
- return writerPool.Get().(RNibWriter)
+ return &rNibWriterInstance{}
}
-
/*
SaveNodeb saves nodeB entity data in the redis DB according to the specified data model
*/
-func (w *rNibWriterInstance) SaveNodeb(nbIdentity *entities.NbIdentity, entity *entities.NodebInfo) common.IRNibError {
-
+func (*rNibWriterInstance) SaveNodeb(nbIdentity *entities.NbIdentity, entity *entities.NodebInfo) error {
+ w := writerPool.Get().(*rNibWriterInstance)
isNotEmptyIdentity := isNotEmpty(nbIdentity)
if isNotEmptyIdentity && entity.GetNodeType() == entities.Node_UNKNOWN {
- return common.NewValidationError(errors.New(fmt.Sprintf("#rNibWriter.saveNodeB - Unknown responding node type, entity: %v", entity)))
+ return common.NewValidationError(fmt.Sprintf("#rNibWriter.saveNodeB - Unknown responding node type, entity: %v", entity))
}
defer writerPool.Put(w)
data, err := proto.Marshal(entity)
/*
UpdateNodebInfo...
*/
-func (w *rNibWriterInstance) UpdateNodebInfo(nodebInfo *entities.NodebInfo) common.IRNibError {
-
+func (*rNibWriterInstance) UpdateNodebInfo(nodebInfo *entities.NodebInfo) error {
+ w := writerPool.Get().(*rNibWriterInstance)
defer writerPool.Put(w)
nodebNameKey, rNibErr := common.ValidateAndBuildNodeBNameKey(nodebInfo.GetRanName())
return rNibErr
}
- nodebIdKey, rNibErr := common.ValidateAndBuildNodeBIdKey(nodebInfo.GetNodeType().String(), nodebInfo.GlobalNbId.GetPlmnId(), nodebInfo.GlobalNbId.GetNbId())
-
- if rNibErr != nil {
- return rNibErr
- }
+ nodebIdKey, buildNodebIdKeyError := common.ValidateAndBuildNodeBIdKey(nodebInfo.GetNodeType().String(), nodebInfo.GlobalNbId.GetPlmnId(), nodebInfo.GlobalNbId.GetNbId())
data, err := proto.Marshal(nodebInfo)
}
var pairs []interface{}
- pairs = append(pairs, nodebNameKey, data, nodebIdKey, data)
+ pairs = append(pairs, nodebNameKey, data)
+
+ if buildNodebIdKeyError == nil {
+ pairs = append(pairs, nodebIdKey, data)
+ }
+
err = (*w.sdl).Set(pairs)
if err != nil {
/*
SaveRanLoadInformation stores ran load information for the provided ran
*/
-func (w *rNibWriterInstance) SaveRanLoadInformation(inventoryName string, ranLoadInformation *entities.RanLoadInformation) common.IRNibError {
-
+func (*rNibWriterInstance) SaveRanLoadInformation(inventoryName string, ranLoadInformation *entities.RanLoadInformation) error {
+ w := writerPool.Get().(*rNibWriterInstance)
defer writerPool.Put(w)
key, rnibErr := common.ValidateAndBuildRanLoadInformationKey(inventoryName)
writerPool.Close()
}
-func appendEnbCells(nbIdentity *entities.NbIdentity, cells []*entities.ServedCellInfo, pairs []interface{}) ([]interface{}, common.IRNibError) {
+func appendEnbCells(nbIdentity *entities.NbIdentity, cells []*entities.ServedCellInfo, pairs []interface{}) ([]interface{}, error) {
for _, cell := range cells {
cellEntity := entities.Cell{Type: entities.Cell_LTE_CELL, Cell: &entities.Cell_ServedCellInfo{ServedCellInfo: cell}}
cellData, err := proto.Marshal(&cellEntity)
return pairs, nil
}
-func appendGnbCells(nbIdentity *entities.NbIdentity, cells []*entities.ServedNRCell, pairs []interface{}) ([]interface{}, common.IRNibError) {
+func appendGnbCells(nbIdentity *entities.NbIdentity, cells []*entities.ServedNRCell, pairs []interface{}) ([]interface{}, error) {
for _, cell := range cells {
cellEntity := entities.Cell{Type: entities.Cell_NR_CELL, Cell: &entities.Cell_ServedNrCell{ServedNrCell: cell}}
cellData, err := proto.Marshal(&cellEntity)