From ee49415b0a065afc2ec666ccd90c2d4824aa6fb6 Mon Sep 17 00:00:00 2001 From: Mike Hansen Date: Mon, 21 Jun 2021 13:54:16 -0400 Subject: [PATCH] WIFI-2052: Country Code displayed in UI doesn't match AP Signed-off-by: Mike Hansen --- .../OpensyncExternalIntegrationCloud.java | 8 ++++++-- .../OpensyncExternalIntegrationCloudTest.java | 20 ++++++++++++------- .../wlan/opensync/ovsdb/dao/OvsdbDaoBase.java | 4 +++- .../wlan/opensync/ovsdb/dao/OvsdbNode.java | 2 +- 4 files changed, 23 insertions(+), 11 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 11aa382..c869b14 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 @@ -550,8 +550,11 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra protocolStatusData.setBaseMacAddress(MacAddress.valueOf(connectNodeInfo.macAddress)); protocolStatusData.setCloudCfgDataVersion(42L); protocolStatusData.setReportedCfgDataVersion(42L); - protocolStatusData.setCountryCode("CA"); - protocolStatusData.setReportedCC(CountryCode.CA); + CountryCode countryCode = Location.getCountryCode(locationServiceInterface.get(ce.getLocationId())); + protocolStatusData.setCountryCode(countryCode.getName()); + if (connectNodeInfo.country != null) { + protocolStatusData.setReportedCC(CountryCode.getByName(connectNodeInfo.country)); + } protocolStatusData.setReportedHwVersion(connectNodeInfo.platformVersion); if (connectNodeInfo.versionMatrix.containsKey(OvsdbStringConstants.FW_IMAGE_ACTIVE_KEY)) { protocolStatusData.setReportedSwVersion(connectNodeInfo.versionMatrix.get(OvsdbStringConstants.FW_IMAGE_ACTIVE_KEY)); @@ -1309,6 +1312,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra LOG.debug("Protocol Status reportedCC {} radioStatus.getCountry {} radioStatus CountryCode fromName {}", protocolStatusData.getReportedCC(), radioState.getCountry(), CountryCode.getByName((radioState.getCountry()))); protocolStatusData.setReportedCC(CountryCode.getByName((radioState.getCountry()))); + protocolStatusData.setCountryCode(radioState.getCountry()); protocolStatus.setDetails(protocolStatusData); } else { diff --git a/opensync-ext-cloud/src/test/java/com/telecominfraproject/wlan/opensync/external/integration/OpensyncExternalIntegrationCloudTest.java b/opensync-ext-cloud/src/test/java/com/telecominfraproject/wlan/opensync/external/integration/OpensyncExternalIntegrationCloudTest.java index 69c7791..5633c33 100644 --- a/opensync-ext-cloud/src/test/java/com/telecominfraproject/wlan/opensync/external/integration/OpensyncExternalIntegrationCloudTest.java +++ b/opensync-ext-cloud/src/test/java/com/telecominfraproject/wlan/opensync/external/integration/OpensyncExternalIntegrationCloudTest.java @@ -170,10 +170,12 @@ public class OpensyncExternalIntegrationCloudTest { Location location = new Location(); location.setId(8L); location.setCustomerId(2); - location.setDetails(LocationDetails.createWithDefaults()); + LocationDetails details = LocationDetails.createWithDefaults(); + details.setCountryCode(CountryCode.CA); + location.setDetails(details); location.setName("Location-UT"); location.setLocationType(LocationType.BUILDING); - + Mockito.when(locationServiceInterface.get(8L)).thenReturn(location); Customer customer = new Customer(); customer.setId(2); CustomerDetails customerDetails = new CustomerDetails(); @@ -239,7 +241,7 @@ public class OpensyncExternalIntegrationCloudTest { Mockito.verify(firmwareServiceInterface).getDefaultCustomerTrackSetting(); - Mockito.verifyNoInteractions(locationServiceInterface); + Mockito.verify(locationServiceInterface).get(8L); } @@ -248,10 +250,11 @@ public class OpensyncExternalIntegrationCloudTest { Location location = new Location(); location.setId(8L); location.setCustomerId(2); - location.setDetails(LocationDetails.createWithDefaults()); + LocationDetails details = LocationDetails.createWithDefaults(); + details.setCountryCode(CountryCode.CA); + location.setDetails(details); location.setName("Location-UT"); location.setLocationType(LocationType.BUILDING); - Mockito.when(locationServiceInterface.get(8L)).thenReturn(location); Customer customer = new Customer(); @@ -339,7 +342,7 @@ public class OpensyncExternalIntegrationCloudTest { Mockito.verify(customerServiceInterface).getOrNull(ArgumentMatchers.anyInt()); Mockito.verify(equipmentServiceInterface).getByInventoryIdOrNull("Test_Client_21P10C68818122"); Mockito.verify(firmwareServiceInterface).getDefaultCustomerTrackSetting(); - Mockito.verify(locationServiceInterface).get(ArgumentMatchers.anyLong()); + Mockito.verify(locationServiceInterface, Mockito.times(2)).get(ArgumentMatchers.anyLong()); } @@ -361,9 +364,12 @@ public class OpensyncExternalIntegrationCloudTest { Location location = new Location(); location.setId(8L); location.setCustomerId(2); - location.setDetails(LocationDetails.createWithDefaults()); + LocationDetails details = LocationDetails.createWithDefaults(); + details.setCountryCode(CountryCode.CA); + location.setDetails(details); location.setName("Location-UT"); location.setLocationType(LocationType.BUILDING); + Mockito.when(locationServiceInterface.get(8L)).thenReturn(location); Equipment equipment = new Equipment(); equipment.setCustomerId(2); diff --git a/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbDaoBase.java b/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbDaoBase.java index 9293b6e..b4f3fb7 100644 --- a/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbDaoBase.java +++ b/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbDaoBase.java @@ -265,7 +265,7 @@ public class OvsdbDaoBase { } } - void fillInRadioInterfaceNames(OvsdbClient ovsdbClient, ConnectNodeInfo ret) { + void fillInRadioInterfaceNamesAndCountry(OvsdbClient ovsdbClient, ConnectNodeInfo ret) { try { List operations = new ArrayList<>(); List conditions = new ArrayList<>(); @@ -273,6 +273,7 @@ public class OvsdbDaoBase { columns.add("freq_band"); columns.add("if_name"); + columns.add("country"); operations.add(new Select(wifiRadioStateDbTable, conditions, columns)); CompletableFuture fResult = ovsdbClient.transact(ovsdbName, operations); @@ -292,6 +293,7 @@ public class OvsdbDaoBase { for (Row row : ((SelectResult) result[0]).getRows()) { ret.wifiRadioStates.put(getSingleValueFromSet(row, "freq_band"), getSingleValueFromSet(row, "if_name")); + ret.country = getSingleValueFromSet(row, "country"); } diff --git a/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbNode.java b/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbNode.java index 3d2dbfc..1772524 100644 --- a/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbNode.java +++ b/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbNode.java @@ -238,7 +238,7 @@ public class OvsdbNode extends OvsdbDaoBase { } fillInLanIpAddressAndMac(ovsdbClient, ret, defaultLanInterfaceType); - fillInRadioInterfaceNames(ovsdbClient, ret); + fillInRadioInterfaceNamesAndCountry(ovsdbClient, ret); } catch (OvsdbClientException | TimeoutException | ExecutionException | InterruptedException e) { throw new RuntimeException(e);