X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=E2Manager%2Fservices%2Frnib_data_service.go;h=dbc9e291fc1d72ae049c625d604b7ea193903314;hb=a07b8597afc9d063a7f37a376a5bcf29ba29b557;hp=1274c533e93530a5de61ab16649c559cb249fc28;hpb=372a275602ae05da22130a4601709291c7fbbaa6;p=ric-plt%2Fe2mgr.git diff --git a/E2Manager/services/rnib_data_service.go b/E2Manager/services/rnib_data_service.go index 1274c53..dbc9e29 100644 --- a/E2Manager/services/rnib_data_service.go +++ b/E2Manager/services/rnib_data_service.go @@ -17,7 +17,6 @@ // This source code is part of the near-RT RIC (RAN Intelligent Controller) // platform project (RICP). - package services import ( @@ -47,26 +46,54 @@ type RNibDataService interface { GetE2TInstancesNoLogs(addresses []string) ([]*entities.E2TInstance, error) SaveE2TInstanceNoLogs(e2tInstance *entities.E2TInstance) error GetE2TAddressesNoLogs() ([]string, error) + RemoveE2TInstance(e2tAddress string) error + UpdateGnbCells(nodebInfo *entities.NodebInfo, servedNrCells []*entities.ServedNRCell) error + RemoveServedNrCells(inventoryName string, servedNrCells []*entities.ServedNRCell) error + GetGeneralConfiguration() (*entities.GeneralConfiguration, error) + UpdateNodebInfoOnConnectionStatusInversion(nodebInfo *entities.NodebInfo, event string) error + SaveGeneralConfiguration(config *entities.GeneralConfiguration) error } type rNibDataService struct { - logger *logger.Logger - rnibReader reader.RNibReader - rnibWriter rNibWriter.RNibWriter - maxAttempts int - retryInterval time.Duration + logger *logger.Logger + rnibReader reader.RNibReader + rnibWriter rNibWriter.RNibWriter + maxAttempts int + retryInterval time.Duration + stateChangeMessageChannel string } func NewRnibDataService(logger *logger.Logger, config *configuration.Configuration, rnibReader reader.RNibReader, rnibWriter rNibWriter.RNibWriter) *rNibDataService { return &rNibDataService{ - logger: logger, - rnibReader: rnibReader, - rnibWriter: rnibWriter, - maxAttempts: config.MaxRnibConnectionAttempts, - retryInterval: time.Duration(config.RnibRetryIntervalMs) * time.Millisecond, + logger: logger, + rnibReader: rnibReader, + rnibWriter: rnibWriter, + maxAttempts: config.MaxRnibConnectionAttempts, + retryInterval: time.Duration(config.RnibRetryIntervalMs) * time.Millisecond, + stateChangeMessageChannel: config.StateChangeMessageChannel, } } +func (w *rNibDataService) RemoveServedNrCells(inventoryName string, servedNrCells []*entities.ServedNRCell) error { + err := w.retry("RemoveServedNrCells", func() (err error) { + err = w.rnibWriter.RemoveServedNrCells(inventoryName, servedNrCells) + return + }) + + return err +} + +func (w *rNibDataService) UpdateGnbCells(nodebInfo *entities.NodebInfo, servedNrCells []*entities.ServedNRCell) error { + w.logger.Infof("#RnibDataService.UpdateGnbCells - nodebInfo: %s, servedNrCells: %s", nodebInfo, servedNrCells) + + err := w.retry("UpdateGnbCells", func() (err error) { + err = w.rnibWriter.UpdateGnbCells(nodebInfo, servedNrCells) + return + }) + + return err +} + func (w *rNibDataService) UpdateNodebInfo(nodebInfo *entities.NodebInfo) error { w.logger.Infof("#RnibDataService.UpdateNodebInfo - nodebInfo: %s", nodebInfo) @@ -101,7 +128,6 @@ func (w *rNibDataService) SaveRanLoadInformation(inventoryName string, ranLoadIn } func (w *rNibDataService) GetNodeb(ranName string) (*entities.NodebInfo, error) { - w.logger.Infof("#RnibDataService.GetNodeb - RAN name: %s", ranName) var nodeb *entities.NodebInfo = nil @@ -110,12 +136,14 @@ func (w *rNibDataService) GetNodeb(ranName string) (*entities.NodebInfo, error) return }) + if err == nil { + w.logger.Infof("#RnibDataService.GetNodeb - RAN name: %s, connection status: %s, associated E2T: %s", nodeb.RanName, nodeb.ConnectionStatus, nodeb.AssociatedE2TInstanceAddress) + } + return nodeb, err } func (w *rNibDataService) GetListNodebIds() ([]*entities.NbIdentity, error) { - w.logger.Infof("#RnibDataService.GetListNodebIds") - var nodeIds []*entities.NbIdentity = nil err := w.retry("GetListNodebIds", func() (err error) { @@ -123,6 +151,10 @@ func (w *rNibDataService) GetListNodebIds() ([]*entities.NbIdentity, error) { return }) + if err == nil { + w.logger.Infof("#RnibDataService.GetListNodebIds - RANs count: %d", len(nodeIds)) + } + return nodeIds, err } @@ -205,7 +237,7 @@ func (w *rNibDataService) GetE2TAddressesNoLogs() ([]string, error) { } func (w *rNibDataService) SaveE2TInstance(e2tInstance *entities.E2TInstance) error { - w.logger.Infof("#RnibDataService.SaveE2TInstance - E2T instance address: %s, state: %s, associated RANs count: %d, keep Alive ts: %d", e2tInstance.Address, e2tInstance.State, len(e2tInstance.AssociatedRanList), e2tInstance.KeepAliveTimestamp) + w.logger.Infof("#RnibDataService.SaveE2TInstance - E2T instance address: %s, podName: %s, state: %s, associated RANs count: %d, keep Alive ts: %d", e2tInstance.Address, e2tInstance.PodName, e2tInstance.State, len(e2tInstance.AssociatedRanList), e2tInstance.KeepAliveTimestamp) return w.SaveE2TInstanceNoLogs(e2tInstance) } @@ -231,6 +263,43 @@ func (w *rNibDataService) SaveE2TAddresses(addresses []string) error { return err } +func (w *rNibDataService) RemoveE2TInstance(e2tAddress string) error { + w.logger.Infof("#RnibDataService.RemoveE2TInstance - e2tAddress: %s", e2tAddress) + + err := w.retry("RemoveE2TInstance", func() (err error) { + err = w.rnibWriter.RemoveE2TInstance(e2tAddress) + return + }) + + return err +} + +func (w *rNibDataService) GetGeneralConfiguration() (*entities.GeneralConfiguration, error) { + var generalConfiguration *entities.GeneralConfiguration = nil + + err := w.retry("GetGeneralConfiguration", func() (err error) { + generalConfiguration, err = w.rnibReader.GetGeneralConfiguration() + return + }) + + if err == nil { + w.logger.Infof("#RnibDataService.GetGeneralConfiguration - enableRic: %t", generalConfiguration.EnableRic) + } + + return generalConfiguration, err +} + +func (w *rNibDataService) SaveGeneralConfiguration(config *entities.GeneralConfiguration) error { + w.logger.Infof("#RnibDataService.SaveGeneralConfiguration - configuration: %+v", *config) + + err := w.retry("SaveGeneralConfiguration", func() (err error) { + err = w.rnibWriter.SaveGeneralConfiguration(config) + return + }) + + return err +} + func (w *rNibDataService) PingRnib() bool { err := w.retry("GetListNodebIds", func() (err error) { _, err = w.rnibReader.GetListNodebIds() @@ -240,6 +309,17 @@ func (w *rNibDataService) PingRnib() bool { return !isRnibConnectionError(err) } +func (w *rNibDataService) UpdateNodebInfoOnConnectionStatusInversion(nodebInfo *entities.NodebInfo, event string) error { + w.logger.Infof("#RnibDataService.UpdateNodebInfoOnConnectionStatusInversion - nodebInfo: %s", nodebInfo) + + err := w.retry("UpdateNodebInfoOnConnectionStatusInversion", func() (err error) { + err = w.rnibWriter.UpdateNodebInfoOnConnectionStatusInversion(nodebInfo, w.stateChangeMessageChannel, event) + return + }) + + return err +} + func (w *rNibDataService) retry(rnibFunc string, f func() error) (err error) { attempts := w.maxAttempts