VOL-5437:Openolt adapter fix for disable pon ports

Change-Id: I566fda1b3b354157caa7414e967e214d0dc47ecb
Signed-off-by: balaji6299 <balaji.nagarajan@radisys.com>
diff --git a/VERSION b/VERSION
index b7213ae..b059772 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-4.5.10
+4.5.11
diff --git a/internal/pkg/core/device_handler.go b/internal/pkg/core/device_handler.go
index ca4e481..b12dca1 100755
--- a/internal/pkg/core/device_handler.go
+++ b/internal/pkg/core/device_handler.go
@@ -1017,13 +1017,23 @@
 		"ConnStatus": deviceStateFilter.ConnStatus,
 	})
 	// Synchronous call to update device state - this method is run in its own go routine
-	if err := dh.updateDeviceStateInCore(ctx, deviceStateFilter); err != nil {
+	if err = dh.updateDeviceStateInCore(ctx, deviceStateFilter); err != nil {
 		return olterrors.NewErrAdapter("device-state-update-failed", log.Fields{"device-id": dh.device.Id}, err)
 	}
 
 	// Clear olt communication failure event
 	dh.device.ConnectStatus = voltha.ConnectStatus_REACHABLE
 	dh.device.OperStatus = voltha.OperStatus_ACTIVE
+
+	ports, err := dh.listDevicePortsFromCore(ctx, dh.device.Id)
+	if err != nil {
+		return olterrors.NewErrAdapter("fetch-ports-failed", log.Fields{"device-id": dh.device.Id}, err)
+	}
+	dh.populateActivePorts(ctx, ports.Items)
+	if err = dh.disableAdminDownPorts(ctx, ports.Items); err != nil {
+		logger.Error(ctx, "port-status-update-failed", log.Fields{"error": err, "ports": ports})
+	}
+
 	raisedTs := time.Now().Unix()
 	go dh.eventMgr.oltCommunicationEvent(ctx, dh.device, raisedTs)
 
@@ -1204,16 +1214,6 @@
 		return nil
 	}
 
-	ports, err := dh.listDevicePortsFromCore(ctx, dh.device.Id)
-	if err != nil {
-		/*TODO: needs to handle error scenarios */
-		return olterrors.NewErrAdapter("fetch-ports-failed", log.Fields{"device-id": dh.device.Id}, err)
-	}
-	dh.populateActivePorts(ctx, ports.Items)
-	if err := dh.disableAdminDownPorts(ctx, ports.Items); err != nil {
-		return olterrors.NewErrAdapter("port-status-update-failed", log.Fields{"ports": ports}, err)
-	}
-
 	if err := dh.initializeDeviceHandlerModules(ctx); err != nil {
 		return olterrors.NewErrAdapter("device-handler-initialization-failed", log.Fields{"device-id": dh.device.Id}, err).LogAt(log.ErrorLevel)
 	}