From 0103d99a509871e3659505625887490a414ca9ce Mon Sep 17 00:00:00 2001 From: Mike Hansen Date: Thu, 16 Jul 2020 12:22:21 -0400 Subject: [PATCH] Do not remove ClientInfo when MQTT stats data indicates instance of client disconnect --- .../OpensyncExternalIntegrationCloud.java | 44 +++++++------------ 1 file changed, 15 insertions(+), 29 deletions(-) diff --git a/opensync-ext-cloud/src/main/java/com/telecominfraproject/wlan/opensync/external/integration/OpensyncExternalIntegrationCloud.java b/opensync-ext-cloud/src/main/java/com/telecominfraproject/wlan/opensync/external/integration/OpensyncExternalIntegrationCloud.java index 7419a3c..96bd68c 100644 --- a/opensync-ext-cloud/src/main/java/com/telecominfraproject/wlan/opensync/external/integration/OpensyncExternalIntegrationCloud.java +++ b/opensync-ext-cloud/src/main/java/com/telecominfraproject/wlan/opensync/external/integration/OpensyncExternalIntegrationCloud.java @@ -1309,29 +1309,22 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra com.telecominfraproject.wlan.client.models.Client clientInstance = clientServiceInterface .getOrNull(customerId, new MacAddress(client.getMacAddress())); + if (clientInstance == null) { + clientInstance = new com.telecominfraproject.wlan.client.models.Client(); - if (!client.getConnected()) { - if (clientInstance != null) { - clientServiceInterface.delete(customerId, clientInstance.getMacAddress()); - } - } else { - if (clientInstance == null) { - clientInstance = new com.telecominfraproject.wlan.client.models.Client(); - - clientInstance.setCustomerId(customerId); - clientInstance.setMacAddress(new MacAddress(client.getMacAddress())); - clientInstance.setDetails(new ClientInfoDetails()); - clientInstance = clientServiceInterface.create(clientInstance); - } - ClientInfoDetails clientDetails = (ClientInfoDetails) clientInstance.getDetails(); - - clientDetails.setAlias("alias " + clientInstance.getMacAddress().getAddressAsLong()); - clientDetails.setApFingerprint("fp " + clientInstance.getMacAddress().getAddressAsString()); - clientDetails.setHostName("hostName-" + clientInstance.getMacAddress().getAddressAsLong()); - clientDetails.setUserName("user-" + clientInstance.getMacAddress().getAddressAsLong()); - clientInstance.setDetails(clientDetails); - clientInstance = clientServiceInterface.update(clientInstance); + clientInstance.setCustomerId(customerId); + clientInstance.setMacAddress(new MacAddress(client.getMacAddress())); + clientInstance.setDetails(new ClientInfoDetails()); + clientInstance = clientServiceInterface.create(clientInstance); } + ClientInfoDetails clientDetails = (ClientInfoDetails) clientInstance.getDetails(); + + clientDetails.setAlias("alias " + clientInstance.getMacAddress().getAddressAsLong()); + clientDetails.setApFingerprint("fp " + clientInstance.getMacAddress().getAddressAsString()); + clientDetails.setHostName("hostName-" + clientInstance.getMacAddress().getAddressAsLong()); + clientDetails.setUserName("user-" + clientInstance.getMacAddress().getAddressAsLong()); + clientInstance.setDetails(clientDetails); + clientInstance = clientServiceInterface.update(clientInstance); ClientSession clientSession = clientServiceInterface.getSessionOrNull(customerId, equipmentId, new MacAddress(client.getMacAddress())); @@ -1344,7 +1337,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra LOG.debug("Client session {} deleted due to disconnect", clientSession); } } else { - ClientInfoDetails clientDetails = (ClientInfoDetails) clientInstance.getDetails(); + clientDetails = (ClientInfoDetails) clientInstance.getDetails(); if (clientSession == null) { LOG.debug("No session found for Client {}, creating new one.", client.getMacAddress()); @@ -1497,13 +1490,6 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra LOG.debug("Client Report Date is {}", new Date(clientReport.getTimestampMs())); int numConnectedClients = 0; for (Client client : clientReport.getClientListList()) { - if (!client.hasConnected() || !client.getConnected()) { - handleClientSessionUpdate(customerId, equipmentId, apId, locationId, clientReport.getChannel(), - clientReport.getBand(), clientReport.getTimestampMs(), client, report.getNodeID(), - ssidStatistics.getBssid(), ssidStatistics.getSsid()); - continue; - } - numConnectedClients += 1; if (client.hasSsid() && (client.getSsid() != null) && !client.getSsid().equals("")) {