[VOL-5549] Raise event and delete ONU device on reconcilation failure

Change-Id: I3a7f14084b52dd16c986493a0c59ac56f8ef6b65
Signed-off-by: bseeniva <balaji.seenivasan@radisys.com>
diff --git a/internal/pkg/core/device_handler.go b/internal/pkg/core/device_handler.go
index 89fd091..c1b62dc 100755
--- a/internal/pkg/core/device_handler.go
+++ b/internal/pkg/core/device_handler.go
@@ -4780,6 +4780,19 @@
 		logger.Errorw(ctx, "unable to update device state to core",
 			log.Fields{"device-id": dh.DeviceID, "Err": err})
 	}
+	context := make(map[string]string)
+	context["device-id"] = dh.DeviceID
+	context["onu-serial-number"] = dh.device.SerialNumber
+	context["parent-id"] = dh.parentID
+
+	deviceEvent := &voltha.DeviceEvent{
+		ResourceId:      dh.DeviceID,
+		DeviceEventName: cmn.OnuReconcileFailed,
+		Description:     cmn.OnuReconcileFailedAbortedDesc,
+		Context:         context,
+	}
+	logger.Debugw(ctx, "send device event", log.Fields{"deviceEvent": deviceEvent, "device-id": dh.DeviceID})
+	_ = dh.EventProxy.SendDeviceEvent(ctx, deviceEvent, voltha.EventCategory_EQUIPMENT, voltha.EventSubCategory_ONU, time.Now().Unix())
 }
 
 func (dh *deviceHandler) deviceRebootStateUpdate(ctx context.Context, techProfInstLoadFailed bool) {