[VOL-5564]:check nni resource mgr is empty before clearing the resources
Change-Id: Iad917d12f82f7c706bd6b23105a76f469419c528
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 695e92e..58bf3bd 100755
--- a/internal/pkg/core/device_handler.go
+++ b/internal/pkg/core/device_handler.go
@@ -2722,6 +2722,10 @@
if dh.resourceMgr != nil && dh.totalPonPorts > 0 {
var ponPort uint32
for ponPort = 0; ponPort < dh.totalPonPorts; ponPort++ {
+ if dh.resourceMgr[ponPort] == nil {
+ logger.Warnw(ctx, "resource manager for ponPort is nil", log.Fields{"ponPort": ponPort})
+ continue
+ }
onuGemData := dh.resourceMgr[ponPort].GetOnuGemInfoList(ctx)
for i, onu := range onuGemData {
logger.Debugw(ctx, "onu-data", log.Fields{"onu": onu})
@@ -2742,10 +2746,12 @@
errs = append(errs, err)
}
}
- }
- // Clean up NNI manager's data
- if err := dh.resourceMgr[dh.totalPonPorts].DeleteAllFlowIDsForGemForIntf(ctx); err != nil {
- errs = append(errs, err)
+ // Clean up NNI manager's data
+ if err := dh.resourceMgr[dh.totalPonPorts].DeleteAllFlowIDsForGemForIntf(ctx); err != nil {
+ errs = append(errs, err)
+ }
+ } else {
+ logger.Errorw(ctx, "resource manager empty, ignoring resource cleanup", log.Fields{"device-id": dh.device.Id})
}
if len(errs) == 0 {