[VOL-4277] onu-adapter should change device's operational-state to FAILED if EnableDevice fails in adapter
Change-Id: I4795a662ccf3d01c3d29a846c984947dda0a7654
diff --git a/internal/pkg/onuadaptercore/device_handler.go b/internal/pkg/onuadaptercore/device_handler.go
index dcc7fa6..929d81d 100644
--- a/internal/pkg/onuadaptercore/device_handler.go
+++ b/internal/pkg/onuadaptercore/device_handler.go
@@ -2377,6 +2377,15 @@
}
}
+func (dh *deviceHandler) processUniEnableStateFailedEvent(ctx context.Context, devEvent OnuDeviceEvent) {
+ logger.Debugw(ctx, "DeviceStateUpdate upon re-enable failure. ", log.Fields{
+ "OperStatus": voltha.OperStatus_FAILED, "device-id": dh.deviceID})
+ if err := dh.coreProxy.DeviceStateUpdate(log.WithSpanFromContext(context.TODO(), ctx), dh.deviceID, voltha.ConnectStatus_REACHABLE,
+ voltha.OperStatus_FAILED); err != nil {
+ logger.Errorw(ctx, "error-updating-device-state", log.Fields{"device-id": dh.deviceID, "error": err})
+ }
+}
+
func (dh *deviceHandler) processOmciAniConfigDoneEvent(ctx context.Context, devEvent OnuDeviceEvent) {
if devEvent == OmciAniConfigDone {
logger.Debugw(ctx, "OmciAniConfigDone event received", log.Fields{"device-id": dh.deviceID})
@@ -2457,6 +2466,10 @@
{
dh.processUniEnableStateDoneEvent(ctx, devEvent)
}
+ case UniEnableStateFailed:
+ {
+ dh.processUniEnableStateFailedEvent(ctx, devEvent)
+ }
case UniDisableStateDone:
{
dh.processUniDisableStateDoneEvent(ctx, devEvent)