[VOL-5543]:OLT device handling fixes
Change-Id: I35518b948b84ab534816c2943700b9520c748afe
Signed-off-by: balaji.nagarajan <balaji.nagarajan@radisys.com>
diff --git a/internal/pkg/core/device_handler.go b/internal/pkg/core/device_handler.go
index e08a7b9..7f26406 100755
--- a/internal/pkg/core/device_handler.go
+++ b/internal/pkg/core/device_handler.go
@@ -2645,6 +2645,8 @@
err := dh.cleanupDeviceResources(ctx)
if err != nil {
logger.Errorw(ctx, "could-not-remove-device-from-KV-store", log.Fields{"device-id": dh.device.Id, "err": err})
+ dh.setDeviceDeletionInProgressFlag(false)
+ return status.Error(codes.Internal, olterrors.NewErrAdapter("could-not-remove-device-from-KV-store", log.Fields{"device-id": dh.device.Id}, err).Error())
} else {
logger.Debugw(ctx, "successfully-removed-device-from-Resource-manager-KV-store", log.Fields{"device-id": dh.device.Id})
}
@@ -2723,13 +2725,14 @@
errs = append(errs, err)
}
- logger.Debugw(ctx, "lockDevice for KVStore close client", log.Fields{"deviceID": dh.device.Id})
- dh.CloseKVClient(ctx)
-
- // Take one final sweep at cleaning up KV store for the OLT device
- // Clean everything at <base-path-prefix>/openolt/<device-id>
- if err := dh.kvStore.DeleteWithPrefix(ctx, ""); err != nil {
- errs = append(errs, err)
+ if len(errs) == 0 {
+ // Take one final sweep at cleaning up KV store for the OLT device
+ // Clean everything at <base-path-prefix>/openolt/<device-id>
+ if err := dh.kvStore.DeleteWithPrefix(ctx, ""); err != nil {
+ errs = append(errs, err)
+ }
+ logger.Debugw(ctx, "lockDevice for KVStore close client", log.Fields{"deviceID": dh.device.Id})
+ dh.CloseKVClient(ctx)
}
/*Delete ONU map for the device*/
@@ -3011,9 +3014,9 @@
dh.lockDevice.RUnlock()
} else {
logger.Warn(ctx, "Heartbeat signature changed, OLT is rebooted. Cleaningup resources.")
+ dh.updateStateRebooted(ctx)
dh.updateHeartbeatSignature(ctx, heartBeat.HeartbeatSignature)
dh.heartbeatSignature = heartBeat.HeartbeatSignature
- go dh.updateStateRebooted(ctx)
}
}
cancel()