[SEBA-568] Adding Serial number to authentication and DHCP events
Change-Id: I00b030687021948f5fc5d575b2f13adb5fe8b143
diff --git a/src/main/java/org/opencord/kafka/integrations/AaaKafkaIntegration.java b/src/main/java/org/opencord/kafka/integrations/AaaKafkaIntegration.java
index 6db44cb..a09cb41 100644
--- a/src/main/java/org/opencord/kafka/integrations/AaaKafkaIntegration.java
+++ b/src/main/java/org/opencord/kafka/integrations/AaaKafkaIntegration.java
@@ -24,6 +24,8 @@
import org.apache.felix.scr.annotations.Deactivate;
import org.apache.felix.scr.annotations.Reference;
import org.apache.felix.scr.annotations.ReferenceCardinality;
+import org.onosproject.net.AnnotationKeys;
+import org.onosproject.net.device.DeviceService;
import org.opencord.aaa.AuthenticationEvent;
import org.opencord.aaa.AuthenticationEventListener;
import org.opencord.aaa.AuthenticationService;
@@ -44,6 +46,9 @@
@Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
protected EventBusService eventBusService;
+ @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
+ protected DeviceService deviceService;
+
@Reference(cardinality = ReferenceCardinality.OPTIONAL_UNARY,
bind = "bindAuthenticationService",
unbind = "unbindAuthenticationService")
@@ -56,6 +61,7 @@
private static final String TIMESTAMP = "timestamp";
private static final String DEVICE_ID = "deviceId";
private static final String PORT_NUMBER = "portNumber";
+ private static final String SERIAL_NUMBER = "serialNumber";
private static final String AUTHENTICATION_STATE = "authenticationState";
protected void bindAuthenticationService(AuthenticationService authenticationService) {
@@ -95,11 +101,15 @@
}
private JsonNode serialize(AuthenticationEvent event) {
+
+ String sn = deviceService.getPort(event.subject()).annotations().value(AnnotationKeys.PORT_NAME);
+
ObjectMapper mapper = new ObjectMapper();
ObjectNode authEvent = mapper.createObjectNode();
authEvent.put(TIMESTAMP, Instant.now().toString());
authEvent.put(DEVICE_ID, event.subject().deviceId().toString());
authEvent.put(PORT_NUMBER, event.subject().port().toString());
+ authEvent.put(SERIAL_NUMBER, sn);
authEvent.put(AUTHENTICATION_STATE, event.type().toString());
return authEvent;
}