X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=E2Manager%2Fmanagers%2Fran_list_manager.go;h=49d7689aa46b2de9a13b28cf9881d07dda7fedab;hb=5f208b14c6685e2f70897c16da848f8f0ef73a90;hp=a0c9b07bde941bea0861e8e95a9d622f28ac2ac4;hpb=fbd73df3e4bd575816d4c6444807879a8bf54c7f;p=ric-plt%2Fe2mgr.git diff --git a/E2Manager/managers/ran_list_manager.go b/E2Manager/managers/ran_list_manager.go index a0c9b07..49d7689 100755 --- a/E2Manager/managers/ran_list_manager.go +++ b/E2Manager/managers/ran_list_manager.go @@ -1,6 +1,7 @@ // // Copyright 2019 AT&T Intellectual Property // Copyright 2019 Nokia +// Copyright (c) 2020 Samsung Electronics Co., Ltd. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -25,6 +26,7 @@ import ( "e2mgr/services" "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities" "sync" + "time" ) type ranListManagerInstance struct { @@ -40,6 +42,9 @@ type RanListManager interface { UpdateNbIdentityConnectionStatus(nodeType entities.Node_Type, ranName string, connectionStatus entities.ConnectionStatus) error RemoveNbIdentity(nodeType entities.Node_Type, ranName string) error GetNbIdentityList() []*entities.NbIdentity + UpdateHealthcheckTimeStampReceived(oldRRanName string) (*entities.NbIdentity, *entities.NbIdentity) + UpdateHealthcheckTimeStampSent(oldRRanName string) (*entities.NbIdentity, *entities.NbIdentity) + UpdateNbIdentities(nodeType entities.Node_Type, oldNbIdentities []*entities.NbIdentity, newNbIdentities []*entities.NbIdentity) error } func NewRanListManager(logger *logger.Logger, rnibDataService services.RNibDataService) RanListManager { @@ -101,6 +106,8 @@ func (m *ranListManagerInstance) UpdateNbIdentityConnectionStatus(nodeType entit GlobalNbId: oldNbIdentity.GlobalNbId, InventoryName: ranName, ConnectionStatus: connectionStatus, + HealthCheckTimestampSent: oldNbIdentity.HealthCheckTimestampSent, + HealthCheckTimestampReceived: oldNbIdentity.HealthCheckTimestampReceived, } m.nbIdentityMap[ranName] = newNbIdentity @@ -147,3 +154,50 @@ func (m *ranListManagerInstance) GetNbIdentityList() []*entities.NbIdentity { return nbIds } + +func (m *ranListManagerInstance) UpdateHealthcheckTimeStampSent(oldRRanName string) (*entities.NbIdentity, *entities.NbIdentity){ + currentTimeStamp := time.Now().UnixNano() + oldNbIdentity := m.nbIdentityMap[oldRRanName] + + newNbIdentity := &entities.NbIdentity{ + GlobalNbId: oldNbIdentity.GlobalNbId, + InventoryName: oldNbIdentity.InventoryName, + ConnectionStatus: oldNbIdentity.ConnectionStatus, + HealthCheckTimestampSent: currentTimeStamp, + HealthCheckTimestampReceived: oldNbIdentity.HealthCheckTimestampReceived, + } + + m.nbIdentityMap[oldNbIdentity.InventoryName] = newNbIdentity + return oldNbIdentity, newNbIdentity +} + +func (m *ranListManagerInstance) UpdateHealthcheckTimeStampReceived(oldRRanName string) (*entities.NbIdentity, *entities.NbIdentity){ + currentTimeStamp := time.Now().UnixNano() + oldNbIdentity := m.nbIdentityMap[oldRRanName] + + newNbIdentity := &entities.NbIdentity{ + GlobalNbId: oldNbIdentity.GlobalNbId, + InventoryName: oldNbIdentity.InventoryName, + ConnectionStatus: oldNbIdentity.ConnectionStatus, + HealthCheckTimestampSent: oldNbIdentity.HealthCheckTimestampSent, + HealthCheckTimestampReceived: currentTimeStamp, + } + + m.nbIdentityMap[oldNbIdentity.InventoryName] = newNbIdentity + return oldNbIdentity, newNbIdentity +} + +func (m *ranListManagerInstance) UpdateNbIdentities(nodeType entities.Node_Type, oldNbIdentities []*entities.NbIdentity, newNbIdentities []*entities.NbIdentity) error { + m.mux.Lock() + defer m.mux.Unlock() + + err := m.rnibDataService.UpdateNbIdentities(nodeType, oldNbIdentities, newNbIdentities) + + if err != nil { + m.logger.Errorf("#ranListManagerInstance.UpdateNbIdentities not completed for %d nbIdentities of nodetype - %s", len(newNbIdentities), nodeType.String()) + } else{ + m.logger.Infof("#ranListManagerInstance.UpdateNbIdentities completed successfully for %d nbIdentities of nodetype - %s", len(newNbIdentities), nodeType.String()) + } + + return err +}