VOL-4465 raise ONU/OLT deleted events
Change-Id: I8f8aea3dcf97996816f8a856b05e751f7c391ee4
diff --git a/rw_core/core/device/agent.go b/rw_core/core/device/agent.go
index d819fae..1adf88c 100755
--- a/rw_core/core/device/agent.go
+++ b/rw_core/core/device/agent.go
@@ -209,6 +209,8 @@
if err := agent.dbProxy.Remove(ctx, agent.deviceID); err != nil {
return err
}
+ //send the device event to the message bus
+ _ = agent.deviceMgr.Agent.SendDeviceDeletedEvent(ctx, agent.device, time.Now().Unix())
close(agent.exitChannel)
diff --git a/rw_core/core/device/event/event.go b/rw_core/core/device/event/event.go
index ab80736..5d8ccda 100644
--- a/rw_core/core/device/event/event.go
+++ b/rw_core/core/device/event/event.go
@@ -321,3 +321,27 @@
logger.Debugw(ctx, "device-state-change-sent", log.Fields{"event": *de})
return nil
}
+
+// SendDeviceDeletedEvent sends Device deleted Event to message bus
+func (q *Agent) SendDeviceDeletedEvent(ctx context.Context, device *voltha.Device, raisedTs int64) error {
+
+ var onuId uint32
+ var ponId uint32
+
+ subCategory := voltha.EventSubCategory_OLT
+ if !device.Root {
+ onuId = device.ProxyAddress.OnuId
+ ponId = device.ProxyAddress.ChannelId
+ subCategory = voltha.EventSubCategory_ONU
+ }
+ de := ev.CreateDeviceDeletedEvent(device.SerialNumber, device.Id, device.ParentId,
+ onuId, ponId, device.Root)
+
+ if err := q.eventProxy.SendDeviceEvent(ctx, de, voltha.EventCategory_EQUIPMENT,
+ subCategory, raisedTs); err != nil {
+ logger.Errorw(ctx, "error-sending-device-deleted-event", log.Fields{"id": device.Id, "err": err})
+ return err
+ }
+ logger.Debugw(ctx, "device-deleted-event-sent", log.Fields{"event": *de})
+ return nil
+}