From 5614d87f792653983ef713cb2e60a3ba12917a4b Mon Sep 17 00:00:00 2001 From: Thomas Leung Date: Fri, 22 Oct 2021 23:53:50 +0000 Subject: [PATCH] Merged in NETEXP-3321 (pull request #24) [NETEXP-3321] Move back to NAT mode when EthernetPort Profile removed from AP Approved-by: rahul.sharma --- opensync-gateway/pom.xml | 31 ++++++- .../opensync/ovsdb/TipWlanOvsdbClient.java | 6 +- .../wlan/opensync/ovsdb/dao/OvsdbDao.java | 4 + .../ovsdb/dao/OvsdbNetworkConfig.java | 68 +++++++++++++-- .../opensync/ovsdb/dao/OvsdbNodeConfig.java | 1 - .../wlan/opensync/ovsdb/dao/OvsdbDaoTest.java | 8 +- .../ovsdb/dao/OvsdbNetworkConfigTest.java | 87 ++++++++++++++++++- .../opensync/ovsdb/dao/OvsdbNodeTest.java | 7 +- .../ovsdb/dao/OvsdbSsidConfigTest.java | 7 +- 9 files changed, 205 insertions(+), 14 deletions(-) diff --git a/opensync-gateway/pom.xml b/opensync-gateway/pom.xml index 97308f6..b4936ab 100644 --- a/opensync-gateway/pom.xml +++ b/opensync-gateway/pom.xml @@ -1,4 +1,6 @@ - + 4.0.0 com.telecominfraproject.wlan @@ -70,6 +72,33 @@ + + + status-service-local + com.netexperience + 2.3.0-SNAPSHOT + test + + + status-service + com.netexperience + 2.3.0-SNAPSHOT + test + + + status-datastore-inmemory + com.netexperience + 2.3.0-SNAPSHOT + test + + + cloud-event-dispatcher-empty + com.netexperience + 2.3.0-SNAPSHOT + test + + + diff --git a/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/TipWlanOvsdbClient.java b/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/TipWlanOvsdbClient.java index cff1d98..c13de04 100644 --- a/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/TipWlanOvsdbClient.java +++ b/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/TipWlanOvsdbClient.java @@ -239,18 +239,19 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface { String apId = alterClientCnIfRequired(clientCn, connectNodeInfo); LOG.debug("Client {} connect for AP {}", clientCn, apId); + + OpensyncAPConfig opensyncAPConfig = extIntegrationInterface.getApConfig(apId); ovsdbDao.removeAllPasspointConfigs(ovsdbClient); ovsdbDao.removeAllSsids(ovsdbClient); // always ovsdbDao.removeAllInetConfigs(ovsdbClient); + ovsdbDao.resetWiredPorts(ovsdbClient, opensyncAPConfig); ovsdbDao.removeWifiRrm(ovsdbClient); ovsdbDao.removeRadsecRadiusAndRealmConfigs(ovsdbClient); ovsdbDao.removeAllStatsConfigs(ovsdbClient); // always extIntegrationInterface.clearEquipmentStatus(apId); - OpensyncAPConfig opensyncAPConfig = extIntegrationInterface.getApConfig(apId); - if (opensyncAPConfig != null) { ovsdbDao.configureNode(ovsdbClient, opensyncAPConfig); ovsdbDao.configureWifiRrm(ovsdbClient, opensyncAPConfig); @@ -329,6 +330,7 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface { ovsdbDao.removeAllPasspointConfigs(ovsdbClient); ovsdbDao.removeAllSsids(ovsdbClient); // always ovsdbDao.removeAllInetConfigs(ovsdbClient); + ovsdbDao.resetWiredPorts(ovsdbClient, opensyncAPConfig); // need to run this first before remove Status ovsdbDao.removeWifiRrm(ovsdbClient); ovsdbDao.removeRadsecRadiusAndRealmConfigs(ovsdbClient); ovsdbDao.removeAllStatsConfigs(ovsdbClient); diff --git a/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbDao.java b/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbDao.java index d1ffaaa..b8a8fde 100644 --- a/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbDao.java +++ b/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbDao.java @@ -210,6 +210,10 @@ public class OvsdbDao extends OvsdbDaoBase { public void removeAllInetConfigs(OvsdbClient ovsdbClient) { ovsdbNetwork.removeAllInetConfigs(ovsdbClient); } + + public void resetWiredPorts(OvsdbClient ovsdbClient, OpensyncAPConfig opensyncApConfig) { + ovsdbNetwork.resetWiredPorts(ovsdbClient, opensyncApConfig); + } public void removeAllPasspointConfigs(OvsdbClient ovsdbClient) { ovsdbHotspot.removeAllPasspointConfigs(ovsdbClient); diff --git a/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbNetworkConfig.java b/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbNetworkConfig.java index 275226a..92fe937 100644 --- a/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbNetworkConfig.java +++ b/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbNetworkConfig.java @@ -27,6 +27,11 @@ import com.telecominfraproject.wlan.profile.models.Profile; import com.telecominfraproject.wlan.profile.network.models.ApNetworkConfiguration; import com.telecominfraproject.wlan.profile.network.models.GreTunnelConfiguration; import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration; +import com.telecominfraproject.wlan.status.StatusServiceInterface; +import com.telecominfraproject.wlan.status.equipment.report.models.WiredEthernetPortStatusData; +import com.telecominfraproject.wlan.status.equipment.report.models.WiredPortStatus; +import com.telecominfraproject.wlan.status.models.Status; +import com.telecominfraproject.wlan.status.models.StatusDataType; import com.vmware.ovsdb.exception.OvsdbClientException; import com.vmware.ovsdb.protocol.operation.Delete; import com.vmware.ovsdb.protocol.operation.Insert; @@ -48,6 +53,8 @@ public class OvsdbNetworkConfig extends OvsdbDaoBase { @Autowired private OvsdbGet ovsdbGet; + @Autowired + private StatusServiceInterface statusServiceInterface; private static final String VLAN_IF_TYPE = "vlan"; private static final String VLAN_TRUNK_IF_TYPE = "vlan_trunk"; @@ -173,8 +180,8 @@ public class OvsdbNetworkConfig extends OvsdbDaoBase { private void handleEthernetPortConfiguration(OvsdbClient ovsdbClient, Set desiredWiredPorts) { // lists are for more than one lan port moving to wan ("eth0 eth1 eth2") - List availableLanEthNames = new ArrayList<>(); - List availableWanEthNames = new ArrayList<>(); + Set availableLanEthNames = new HashSet<>(); + Set availableWanEthNames = new HashSet<>(); if (desiredWiredPorts == null) { LOG.info("Cannot handle the EthernetPort config for null desired Wired Ports. Exiting"); return; @@ -244,8 +251,8 @@ public class OvsdbNetworkConfig extends OvsdbDaoBase { return wanWiredPort; } - void changeLanToWan(OvsdbClient ovsdbClient, List lanPortsToUpdate, List wanPortsToUpdate) { - LOG.debug("Moving port {} to LAN and {} to WAN", lanPortsToUpdate, wanPortsToUpdate); + void changeLanToWan(OvsdbClient ovsdbClient, Set lanPortsToUpdate, Set wanPortsToUpdate) { + LOG.debug("Calling changeLanToWan: moving port {} to LAN and {} to WAN", lanPortsToUpdate, wanPortsToUpdate); List operations = new ArrayList<>(); // Step1: remove lan from eth_ports // /usr/opensync/bin/ovsh u Wifi_Inet_Config eth_ports:=" " -w if_name==lan @@ -333,7 +340,8 @@ public class OvsdbNetworkConfig extends OvsdbDaoBase { return desiredWiredPort.getAllowedVlanIds().stream().map(String::valueOf).collect(Collectors.joining(SEPARATOR)); } - void changeWanToLan(OvsdbClient ovsdbClient, List lanPortsToUpdate, List wanPortsToUpdate) { + void changeWanToLan(OvsdbClient ovsdbClient, Set lanPortsToUpdate, Set wanPortsToUpdate) { + LOG.debug("Calling changeWanToLan: Moving port {} to LAN and {} to WAN", lanPortsToUpdate, wanPortsToUpdate); // Step1: set the correct port to lan // /usr/opensync/bin/ovsh u Wifi_Inet_Config eth_ports:="eth0" -w if_name==lan List operations = new ArrayList<>(); @@ -561,4 +569,54 @@ public class OvsdbNetworkConfig extends OvsdbDaoBase { throw new RuntimeException(e); } } + + // Reset all LAN ports from WAN back to LAN (NAT mode) + void resetWiredPorts(OvsdbClient ovsdbClient, OpensyncAPConfig opensyncApConfig) { + LOG.debug("Calling resetWiredPorts"); + // e.g. eth1 + Map> interfacePortStatusMap = getInterfacePortStatus( + opensyncApConfig.getCustomerEquipment().getCustomerId(), + opensyncApConfig.getCustomerEquipment().getId()); + if (interfacePortStatusMap == null) { + LOG.info("No InterfacePort(EthernetPort) Status. Exiting"); + return; + } + List wanPortStatusList = interfacePortStatusMap.get(WAN_IF_NAME); + if (wanPortStatusList == null) { + LOG.info("No wan interface status available. Exiting"); + return; + } + WiredPortStatus originalWanPortStatus = wanPortStatusList.stream() + .filter(wan -> WAN_IF_NAME.equals(wan.getOriginalIfName())).findFirst().orElse(null); + if (originalWanPortStatus == null) { + LOG.info("No original wan port available. Exiting"); + return; + } + String wanEthName = originalWanPortStatus.getName(); + Set lanEthNames = new HashSet<>(); + for (WiredPortStatus wanPortStatus : wanPortStatusList) { + if (wanPortStatus.getOriginalIfName().contains(LAN_IF_NAME)) { + lanEthNames.add(wanPortStatus.getName()); + } + } + if (!lanEthNames.isEmpty()) { + changeWanToLan(ovsdbClient, lanEthNames, Set.of(wanEthName)); + } + } + + private Map> getInterfacePortStatus(int customerId, long equipmentId) { + Map> interfacePortStatus = null; + // Getting the status from the current AP + Status existingPortStatus = statusServiceInterface.getOrNull(customerId, equipmentId, + StatusDataType.WIRED_ETHERNET_PORT); + if (existingPortStatus != null && existingPortStatus.getDetails() instanceof WiredEthernetPortStatusData) { + interfacePortStatus = ((WiredEthernetPortStatusData) existingPortStatus.getDetails()) + .getInterfacePortStatusMap(); + } + + if (interfacePortStatus == null || interfacePortStatus.isEmpty()) { + LOG.info("No ethernetPortStatus found for customer {}, equipment {}", customerId, equipmentId); + } + return interfacePortStatus; + } } diff --git a/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbNodeConfig.java b/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbNodeConfig.java index 6fed695..09aa2d7 100644 --- a/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbNodeConfig.java +++ b/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbNodeConfig.java @@ -13,7 +13,6 @@ import java.util.concurrent.TimeoutException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import com.telecominfraproject.wlan.core.model.equipment.LedStatus; import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPConfig; import com.telecominfraproject.wlan.profile.network.models.ApNetworkConfiguration; import com.vmware.ovsdb.exception.OvsdbClientException; diff --git a/opensync-gateway/src/test/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbDaoTest.java b/opensync-gateway/src/test/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbDaoTest.java index 7abe859..4978518 100644 --- a/opensync-gateway/src/test/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbDaoTest.java +++ b/opensync-gateway/src/test/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbDaoTest.java @@ -34,6 +34,7 @@ import org.springframework.context.annotation.Import; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; +import com.telecominfraproject.wlan.cloudeventdispatcher.CloudEventDispatcherEmpty; import com.telecominfraproject.wlan.core.model.equipment.RadioType; import com.telecominfraproject.wlan.location.models.Location; import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPConfig; @@ -43,6 +44,9 @@ import com.telecominfraproject.wlan.profile.models.ProfileType; import com.telecominfraproject.wlan.profile.network.models.ApNetworkConfiguration; import com.telecominfraproject.wlan.profile.network.models.GreTunnelConfiguration; import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration; +import com.telecominfraproject.wlan.status.StatusServiceLocal; +import com.telecominfraproject.wlan.status.controller.StatusController; +import com.telecominfraproject.wlan.status.datastore.inmemory.StatusDatastoreInMemory; import com.vmware.ovsdb.exception.OvsdbClientException; import com.vmware.ovsdb.protocol.operation.notation.Row; import com.vmware.ovsdb.protocol.operation.notation.Uuid; @@ -63,8 +67,8 @@ import com.vmware.ovsdb.service.OvsdbClient; @Import( value = {OvsdbDao.class, OvsdbDaoTest.Config.class, OvsdbNode.class, OvsdbRadioConfig.class, OvsdbHotspotConfig.class, OvsdbCommandConfig.class, OvsdbMonitor.class, OvsdbFirmwareConfig.class, OvsdbStatsConfig.class, OvsdbSsidConfig.class, OvsdbRrmConfig.class, OvsdbNetworkConfig.class, - OvsdbNodeConfig.class, OvsdbRadiusProxyConfig.class - + OvsdbNodeConfig.class, OvsdbRadiusProxyConfig.class, StatusServiceLocal.class, StatusController.class, + CloudEventDispatcherEmpty.class, StatusDatastoreInMemory.class }) public class OvsdbDaoTest { diff --git a/opensync-gateway/src/test/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbNetworkConfigTest.java b/opensync-gateway/src/test/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbNetworkConfigTest.java index 44166a9..7c96867 100644 --- a/opensync-gateway/src/test/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbNetworkConfigTest.java +++ b/opensync-gateway/src/test/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbNetworkConfigTest.java @@ -6,6 +6,11 @@ import com.telecominfraproject.wlan.profile.ethernetport.models.WiredEthernetPor import com.telecominfraproject.wlan.profile.ethernetport.models.WiredPort; import com.telecominfraproject.wlan.profile.models.Profile; import com.telecominfraproject.wlan.profile.models.ProfileType; +import com.telecominfraproject.wlan.status.StatusServiceInterface; +import com.telecominfraproject.wlan.status.equipment.report.models.WiredEthernetPortStatusData; +import com.telecominfraproject.wlan.status.equipment.report.models.WiredPortStatus; +import com.telecominfraproject.wlan.status.models.Status; +import com.telecominfraproject.wlan.status.models.StatusDataType; import com.vmware.ovsdb.exception.OvsdbClientException; import com.vmware.ovsdb.protocol.operation.result.OperationResult; import com.vmware.ovsdb.protocol.operation.result.UpdateResult; @@ -27,6 +32,7 @@ import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; import java.util.List; +import java.util.Map; import java.util.Set; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; @@ -53,6 +59,9 @@ public class OvsdbNetworkConfigTest { @Autowired OvsdbNetworkConfig ovsdbNetworkConfig; + @MockBean(answer = Answers.RETURNS_MOCKS) + StatusServiceInterface statusServiceInterface; + @MockBean(answer = Answers.RETURNS_MOCKS) OvsdbGet ovsdbGet; @@ -60,10 +69,12 @@ public class OvsdbNetworkConfigTest { CompletableFuture futureResult; private MockitoSession mockito; + + private static final String LAN_IF_NAME = "lan"; @Before public void setUp() throws Exception { - mockito = Mockito.mockitoSession().initMocks(this).strictness(Strictness.STRICT_STUBS).startMocking(); + mockito = Mockito.mockitoSession().initMocks(this).strictness(Strictness.WARN).startMocking(); Mockito.when(ovsdbClient.transact(Mockito.eq(OvsdbDao.ovsdbName), Mockito.anyList())).thenReturn(futureResult); } @@ -112,6 +123,41 @@ public class OvsdbNetworkConfigTest { Mockito.verify(ovsdbClient, times(1)).transact(Mockito.eq(OvsdbDao.ovsdbName), Mockito.anyList()); } + // Case when ETH port is in BRIDGE + Trunk and Profile is removed so we convert + // it in NAT (LAN) + @Test + public void testResetWiredPorts_BridgeTrunkToNAT() + throws ExecutionException, InterruptedException, TimeoutException, OvsdbClientException { + // at the beginning LAN's currentIfName is wan + Mockito.when(statusServiceInterface.getOrNull(Mockito.anyInt(), Mockito.anyLong(), + Mockito.any(StatusDataType.class))).thenReturn(createWiredEthernetPortStatus("wan")); + OperationResult[] updateResult = new OperationResult[] { new UpdateResult(1) }; + Mockito.when(futureResult.get(ovsdbNetworkConfig.ovsdbTimeoutSec, TimeUnit.SECONDS)).thenReturn(updateResult); + + ovsdbNetworkConfig.resetWiredPorts(ovsdbClient, createOpensyncApConfig(true, "bridge")); + // transact() execute 1 time as we move LAN from wan interface back to lan + // interface + // (vlan interface will be removed in inetC table directly) + Mockito.verify(ovsdbClient, times(1)).transact(Mockito.eq(OvsdbDao.ovsdbName), Mockito.anyList()); + } + + // Case when ETH port is in NAT + Access and Profile is removed we don't do + // anything + @Test + public void testResetWiredPorts_NATToNAT() + throws ExecutionException, InterruptedException, TimeoutException, OvsdbClientException { + // at the beginning LAN's currentIfName is wan + Mockito.when(statusServiceInterface.getOrNull(Mockito.anyInt(), Mockito.anyLong(), + Mockito.any(StatusDataType.class))).thenReturn(createWiredEthernetPortStatus("lan")); + OperationResult[] updateResult = new OperationResult[] { new UpdateResult(1) }; + Mockito.when(futureResult.get(ovsdbNetworkConfig.ovsdbTimeoutSec, TimeUnit.SECONDS)).thenReturn(updateResult); + + ovsdbNetworkConfig.resetWiredPorts(ovsdbClient, createOpensyncApConfig(false, "NAT")); + // Note: Strictness set to WARN in setup() rather than STRICT_STUB as we are + // adding unnecessary stubbings above to test if any transact() is called. + Mockito.verify(ovsdbClient, times(0)).transact(Mockito.eq(OvsdbDao.ovsdbName), Mockito.anyList()); + } + private OpensyncAPConfig createOpensyncApConfig(boolean isTrunkEnabled, String ifType) { OpensyncAPConfig opensyncApConfig = new OpensyncAPConfig(); @@ -157,4 +203,43 @@ public class OvsdbNetworkConfigTest { return wiredPort; } + + private Status createWiredEthernetPortStatus(String lanPortIfName) { + WiredEthernetPortStatusData statusDetails = new WiredEthernetPortStatusData(); + if (lanPortIfName.equals(LAN_IF_NAME)) { + WiredPortStatus wiredPortStatusLan = createWiredPortStatus(lanPortIfName, "NAT", false, 0, null, "eth0", "lan", "up"); + WiredPortStatus wiredPortStatusWan = createWiredPortStatus("wan", "bridge", true, 0, null, "eth1", "wan", "up"); + statusDetails.setInterfacePortStatusMap(Map.of("lan", List.of(wiredPortStatusLan), "wan", List.of(wiredPortStatusWan))); + } else { + WiredPortStatus wiredPortStatusLan = createWiredPortStatus(lanPortIfName, "bridge", true, 10, List.of(100,200), "eth0", "lan", "up"); + WiredPortStatus wiredPortStatusWan = createWiredPortStatus("wan", "bridge", true, 0, null, "eth1", "wan", "up"); + statusDetails.setInterfacePortStatusMap(Map.of("lan", List.of(), "wan", List.of(wiredPortStatusLan, wiredPortStatusWan))); + } + + + Status status = new Status(); + status.setCustomerId(1); + status.setEquipmentId(1L); + status.setStatusDataType(StatusDataType.WIRED_ETHERNET_PORT); + status.setDetails(statusDetails); + + return status; + } + + private WiredPortStatus createWiredPortStatus(String ifName, String ifType, boolean isTrunkEnabled, int vlanId, + List allowedVlans, String name, String originalIfName, String operationalState) { + WiredPortStatus status = new WiredPortStatus(); + status.setIfType(ifType); + status.setCurrentIfName(ifName); + status.setOriginalIfName(originalIfName); + status.setName(name); + status.setAllowedVlanIds(allowedVlans); + status.setDuplex("full"); + status.setSpeed(1000); + status.setTrunkEnabled(isTrunkEnabled); + status.setOperationalState(operationalState); + status.setVlanId(vlanId); + + return status; + } } \ No newline at end of file diff --git a/opensync-gateway/src/test/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbNodeTest.java b/opensync-gateway/src/test/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbNodeTest.java index c918c2c..e1f1b85 100644 --- a/opensync-gateway/src/test/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbNodeTest.java +++ b/opensync-gateway/src/test/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbNodeTest.java @@ -23,8 +23,12 @@ import org.springframework.context.annotation.Import; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; +import com.telecominfraproject.wlan.cloudeventdispatcher.CloudEventDispatcherEmpty; import com.telecominfraproject.wlan.opensync.external.integration.models.ConnectNodeInfo; import com.telecominfraproject.wlan.opensync.util.OvsdbToWlanCloudTypeMappingUtility; +import com.telecominfraproject.wlan.status.StatusServiceLocal; +import com.telecominfraproject.wlan.status.controller.StatusController; +import com.telecominfraproject.wlan.status.datastore.inmemory.StatusDatastoreInMemory; import com.vmware.ovsdb.protocol.operation.result.OperationResult; import com.vmware.ovsdb.service.OvsdbClient; @@ -36,7 +40,8 @@ import com.vmware.ovsdb.service.OvsdbClient; @Import(value = { OvsdbDao.class, OvsdbNodeTest.Config.class, OvsdbNode.class, OvsdbRadioConfig.class, OvsdbHotspotConfig.class, OvsdbCommandConfig.class, OvsdbMonitor.class, OvsdbFirmwareConfig.class, OvsdbStatsConfig.class, OvsdbSsidConfig.class, OvsdbRrmConfig.class, OvsdbNetworkConfig.class, - OvsdbNodeConfig.class,OvsdbRadiusProxyConfig.class + OvsdbNodeConfig.class,OvsdbRadiusProxyConfig.class, StatusServiceLocal.class, StatusController.class, + CloudEventDispatcherEmpty.class, StatusDatastoreInMemory.class }) public class OvsdbNodeTest { diff --git a/opensync-gateway/src/test/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbSsidConfigTest.java b/opensync-gateway/src/test/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbSsidConfigTest.java index 91cc469..a73c5d3 100644 --- a/opensync-gateway/src/test/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbSsidConfigTest.java +++ b/opensync-gateway/src/test/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbSsidConfigTest.java @@ -24,12 +24,16 @@ import org.springframework.context.annotation.Import; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; +import com.telecominfraproject.wlan.cloudeventdispatcher.CloudEventDispatcherEmpty; import com.telecominfraproject.wlan.location.models.Location; import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPConfig; import com.telecominfraproject.wlan.profile.models.Profile; import com.telecominfraproject.wlan.profile.models.ProfileType; import com.telecominfraproject.wlan.profile.radius.models.RadiusProfile; import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration; +import com.telecominfraproject.wlan.status.StatusServiceLocal; +import com.telecominfraproject.wlan.status.controller.StatusController; +import com.telecominfraproject.wlan.status.datastore.inmemory.StatusDatastoreInMemory; import com.vmware.ovsdb.protocol.operation.result.OperationResult; import com.vmware.ovsdb.service.OvsdbClient; @@ -41,7 +45,8 @@ import com.vmware.ovsdb.service.OvsdbClient; @Import(value = { OvsdbDao.class, OvsdbSsidConfigTest.Config.class, OvsdbNode.class, OvsdbRadioConfig.class, OvsdbHotspotConfig.class, OvsdbCommandConfig.class, OvsdbMonitor.class, OvsdbFirmwareConfig.class, OvsdbStatsConfig.class, OvsdbSsidConfig.class, OvsdbRrmConfig.class, OvsdbNetworkConfig.class, - OvsdbNodeConfig.class,OvsdbRadiusProxyConfig.class + OvsdbNodeConfig.class, OvsdbRadiusProxyConfig.class, StatusServiceLocal.class, StatusController.class, + CloudEventDispatcherEmpty.class, StatusDatastoreInMemory.class }) public class OvsdbSsidConfigTest {