From fbf8bcf39bf48d940f176400c70e1f20ea39a8a5 Mon Sep 17 00:00:00 2001 From: Mohamed Abukar Date: Thu, 14 May 2020 18:33:54 +0300 Subject: [PATCH] RNIB version upgrade Change-Id: If3c771e7c459237b92e8a3769b7a22f3edab03a7 Signed-off-by: Mohamed Abukar --- go.mod | 16 ++++++------ go.sum | 14 +++++++++++ pkg/rnib/rNibWriter.go | 67 ++++++++++++++++++++------------------------------ pkg/xapp/db.go | 23 ++++++++--------- 4 files changed, 61 insertions(+), 59 deletions(-) mode change 100755 => 100644 go.mod mode change 100644 => 100755 pkg/xapp/db.go diff --git a/go.mod b/go.mod old mode 100755 new mode 100644 index 078e930..2cbbc5d --- a/go.mod +++ b/go.mod @@ -5,10 +5,10 @@ go 1.12 require ( gerrit.o-ran-sc.org/r/com/golog v0.0.1 gerrit.o-ran-sc.org/r/ric-plt/alarm-go.git/alarm v0.4.2 - gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common v1.0.21 - gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities v1.0.21 - gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/reader v1.0.21 - gerrit.o-ran-sc.org/r/ric-plt/sdlgo v0.3.1 + gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common v1.0.35 + gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities v1.0.35 + gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/reader v1.0.35 + gerrit.o-ran-sc.org/r/ric-plt/sdlgo v0.5.0 github.com/fsnotify/fsnotify v1.4.7 github.com/go-openapi/errors v0.19.3 github.com/go-openapi/loads v0.19.4 @@ -17,7 +17,7 @@ require ( github.com/go-openapi/strfmt v0.19.4 github.com/go-openapi/swag v0.19.7 github.com/go-openapi/validate v0.19.6 - github.com/golang/protobuf v1.3.2 + github.com/golang/protobuf v1.3.4 github.com/gorilla/mux v1.7.1 github.com/jessevdk/go-flags v1.4.0 github.com/prometheus/client_golang v0.9.3 @@ -30,10 +30,10 @@ replace gerrit.o-ran-sc.org/r/ric-plt/sdlgo => gerrit.o-ran-sc.org/r/ric-plt/sdl replace gerrit.o-ran-sc.org/r/com/golog => gerrit.o-ran-sc.org/r/com/golog.git v0.0.0-20190604083303-aaffc8ebe3f1 -replace gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common => gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common v1.0.21 +replace gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common => gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common v1.0.35 -replace gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities => gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities v1.0.21 +replace gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities => gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities v1.0.35 -replace gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/reader => gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/reader v1.0.21 +replace gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/reader => gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/reader v1.0.35 replace gerrit.o-ran-sc.org/r/ric-plt/alarm-go.git/alarm => gerrit.o-ran-sc.org/r/ric-plt/alarm-go.git/alarm v0.4.2 diff --git a/go.sum b/go.sum index bd298ca..2d010ed 100644 --- a/go.sum +++ b/go.sum @@ -9,10 +9,22 @@ gerrit.o-ran-sc.org/r/ric-plt/alarm-go.git/alarm v0.4.2 h1:XNfkp3PwZ7pfkPszX7NaX gerrit.o-ran-sc.org/r/ric-plt/alarm-go.git/alarm v0.4.2/go.mod h1:AdEWKtERGvOQy9ybLhyhrb9w9LLVn8i9xzTwoR5n4BY= gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common v1.0.21 h1:eK9nUZOTMJ/EnMpH9bkWtMgOvCn3u4+PNCb9gu10s6w= gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common v1.0.21/go.mod h1:QJ1uPPZosGbhxUWpUpeM5fLqFHdnWTrVnvW2DgyOCes= +gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common v1.0.25 h1:msB3b7s+KoNdzSOKZPgymoMJEpA84fSTWBDCgvbUKaE= +gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common v1.0.25/go.mod h1:QJ1uPPZosGbhxUWpUpeM5fLqFHdnWTrVnvW2DgyOCes= +gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common v1.0.35 h1:TGXHb4DNY8on+ej4S9VUnk2HibIC/5chDy64OE+bQBQ= +gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common v1.0.35/go.mod h1:QJ1uPPZosGbhxUWpUpeM5fLqFHdnWTrVnvW2DgyOCes= gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities v1.0.21 h1:PQ/Mu2ol+8Oh/0BqCWWhPlVVoRCg5dQDEGm4+Opp5w4= gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities v1.0.21/go.mod h1:GXiXLz4ORBeIr0FLIbzENRykgh3Po5uPkX2jICxnRF0= +gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities v1.0.25 h1:W9CayjJzo3r0MrgDODBg4YwIEJ/VZc4BWqfK2qWX7jg= +gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities v1.0.25/go.mod h1:Fh23KkroYw5CRBh39WzZzxpKSkpQWL3scdzGnMngLo8= +gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities v1.0.35 h1:tkM3yE8UzmuH4nf9TqAmiNBSuIZ2CtcMRH2eBIYIzpQ= +gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities v1.0.35/go.mod h1:G+4sUBMbLfQ+RrGS65U15tKmbnP+/1b5oLTPmMfyfT4= gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/reader v1.0.21 h1:N3UbqJ9WqC8JEz/TwHHwZwCFAW6VTlZLpD5lnbdD+Y8= gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/reader v1.0.21/go.mod h1:SQBZLy1HP94i1vQ3y730wGFsrHqZtgPaEkzPgtqBNw0= +gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/reader v1.0.25 h1:mxLhqHxp4yeo01sT3GrGVa7chaedOd7cj00Q2TK3xJM= +gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/reader v1.0.25/go.mod h1:gfLVMDJ1W5uwTphc74b70SGXqBHYjo2v2ZdtroX5pFs= +gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/reader v1.0.35 h1:LcxnUUDwsCzYEISKmkjkyYfg/lnLt8ofkPiGK69vNIA= +gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/reader v1.0.35/go.mod h1:2bSaXTpECbZieB8bMnubTqMwF3n+mMBxlTaAXvcduNg= gerrit.o-ran-sc.org/r/ric-plt/sdlgo.git v0.5.2 h1:UK7awyRKIkVdokWvvkYvazlg3EWIfMnIqCcJxTnLlDA= gerrit.o-ran-sc.org/r/ric-plt/sdlgo.git v0.5.2/go.mod h1:y2WhrCvdLkAKdH+ySdHSOSehACJkTMyZghCGVcqoZzc= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= @@ -121,6 +133,8 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.4 h1:87PNWwrRvUSnqS4dlcBU/ftvOIBep4sYuBLlh6rX2wk= +github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= diff --git a/pkg/rnib/rNibWriter.go b/pkg/rnib/rNibWriter.go index 74855d6..74fb557 100755 --- a/pkg/rnib/rNibWriter.go +++ b/pkg/rnib/rNibWriter.go @@ -21,15 +21,11 @@ import ( "fmt" rnibcommon "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common" rnibentities "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities" - "gerrit.o-ran-sc.org/r/ric-plt/sdlgo" "github.com/golang/protobuf/proto" ) -var writerPool *rnibcommon.Pool - type rNibWriterInstance struct { - sdl *ISdlInstance - namespace string + sdl rnibcommon.ISdlInstance } /* @@ -40,44 +36,22 @@ type RNibWriter interface { } /* -Init initializes the infrastructure required for the RNibWriter instance +GetRNibWriter returns reference to RNibWriter */ -func InitWriter(namespace string, poolSize int) { - initWriterPool(poolSize, - func() interface{} { - var sdlI ISdlInstance = sdlgo.NewSdlInstance(namespace, sdlgo.NewDatabase()) - return &rNibWriterInstance{sdl: &sdlI, namespace: namespace} - }, - func(obj interface{}) { - (*obj.(*rNibWriterInstance).sdl).Close() - }) -} -/* -InitPool initializes the writer's instances pool -*/ -func initWriterPool(poolSize int, newObj func() interface{}, destroyObj func(interface{})) { - writerPool = rnibcommon.NewPool(poolSize, newObj, destroyObj) -} - -/* -GetRNibWriter returns RNibWriter instance from the pool -*/ -func GetRNibWriter() RNibWriter { - return writerPool.Get().(RNibWriter) +func GetRNibWriter(sdl rnibcommon.ISdlInstance) RNibWriter { + return &rNibWriterInstance{sdl: sdl} } /* SaveNodeb saves nodeB entity data in the redis DB according to the specified data model */ func (w *rNibWriterInstance) SaveNodeb(nbIdentity *rnibentities.NbIdentity, entity *rnibentities.NodebInfo) error { - isNotEmptyIdentity := isNotEmpty(nbIdentity) if isNotEmptyIdentity && entity.GetNodeType() == rnibentities.Node_UNKNOWN { return rnibcommon.NewValidationError(fmt.Sprintf("#rNibWriter.saveNodeB - Unknown responding node type, entity: %v", entity)) } - defer writerPool.Put(w) data, err := proto.Marshal(entity) if err != nil { return rnibcommon.NewInternalError(err) @@ -98,30 +72,44 @@ func (w *rNibWriterInstance) SaveNodeb(nbIdentity *rnibentities.NbIdentity, enti } if entity.GetEnb() != nil { - pairs, rNibErr = appendEnbCells(nbIdentity, entity.GetEnb().GetServedCells(), pairs) + pairs, rNibErr = appendEnbCells(nbIdentity.InventoryName, entity.GetEnb().GetServedCells(), pairs) if rNibErr != nil { return rNibErr } } if entity.GetGnb() != nil { - pairs, rNibErr = appendGnbCells(nbIdentity, entity.GetGnb().GetServedNrCells(), pairs) + pairs, rNibErr = appendGnbCells(nbIdentity.InventoryName, entity.GetGnb().GetServedNrCells(), pairs) if rNibErr != nil { return rNibErr } } - err = (*w.sdl).Set(pairs) + err = w.sdl.Set(pairs) if err != nil { return rnibcommon.NewInternalError(err) } + + ranNameIdentity := &rnibentities.NbIdentity{InventoryName: nbIdentity.InventoryName} + if isNotEmptyIdentity { - nbIdData, err := proto.Marshal(nbIdentity) + nbIdData, err := proto.Marshal(ranNameIdentity) if err != nil { return rnibcommon.NewInternalError(err) } - err = (*w.sdl).AddMember(entity.GetNodeType().String(), nbIdData) + err = w.sdl.RemoveMember(rnibentities.Node_UNKNOWN.String(), nbIdData) if err != nil { return rnibcommon.NewInternalError(err) } + } else { + nbIdentity = ranNameIdentity + } + + nbIdData, err := proto.Marshal(nbIdentity) + if err != nil { + return rnibcommon.NewInternalError(err) + } + err = w.sdl.AddMember(entity.GetNodeType().String(), nbIdData) + if err != nil { + return rnibcommon.NewInternalError(err) } return nil } @@ -130,10 +118,9 @@ func (w *rNibWriterInstance) SaveNodeb(nbIdentity *rnibentities.NbIdentity, enti Close closes writer's pool */ func CloseWriter() { - writerPool.Close() } -func appendEnbCells(nbIdentity *rnibentities.NbIdentity, cells []*rnibentities.ServedCellInfo, pairs []interface{}) ([]interface{}, error) { +func appendEnbCells(inventoryName string, cells []*rnibentities.ServedCellInfo, pairs []interface{}) ([]interface{}, error) { for _, cell := range cells { cellEntity := rnibentities.Cell{Type: rnibentities.Cell_LTE_CELL, Cell: &rnibentities.Cell_ServedCellInfo{ServedCellInfo: cell}} cellData, err := proto.Marshal(&cellEntity) @@ -145,7 +132,7 @@ func appendEnbCells(nbIdentity *rnibentities.NbIdentity, cells []*rnibentities.S return pairs, rNibErr } pairs = append(pairs, key, cellData) - key, rNibErr = rnibcommon.ValidateAndBuildCellNamePciKey(nbIdentity.InventoryName, cell.GetPci()) + key, rNibErr = rnibcommon.ValidateAndBuildCellNamePciKey(inventoryName, cell.GetPci()) if rNibErr != nil { return pairs, rNibErr } @@ -154,7 +141,7 @@ func appendEnbCells(nbIdentity *rnibentities.NbIdentity, cells []*rnibentities.S return pairs, nil } -func appendGnbCells(nbIdentity *rnibentities.NbIdentity, cells []*rnibentities.ServedNRCell, pairs []interface{}) ([]interface{}, error) { +func appendGnbCells(inventoryName string, cells []*rnibentities.ServedNRCell, pairs []interface{}) ([]interface{}, error) { for _, cell := range cells { cellEntity := rnibentities.Cell{Type: rnibentities.Cell_NR_CELL, Cell: &rnibentities.Cell_ServedNrCell{ServedNrCell: cell}} cellData, err := proto.Marshal(&cellEntity) @@ -166,7 +153,7 @@ func appendGnbCells(nbIdentity *rnibentities.NbIdentity, cells []*rnibentities.S return pairs, rNibErr } pairs = append(pairs, key, cellData) - key, rNibErr = rnibcommon.ValidateAndBuildCellNamePciKey(nbIdentity.InventoryName, cell.GetServedNrCellInformation().GetNrPci()) + key, rNibErr = rnibcommon.ValidateAndBuildCellNamePciKey(inventoryName, cell.GetServedNrCellInformation().GetNrPci()) if rNibErr != nil { return pairs, rNibErr } diff --git a/pkg/xapp/db.go b/pkg/xapp/db.go old mode 100644 new mode 100755 index 495239f..afb52b5 --- a/pkg/xapp/db.go +++ b/pkg/xapp/db.go @@ -66,6 +66,7 @@ type RNIBServedNRCellInformation = rnibentities.ServedNRCellInformation type RNIBNrNeighbourInformation = rnibentities.NrNeighbourInformation type RNIBClient struct { + db *sdl.SdlInstance reader rnibreader.RNibReader writer rnibwriter.RNibWriter } @@ -165,46 +166,46 @@ func (c *SDLClient) GetStat() (t SDLStatistics) { } func NewRNIBClient(ns string) *RNIBClient { - rnibreader.Init("e2Manager", 1) - rnibwriter.InitWriter("e2Manager", 1) + s := sdl.NewSdlInstance("e2Manager", sdl.NewDatabase()) return &RNIBClient{ + db: s, reader: nil, writer: nil, } } func (r *RNIBClient) GetNodeb(invName string) (*RNIBNodebInfo, RNIBIRNibError) { - return rnibreader.GetRNibReader().GetNodeb(invName) + return rnibreader.GetRNibReader(r.db).GetNodeb(invName) } func (r *RNIBClient) GetNodebByGlobalNbId(t RNIBNodeType, gid *RNIBGlobalNbId) (*RNIBNodebInfo, RNIBIRNibError) { - return rnibreader.GetRNibReader().GetNodebByGlobalNbId(t, gid) + return rnibreader.GetRNibReader(r.db).GetNodebByGlobalNbId(t, gid) } func (r *RNIBClient) GetCellList(invName string) (*RNIBCells, RNIBIRNibError) { - return rnibreader.GetRNibReader().GetCellList(invName) + return rnibreader.GetRNibReader(r.db).GetCellList(invName) } func (r *RNIBClient) GetListGnbIds() ([]*RNIBNbIdentity, RNIBIRNibError) { - return rnibreader.GetRNibReader().GetListGnbIds() + return rnibreader.GetRNibReader(r.db).GetListGnbIds() } func (r *RNIBClient) GetListEnbIds() ([]*RNIBNbIdentity, RNIBIRNibError) { - return rnibreader.GetRNibReader().GetListEnbIds() + return rnibreader.GetRNibReader(r.db).GetListEnbIds() } func (r *RNIBClient) GetCountGnbList() (int, RNIBIRNibError) { - return rnibreader.GetRNibReader().GetCountGnbList() + return rnibreader.GetRNibReader(r.db).GetCountGnbList() } func (r *RNIBClient) GetCell(invName string, pci uint32) (*RNIBCell, RNIBIRNibError) { - return rnibreader.GetRNibReader().GetCell(invName, pci) + return rnibreader.GetRNibReader(r.db).GetCell(invName, pci) } func (r *RNIBClient) GetCellById(cellType RNIBCellType, cellId string) (*RNIBCell, RNIBIRNibError) { - return rnibreader.GetRNibReader().GetCellById(cellType, cellId) + return rnibreader.GetRNibReader(r.db).GetCellById(cellType, cellId) } func (r *RNIBClient) SaveNodeb(nbIdentity *RNIBNbIdentity, entity *RNIBNodebInfo) RNIBIRNibError { - return rnibwriter.GetRNibWriter().SaveNodeb(nbIdentity, entity) + return rnibwriter.GetRNibWriter(r.db).SaveNodeb(nbIdentity, entity) } -- 2.16.6