[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 {