From 6264a8c490eefec872a8a327a504be0de65e7324 Mon Sep 17 00:00:00 2001 From: Mike Hansen Date: Mon, 19 Jul 2021 11:01:13 -0400 Subject: [PATCH] [WIFI-3165] Keep last stats received timestamp in gateway client session map Signed-off-by: Mike Hansen --- .../OpensyncExternalIntegrationCloud.java | 10 +-- .../integration/utils/MqttStatsPublisher.java | 10 ++- .../external/integration/OvsdbSession.java | 33 +++++++- .../src/main/docker/app/opensync/logback.xml | 4 - .../src/main/resources/logback.xml | 1 - .../opensync/mqtt/OpensyncMqttClient.java | 81 +++++++++---------- 6 files changed, 80 insertions(+), 59 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 b02ece2..cea45e3 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 @@ -210,10 +210,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra } long locationId = autoProvisionedLocationId; - if ((customer.getDetails() != null) && (customer.getDetails().getAutoProvisioning() != null) - && customer.getDetails().getAutoProvisioning().isEnabled()) { - locationId = customer.getDetails().getAutoProvisioning().getLocationId(); - } + locationId = customer.getDetails().getAutoProvisioning().getLocationId(); try { Location location = locationServiceInterface.get(locationId); @@ -221,7 +218,6 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra } catch (Exception e) { LOG.error("Cannot auto-provision equipment because customer location with id {} cannot be found", locationId); throw new IllegalStateException("Cannot auto-provision equipment because customer location cannot be found : " + locationId); - } ce.setSerial(connectNodeInfo.serialNumber); @@ -250,7 +246,6 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra } if (!radioType.equals(RadioType.UNSUPPORTED)) { advancedRadioConfiguration = RadioConfiguration.createWithDefaults(radioType); - advancedRadioMap.put(radioType, advancedRadioConfiguration); radioConfiguration = ElementRadioConfiguration.createWithDefaults(radioType); radioMap.put(radioType, radioConfiguration); @@ -386,7 +381,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra } } - + EquipmentRoutingRecord equipmentRoutingRecord = gatewayController.registerCustomerEquipment(ce.getName(), ce.getCustomerId(), ce.getId()); // Status and client cleanup, when AP reconnects or has been @@ -497,7 +492,6 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra private void updateApStatus(Equipment ce, ConnectNodeInfo connectNodeInfo) { try { - Status statusRecord = statusServiceInterface.getOrNull(ce.getCustomerId(), ce.getId(), StatusDataType.EQUIPMENT_ADMIN); if (statusRecord == null) { statusRecord = new Status(); diff --git a/opensync-ext-cloud/src/main/java/com/telecominfraproject/wlan/opensync/external/integration/utils/MqttStatsPublisher.java b/opensync-ext-cloud/src/main/java/com/telecominfraproject/wlan/opensync/external/integration/utils/MqttStatsPublisher.java index 6e41cd2..1bb0090 100644 --- a/opensync-ext-cloud/src/main/java/com/telecominfraproject/wlan/opensync/external/integration/utils/MqttStatsPublisher.java +++ b/opensync-ext-cloud/src/main/java/com/telecominfraproject/wlan/opensync/external/integration/utils/MqttStatsPublisher.java @@ -51,6 +51,7 @@ import com.telecominfraproject.wlan.equipment.EquipmentServiceInterface; import com.telecominfraproject.wlan.equipment.models.Equipment; import com.telecominfraproject.wlan.opensync.external.integration.OvsdbSession; import com.telecominfraproject.wlan.opensync.external.integration.OvsdbSessionMapInterface; +import com.telecominfraproject.wlan.opensync.external.integration.controller.OpensyncCloudGatewayController; import com.telecominfraproject.wlan.opensync.util.OvsdbToWlanCloudTypeMappingUtility; import com.telecominfraproject.wlan.profile.ProfileServiceInterface; import com.telecominfraproject.wlan.profile.models.Profile; @@ -138,7 +139,9 @@ public class MqttStatsPublisher implements StatsPublisherInterface { private RealtimeEventPublisher realtimeEventPublisher; @Autowired private AlarmServiceInterface alarmServiceInterface; - + @Autowired + private OpensyncCloudGatewayController gatewayController; + @Value("${tip.wlan.mqttStatsPublisher.temperatureThresholdInC:80}") private int temperatureThresholdInC; @@ -170,7 +173,9 @@ public class MqttStatsPublisher implements StatsPublisherInterface { long equipmentId = ce.getId(); long locationId = ce.getLocationId(); long profileId = ce.getProfileId(); - + + // update timestamp for active customer equipment + gatewayController.updateActiveCustomer(customerId); List metricRecordList = new ArrayList<>(); try { @@ -260,6 +265,7 @@ public class MqttStatsPublisher implements StatsPublisherInterface { @Override public void publishSystemEventFromTableStateMonitor(SystemEvent event) { LOG.info("Publishing SystemEvent received by TableStateMonitor {}", event); + gatewayController.updateActiveCustomer(event.getCustomerId()); cloudEventDispatcherInterface.publishEvent(event); } diff --git a/opensync-ext-interface/src/main/java/com/telecominfraproject/wlan/opensync/external/integration/OvsdbSession.java b/opensync-ext-interface/src/main/java/com/telecominfraproject/wlan/opensync/external/integration/OvsdbSession.java index cd0d516..a263ec7 100644 --- a/opensync-ext-interface/src/main/java/com/telecominfraproject/wlan/opensync/external/integration/OvsdbSession.java +++ b/opensync-ext-interface/src/main/java/com/telecominfraproject/wlan/opensync/external/integration/OvsdbSession.java @@ -1,5 +1,7 @@ package com.telecominfraproject.wlan.opensync.external.integration; +import java.util.Objects; + import com.vmware.ovsdb.service.OvsdbClient; public class OvsdbSession { @@ -7,7 +9,7 @@ public class OvsdbSession { private String apId; private long routingId; private long equipmentId; - private int customerId; + private long mostRecentStatsTimestamp; public OvsdbClient getOvsdbClient() { return ovsdbClient; @@ -33,5 +35,34 @@ public class OvsdbSession { public void setEquipmentId(long equipmentId) { this.equipmentId = equipmentId; } + public long getMostRecentStatsTimestamp() { + return mostRecentStatsTimestamp; + } + public void setMostRecentStatsTimestamp(long mostRecentStatsTimestamp) { + this.mostRecentStatsTimestamp = mostRecentStatsTimestamp; + } + @Override + public int hashCode() { + return Objects.hash(apId, equipmentId, mostRecentStatsTimestamp, ovsdbClient, routingId); + } + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + OvsdbSession other = (OvsdbSession) obj; + return Objects.equals(apId, other.apId) && equipmentId == other.equipmentId && mostRecentStatsTimestamp == other.mostRecentStatsTimestamp + && Objects.equals(ovsdbClient, other.ovsdbClient) && routingId == other.routingId; + } + + @Override + public String toString() { + return "OvsdbSession [ovsdbClient=" + ovsdbClient + ", apId=" + apId + ", routingId=" + routingId + ", equipmentId=" + equipmentId + + ", mostRecentStatsTimestamp=" + mostRecentStatsTimestamp + "]"; + } + } diff --git a/opensync-gateway-cloud-docker/src/main/docker/app/opensync/logback.xml b/opensync-gateway-cloud-docker/src/main/docker/app/opensync/logback.xml index 1d6cd3c..a2d333a 100644 --- a/opensync-gateway-cloud-docker/src/main/docker/app/opensync/logback.xml +++ b/opensync-gateway-cloud-docker/src/main/docker/app/opensync/logback.xml @@ -87,10 +87,6 @@ - - - - diff --git a/opensync-gateway-cloud-process/src/main/resources/logback.xml b/opensync-gateway-cloud-process/src/main/resources/logback.xml index 89c241e..30c956f 100644 --- a/opensync-gateway-cloud-process/src/main/resources/logback.xml +++ b/opensync-gateway-cloud-process/src/main/resources/logback.xml @@ -64,7 +64,6 @@ -