VOL-4140 Added new field into ONU_ACTIVATED_EVENT for TT workflow.

Change-Id: I34c79b64e8c997e33d983f98d6c58513c146a443
diff --git a/internal/pkg/onuadaptercore/device_handler.go b/internal/pkg/onuadaptercore/device_handler.go
index da6936f..4dbd44a 100644
--- a/internal/pkg/onuadaptercore/device_handler.go
+++ b/internal/pkg/onuadaptercore/device_handler.go
@@ -2501,8 +2501,23 @@
 	eventContext["olt-serial-number"] = oltSerialNumber
 	eventContext["device-id"] = aDeviceID
 	eventContext["registration-id"] = aDeviceID //py: string(device_id)??
-	logger.Debugw(ctx, "prepare ONU_ACTIVATED event",
-		log.Fields{"device-id": aDeviceID, "EventContext": eventContext})
+	eventContext["num-of-unis"] = strconv.Itoa(len(dh.uniEntityMap))
+	if deviceEntry := dh.getOnuDeviceEntry(ctx, false); deviceEntry != nil {
+		deviceEntry.mutexPersOnuConfig.RLock()
+		eventContext["equipment-id"] = deviceEntry.sOnuPersistentData.PersEquipmentID
+		deviceEntry.mutexPersOnuConfig.RUnlock()
+		eventContext["software-version"] = deviceEntry.getActiveImageVersion(ctx)
+		deviceEntry.mutexPersOnuConfig.RLock()
+		eventContext["vendor"] = deviceEntry.sOnuPersistentData.PersVendorID
+		deviceEntry.mutexPersOnuConfig.RUnlock()
+		eventContext["inactive-software-version"] = deviceEntry.getInactiveImageVersion(ctx)
+		logger.Debugw(ctx, "prepare ONU_ACTIVATED event",
+			log.Fields{"device-id": aDeviceID, "EventContext": eventContext})
+	} else {
+		logger.Errorw(ctx, "Failed to fetch device-entry. ONU_ACTIVATED event is not sent",
+			log.Fields{"device-id": aDeviceID})
+		return
+	}
 
 	/* Populating device event body */
 	de.Context = eventContext
diff --git a/internal/pkg/onuadaptercore/onu_device_entry.go b/internal/pkg/onuadaptercore/onu_device_entry.go
index d3e7238..0b2a218 100644
--- a/internal/pkg/onuadaptercore/onu_device_entry.go
+++ b/internal/pkg/onuadaptercore/onu_device_entry.go
@@ -892,6 +892,22 @@
 	logger.Debugf(ctx, "mibDataSync updated - mds: %d - device-id: %s", oo.sOnuPersistentData.PersMibDataSyncAdpt, oo.deviceID)
 }
 
+func (oo *OnuDeviceEntry) getActiveImageVersion(ctx context.Context) string {
+	if oo.onuSwImageIndications.activeEntityEntry.valid {
+		return oo.onuSwImageIndications.activeEntityEntry.version
+	}
+	logger.Debugw(ctx, "Active Image is not valid", log.Fields{"device-id": oo.deviceID})
+	return ""
+}
+
+func (oo *OnuDeviceEntry) getInactiveImageVersion(ctx context.Context) string {
+	if oo.onuSwImageIndications.inactiveEntityEntry.valid {
+		return oo.onuSwImageIndications.inactiveEntityEntry.version
+	}
+	logger.Debugw(ctx, "Inactive Image is not valid", log.Fields{"device-id": oo.deviceID})
+	return ""
+}
+
 func (oo *OnuDeviceEntry) buildMibTemplatePath() string {
 	oo.mutexPersOnuConfig.RLock()
 	defer oo.mutexPersOnuConfig.RUnlock()