mirror of
https://github.com/Telecominfraproject/wlan-cloud-opensync-controller.git
synced 2025-11-20 11:54:58 +00:00
WIFI-456: Cloud SDK BackEnd : Bonjour Gateway support
Add Bonjour Profile support to OpensyncApConfig Add static files for static and static-docker versions. Refactor of OpensyncExternalIntegrationCloud. Separate concerns, move MQTT message processing and stats events to new class. JUnit tests updated based on refactor
This commit is contained in:
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -4,8 +4,6 @@ import static org.junit.Assert.assertNotNull;
|
|||||||
import static org.junit.Assert.assertNull;
|
import static org.junit.Assert.assertNull;
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
||||||
import java.math.BigInteger;
|
|
||||||
import java.net.InetAddress;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -18,6 +16,7 @@ import org.junit.Ignore;
|
|||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.mockito.Answers;
|
import org.mockito.Answers;
|
||||||
|
import org.mockito.ArgumentMatchers;
|
||||||
import org.mockito.Mockito;
|
import org.mockito.Mockito;
|
||||||
import org.mockito.MockitoSession;
|
import org.mockito.MockitoSession;
|
||||||
import org.mockito.quality.Strictness;
|
import org.mockito.quality.Strictness;
|
||||||
@@ -70,8 +69,6 @@ import com.telecominfraproject.wlan.profile.models.Profile;
|
|||||||
import com.telecominfraproject.wlan.profile.network.models.ApNetworkConfiguration;
|
import com.telecominfraproject.wlan.profile.network.models.ApNetworkConfiguration;
|
||||||
import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration;
|
import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration;
|
||||||
import com.telecominfraproject.wlan.routing.RoutingServiceInterface;
|
import com.telecominfraproject.wlan.routing.RoutingServiceInterface;
|
||||||
import com.telecominfraproject.wlan.servicemetric.apnode.models.ApNodeMetrics;
|
|
||||||
import com.telecominfraproject.wlan.servicemetric.apnode.models.StateUpDownError;
|
|
||||||
import com.telecominfraproject.wlan.status.StatusServiceInterface;
|
import com.telecominfraproject.wlan.status.StatusServiceInterface;
|
||||||
import com.telecominfraproject.wlan.status.equipment.models.EquipmentProtocolStatusData;
|
import com.telecominfraproject.wlan.status.equipment.models.EquipmentProtocolStatusData;
|
||||||
import com.telecominfraproject.wlan.status.equipment.models.EquipmentUpgradeStatusData;
|
import com.telecominfraproject.wlan.status.equipment.models.EquipmentUpgradeStatusData;
|
||||||
@@ -85,15 +82,10 @@ import com.vmware.ovsdb.protocol.operation.notation.Uuid;
|
|||||||
import sts.OpensyncStats.AssocType;
|
import sts.OpensyncStats.AssocType;
|
||||||
import sts.OpensyncStats.Client;
|
import sts.OpensyncStats.Client;
|
||||||
import sts.OpensyncStats.ClientReport;
|
import sts.OpensyncStats.ClientReport;
|
||||||
import sts.OpensyncStats.DNSProbeMetric;
|
|
||||||
import sts.OpensyncStats.EventReport;
|
import sts.OpensyncStats.EventReport;
|
||||||
import sts.OpensyncStats.EventType;
|
import sts.OpensyncStats.EventType;
|
||||||
import sts.OpensyncStats.NetworkProbe;
|
|
||||||
import sts.OpensyncStats.RADIUSMetrics;
|
|
||||||
import sts.OpensyncStats.RadioBandType;
|
import sts.OpensyncStats.RadioBandType;
|
||||||
import sts.OpensyncStats.Report;
|
import sts.OpensyncStats.Report;
|
||||||
import sts.OpensyncStats.StateUpDown;
|
|
||||||
import sts.OpensyncStats.VLANMetrics;
|
|
||||||
|
|
||||||
@RunWith(SpringRunner.class)
|
@RunWith(SpringRunner.class)
|
||||||
@ActiveProfiles(profiles = { "integration_test", })
|
@ActiveProfiles(profiles = { "integration_test", })
|
||||||
@@ -128,14 +120,18 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
FirmwareServiceInterface firmwareServiceInterface;
|
FirmwareServiceInterface firmwareServiceInterface;
|
||||||
@MockBean(answer = Answers.RETURNS_MOCKS)
|
@MockBean(answer = Answers.RETURNS_MOCKS)
|
||||||
OpensyncCloudGatewayController gatewayController;
|
OpensyncCloudGatewayController gatewayController;
|
||||||
|
@MockBean
|
||||||
|
OpensyncExternalIntegrationMqttMessageProcessor opensyncExternalIntegrationMqttProcessor;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
OpensyncExternalIntegrationCloud opensyncExternalIntegrationCloud;
|
OpensyncExternalIntegrationCloud opensyncExternalIntegrationCloud;
|
||||||
|
|
||||||
|
|
||||||
MockitoSession mockito;
|
MockitoSession mockito;
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
static class Config {
|
static class Config {
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public OpensyncExternalIntegrationCloud opensyncExternalIntegrationCloud() {
|
public OpensyncExternalIntegrationCloud opensyncExternalIntegrationCloud() {
|
||||||
return new OpensyncExternalIntegrationCloud();
|
return new OpensyncExternalIntegrationCloud();
|
||||||
@@ -167,7 +163,8 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
Equipment equipment = new Equipment();
|
Equipment equipment = new Equipment();
|
||||||
equipment.setDetails(ApElementConfiguration.createWithDefaults());
|
equipment.setDetails(ApElementConfiguration.createWithDefaults());
|
||||||
|
|
||||||
Mockito.when(equipmentServiceInterface.getByInventoryIdOrNull(Mockito.eq("Test_Client_21P10C68818122")))
|
Mockito.when(
|
||||||
|
equipmentServiceInterface.getByInventoryIdOrNull(ArgumentMatchers.eq("Test_Client_21P10C68818122")))
|
||||||
.thenReturn(equipment);
|
.thenReturn(equipment);
|
||||||
assertNotNull(opensyncExternalIntegrationCloud.getCustomerEquipment("Test_Client_21P10C68818122"));
|
assertNotNull(opensyncExternalIntegrationCloud.getCustomerEquipment("Test_Client_21P10C68818122"));
|
||||||
assertNull(opensyncExternalIntegrationCloud.getCustomerEquipment("Test_Client_21P10C68818133"));
|
assertNull(opensyncExternalIntegrationCloud.getCustomerEquipment("Test_Client_21P10C68818133"));
|
||||||
@@ -193,7 +190,7 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
|
|
||||||
customer.setDetails(customerDetails);
|
customer.setDetails(customerDetails);
|
||||||
|
|
||||||
Mockito.when(customerServiceInterface.getOrNull(Mockito.anyInt())).thenReturn(customer);
|
Mockito.when(customerServiceInterface.getOrNull(ArgumentMatchers.anyInt())).thenReturn(customer);
|
||||||
|
|
||||||
Profile apProfile = new Profile();
|
Profile apProfile = new Profile();
|
||||||
apProfile.setDetails(ApNetworkConfiguration.createWithDefaults());
|
apProfile.setDetails(ApNetworkConfiguration.createWithDefaults());
|
||||||
@@ -202,14 +199,16 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
ssidProfile.setDetails(SsidConfiguration.createWithDefaults());
|
ssidProfile.setDetails(SsidConfiguration.createWithDefaults());
|
||||||
|
|
||||||
apProfile.setChildProfileIds(ImmutableSet.of(ssidProfile.getId()));
|
apProfile.setChildProfileIds(ImmutableSet.of(ssidProfile.getId()));
|
||||||
Mockito.when(profileServiceInterface.create(Mockito.any(Profile.class))).thenAnswer(i -> i.getArguments()[0]);
|
Mockito.when(profileServiceInterface.create(ArgumentMatchers.any(Profile.class)))
|
||||||
|
.thenAnswer(i -> i.getArguments()[0]);
|
||||||
// .thenReturn(ssidProfile);
|
// .thenReturn(ssidProfile);
|
||||||
Mockito.when(profileServiceInterface.update(Mockito.any(Profile.class))).thenAnswer(i -> i.getArguments()[0]);
|
Mockito.when(profileServiceInterface.update(ArgumentMatchers.any(Profile.class)))
|
||||||
|
.thenAnswer(i -> i.getArguments()[0]);
|
||||||
|
|
||||||
Status fwStatus = new Status();
|
Status fwStatus = new Status();
|
||||||
fwStatus.setDetails(new EquipmentUpgradeStatusData());
|
fwStatus.setDetails(new EquipmentUpgradeStatusData());
|
||||||
Mockito.when(statusServiceInterface.getOrNull(Mockito.anyInt(), Mockito.anyLong(),
|
Mockito.when(statusServiceInterface.getOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.anyLong(),
|
||||||
Mockito.eq(StatusDataType.FIRMWARE))).thenReturn(fwStatus);
|
ArgumentMatchers.eq(StatusDataType.FIRMWARE))).thenReturn(fwStatus);
|
||||||
|
|
||||||
Mockito.when(firmwareServiceInterface.getDefaultCustomerTrackSetting())
|
Mockito.when(firmwareServiceInterface.getDefaultCustomerTrackSetting())
|
||||||
.thenReturn(new CustomerFirmwareTrackSettings());
|
.thenReturn(new CustomerFirmwareTrackSettings());
|
||||||
@@ -217,7 +216,7 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
fwTrackRecord.setSettings(new CustomerFirmwareTrackSettings());
|
fwTrackRecord.setSettings(new CustomerFirmwareTrackSettings());
|
||||||
fwTrackRecord.setTrackRecordId(3);
|
fwTrackRecord.setTrackRecordId(3);
|
||||||
fwTrackRecord.setCustomerId(2);
|
fwTrackRecord.setCustomerId(2);
|
||||||
Mockito.when(firmwareServiceInterface.getCustomerFirmwareTrackRecord(Mockito.anyInt()))
|
Mockito.when(firmwareServiceInterface.getCustomerFirmwareTrackRecord(ArgumentMatchers.anyInt()))
|
||||||
.thenReturn(fwTrackRecord);
|
.thenReturn(fwTrackRecord);
|
||||||
|
|
||||||
Equipment equipment = new Equipment();
|
Equipment equipment = new Equipment();
|
||||||
@@ -230,12 +229,13 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
equipment.setDetails(ApElementConfiguration.createWithDefaults());
|
equipment.setDetails(ApElementConfiguration.createWithDefaults());
|
||||||
|
|
||||||
Mockito.when(equipmentServiceInterface.get(1L)).thenReturn(equipment);
|
Mockito.when(equipmentServiceInterface.get(1L)).thenReturn(equipment);
|
||||||
Mockito.when(equipmentServiceInterface.getByInventoryIdOrNull(Mockito.eq("Test_Client_21P10C68818122")))
|
Mockito.when(
|
||||||
|
equipmentServiceInterface.getByInventoryIdOrNull(ArgumentMatchers.eq("Test_Client_21P10C68818122")))
|
||||||
.thenReturn(equipment);
|
.thenReturn(equipment);
|
||||||
|
|
||||||
Mockito.when(equipmentServiceInterface.create(Mockito.any(Equipment.class)))
|
Mockito.when(equipmentServiceInterface.create(ArgumentMatchers.any(Equipment.class)))
|
||||||
.thenAnswer(i -> i.getArguments()[0]);
|
.thenAnswer(i -> i.getArguments()[0]);
|
||||||
Mockito.when(equipmentServiceInterface.update(Mockito.any(Equipment.class)))
|
Mockito.when(equipmentServiceInterface.update(ArgumentMatchers.any(Equipment.class)))
|
||||||
.thenAnswer(i -> i.getArguments()[0]);
|
.thenAnswer(i -> i.getArguments()[0]);
|
||||||
|
|
||||||
OvsdbSession session = Mockito.mock(OvsdbSession.class);
|
OvsdbSession session = Mockito.mock(OvsdbSession.class);
|
||||||
@@ -270,7 +270,7 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
|
|
||||||
customer.setDetails(customerDetails);
|
customer.setDetails(customerDetails);
|
||||||
|
|
||||||
Mockito.when(customerServiceInterface.getOrNull(Mockito.anyInt())).thenReturn(customer);
|
Mockito.when(customerServiceInterface.getOrNull(ArgumentMatchers.anyInt())).thenReturn(customer);
|
||||||
|
|
||||||
Profile apProfile = new Profile();
|
Profile apProfile = new Profile();
|
||||||
apProfile.setDetails(ApNetworkConfiguration.createWithDefaults());
|
apProfile.setDetails(ApNetworkConfiguration.createWithDefaults());
|
||||||
@@ -280,9 +280,9 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
|
|
||||||
apProfile.setChildProfileIds(ImmutableSet.of(ssidProfile.getId()));
|
apProfile.setChildProfileIds(ImmutableSet.of(ssidProfile.getId()));
|
||||||
|
|
||||||
Mockito.when(profileServiceInterface.create(Mockito.any(Profile.class))).thenReturn(apProfile)
|
Mockito.when(profileServiceInterface.create(ArgumentMatchers.any(Profile.class))).thenReturn(apProfile)
|
||||||
.thenReturn(ssidProfile);
|
.thenReturn(ssidProfile);
|
||||||
Mockito.when(profileServiceInterface.update(Mockito.any(Profile.class))).thenReturn(apProfile);
|
Mockito.when(profileServiceInterface.update(ArgumentMatchers.any(Profile.class))).thenReturn(apProfile);
|
||||||
|
|
||||||
Equipment equipment = new Equipment();
|
Equipment equipment = new Equipment();
|
||||||
equipment.setCustomerId(2);
|
equipment.setCustomerId(2);
|
||||||
@@ -295,17 +295,18 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
|
|
||||||
Mockito.when(equipmentServiceInterface.get(1L)).thenReturn(equipment);
|
Mockito.when(equipmentServiceInterface.get(1L)).thenReturn(equipment);
|
||||||
|
|
||||||
Mockito.when(equipmentServiceInterface.create(Mockito.any(Equipment.class)))
|
Mockito.when(equipmentServiceInterface.create(ArgumentMatchers.any(Equipment.class)))
|
||||||
.thenAnswer(i -> i.getArguments()[0]);
|
.thenAnswer(i -> i.getArguments()[0]);
|
||||||
Mockito.when(equipmentServiceInterface.update(Mockito.any(Equipment.class)))
|
Mockito.when(equipmentServiceInterface.update(ArgumentMatchers.any(Equipment.class)))
|
||||||
.thenAnswer(i -> i.getArguments()[0]);
|
.thenAnswer(i -> i.getArguments()[0]);
|
||||||
Mockito.when(equipmentServiceInterface.getByInventoryIdOrNull(Mockito.eq("Test_Client_21P10C68818122")))
|
Mockito.when(
|
||||||
|
equipmentServiceInterface.getByInventoryIdOrNull(ArgumentMatchers.eq("Test_Client_21P10C68818122")))
|
||||||
.thenReturn(null);
|
.thenReturn(null);
|
||||||
|
|
||||||
Status fwStatus = new Status();
|
Status fwStatus = new Status();
|
||||||
fwStatus.setDetails(new EquipmentUpgradeStatusData());
|
fwStatus.setDetails(new EquipmentUpgradeStatusData());
|
||||||
Mockito.when(statusServiceInterface.getOrNull(Mockito.anyInt(), Mockito.anyLong(),
|
Mockito.when(statusServiceInterface.getOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.anyLong(),
|
||||||
Mockito.eq(StatusDataType.FIRMWARE))).thenReturn(fwStatus);
|
ArgumentMatchers.eq(StatusDataType.FIRMWARE))).thenReturn(fwStatus);
|
||||||
|
|
||||||
Mockito.when(firmwareServiceInterface.getDefaultCustomerTrackSetting())
|
Mockito.when(firmwareServiceInterface.getDefaultCustomerTrackSetting())
|
||||||
.thenReturn(new CustomerFirmwareTrackSettings());
|
.thenReturn(new CustomerFirmwareTrackSettings());
|
||||||
@@ -313,7 +314,7 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
fwTrackRecord.setSettings(new CustomerFirmwareTrackSettings());
|
fwTrackRecord.setSettings(new CustomerFirmwareTrackSettings());
|
||||||
fwTrackRecord.setTrackRecordId(3);
|
fwTrackRecord.setTrackRecordId(3);
|
||||||
fwTrackRecord.setCustomerId(2);
|
fwTrackRecord.setCustomerId(2);
|
||||||
Mockito.when(firmwareServiceInterface.getCustomerFirmwareTrackRecord(Mockito.anyInt()))
|
Mockito.when(firmwareServiceInterface.getCustomerFirmwareTrackRecord(ArgumentMatchers.anyInt()))
|
||||||
.thenReturn(fwTrackRecord);
|
.thenReturn(fwTrackRecord);
|
||||||
|
|
||||||
OvsdbSession session = Mockito.mock(OvsdbSession.class);
|
OvsdbSession session = Mockito.mock(OvsdbSession.class);
|
||||||
@@ -323,10 +324,10 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
// Mockito.when(locationServiceInterface.get(Mockito.anyLong())).thenReturn(value);
|
// Mockito.when(locationServiceInterface.get(Mockito.anyLong())).thenReturn(value);
|
||||||
opensyncExternalIntegrationCloud.apConnected("Test_Client_21P10C68818122", createConnectNodeInfo());
|
opensyncExternalIntegrationCloud.apConnected("Test_Client_21P10C68818122", createConnectNodeInfo());
|
||||||
|
|
||||||
Mockito.verify(customerServiceInterface).getOrNull(Mockito.anyInt());
|
Mockito.verify(customerServiceInterface).getOrNull(ArgumentMatchers.anyInt());
|
||||||
Mockito.verify(equipmentServiceInterface).getByInventoryIdOrNull("Test_Client_21P10C68818122");
|
Mockito.verify(equipmentServiceInterface).getByInventoryIdOrNull("Test_Client_21P10C68818122");
|
||||||
Mockito.verify(firmwareServiceInterface).getDefaultCustomerTrackSetting();
|
Mockito.verify(firmwareServiceInterface).getDefaultCustomerTrackSetting();
|
||||||
Mockito.verify(locationServiceInterface).get(Mockito.anyLong());
|
Mockito.verify(locationServiceInterface).get(ArgumentMatchers.anyLong());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -339,9 +340,11 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
ssidProfile.setDetails(SsidConfiguration.createWithDefaults());
|
ssidProfile.setDetails(SsidConfiguration.createWithDefaults());
|
||||||
|
|
||||||
apProfile.setChildProfileIds(ImmutableSet.of(ssidProfile.getId()));
|
apProfile.setChildProfileIds(ImmutableSet.of(ssidProfile.getId()));
|
||||||
Mockito.when(profileServiceInterface.create(Mockito.any(Profile.class))).thenAnswer(i -> i.getArguments()[0]);
|
Mockito.when(profileServiceInterface.create(ArgumentMatchers.any(Profile.class)))
|
||||||
|
.thenAnswer(i -> i.getArguments()[0]);
|
||||||
// .thenReturn(ssidProfile);
|
// .thenReturn(ssidProfile);
|
||||||
Mockito.when(profileServiceInterface.update(Mockito.any(Profile.class))).thenAnswer(i -> i.getArguments()[0]);
|
Mockito.when(profileServiceInterface.update(ArgumentMatchers.any(Profile.class)))
|
||||||
|
.thenAnswer(i -> i.getArguments()[0]);
|
||||||
|
|
||||||
Location location = new Location();
|
Location location = new Location();
|
||||||
location.setId(8L);
|
location.setId(8L);
|
||||||
@@ -360,8 +363,8 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
equipment.setDetails(ApElementConfiguration.createWithDefaults());
|
equipment.setDetails(ApElementConfiguration.createWithDefaults());
|
||||||
Status fwStatus = new Status();
|
Status fwStatus = new Status();
|
||||||
fwStatus.setDetails(new EquipmentUpgradeStatusData());
|
fwStatus.setDetails(new EquipmentUpgradeStatusData());
|
||||||
Mockito.when(statusServiceInterface.getOrNull(Mockito.anyInt(), Mockito.anyLong(),
|
Mockito.when(statusServiceInterface.getOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.anyLong(),
|
||||||
Mockito.eq(StatusDataType.FIRMWARE))).thenReturn(fwStatus);
|
ArgumentMatchers.eq(StatusDataType.FIRMWARE))).thenReturn(fwStatus);
|
||||||
|
|
||||||
Mockito.when(firmwareServiceInterface.getDefaultCustomerTrackSetting())
|
Mockito.when(firmwareServiceInterface.getDefaultCustomerTrackSetting())
|
||||||
.thenReturn(new CustomerFirmwareTrackSettings());
|
.thenReturn(new CustomerFirmwareTrackSettings());
|
||||||
@@ -369,15 +372,16 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
fwTrackRecord.setSettings(new CustomerFirmwareTrackSettings());
|
fwTrackRecord.setSettings(new CustomerFirmwareTrackSettings());
|
||||||
fwTrackRecord.setTrackRecordId(3);
|
fwTrackRecord.setTrackRecordId(3);
|
||||||
fwTrackRecord.setCustomerId(2);
|
fwTrackRecord.setCustomerId(2);
|
||||||
Mockito.when(firmwareServiceInterface.getCustomerFirmwareTrackRecord(Mockito.anyInt()))
|
Mockito.when(firmwareServiceInterface.getCustomerFirmwareTrackRecord(ArgumentMatchers.anyInt()))
|
||||||
.thenReturn(fwTrackRecord);
|
.thenReturn(fwTrackRecord);
|
||||||
Mockito.when(equipmentServiceInterface.get(1L)).thenReturn(equipment);
|
Mockito.when(equipmentServiceInterface.get(1L)).thenReturn(equipment);
|
||||||
|
|
||||||
Mockito.when(equipmentServiceInterface.create(Mockito.any(Equipment.class)))
|
Mockito.when(equipmentServiceInterface.create(ArgumentMatchers.any(Equipment.class)))
|
||||||
.thenAnswer(i -> i.getArguments()[0]);
|
.thenAnswer(i -> i.getArguments()[0]);
|
||||||
Mockito.when(equipmentServiceInterface.update(Mockito.any(Equipment.class)))
|
Mockito.when(equipmentServiceInterface.update(ArgumentMatchers.any(Equipment.class)))
|
||||||
.thenAnswer(i -> i.getArguments()[0]);
|
.thenAnswer(i -> i.getArguments()[0]);
|
||||||
Mockito.when(equipmentServiceInterface.getByInventoryIdOrNull(Mockito.eq("Test_Client_21P10C68818122")))
|
Mockito.when(
|
||||||
|
equipmentServiceInterface.getByInventoryIdOrNull(ArgumentMatchers.eq("Test_Client_21P10C68818122")))
|
||||||
.thenReturn(equipment);
|
.thenReturn(equipment);
|
||||||
|
|
||||||
Customer customer = new Customer();
|
Customer customer = new Customer();
|
||||||
@@ -388,7 +392,7 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
customerDetails.setAutoProvisioning(autoprovSettings);
|
customerDetails.setAutoProvisioning(autoprovSettings);
|
||||||
customer.setDetails(customerDetails);
|
customer.setDetails(customerDetails);
|
||||||
|
|
||||||
Mockito.when(customerServiceInterface.getOrNull(Mockito.anyInt())).thenReturn(customer);
|
Mockito.when(customerServiceInterface.getOrNull(ArgumentMatchers.anyInt())).thenReturn(customer);
|
||||||
|
|
||||||
opensyncExternalIntegrationCloud.apConnected("Test_Client_21P10C68818122", createConnectNodeInfo());
|
opensyncExternalIntegrationCloud.apConnected("Test_Client_21P10C68818122", createConnectNodeInfo());
|
||||||
|
|
||||||
@@ -410,12 +414,12 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
customerDetails.setAutoProvisioning(autoprovSettings);
|
customerDetails.setAutoProvisioning(autoprovSettings);
|
||||||
customer.setDetails(customerDetails);
|
customer.setDetails(customerDetails);
|
||||||
|
|
||||||
Mockito.when(customerServiceInterface.getOrNull(Mockito.anyInt())).thenReturn(customer);
|
Mockito.when(customerServiceInterface.getOrNull(ArgumentMatchers.anyInt())).thenReturn(customer);
|
||||||
|
|
||||||
Equipment equipment = new Equipment();
|
Equipment equipment = new Equipment();
|
||||||
equipment.setDetails(ApElementConfiguration.createWithDefaults());
|
equipment.setDetails(ApElementConfiguration.createWithDefaults());
|
||||||
|
|
||||||
Mockito.when(equipmentServiceInterface.getByInventoryIdOrNull(Mockito.any())).thenReturn(equipment);
|
Mockito.when(equipmentServiceInterface.getByInventoryIdOrNull(ArgumentMatchers.any())).thenReturn(equipment);
|
||||||
|
|
||||||
Profile apProfile = new Profile();
|
Profile apProfile = new Profile();
|
||||||
apProfile.setDetails(ApNetworkConfiguration.createWithDefaults());
|
apProfile.setDetails(ApNetworkConfiguration.createWithDefaults());
|
||||||
@@ -424,7 +428,8 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
ssidProfile.setDetails(SsidConfiguration.createWithDefaults());
|
ssidProfile.setDetails(SsidConfiguration.createWithDefaults());
|
||||||
|
|
||||||
List<Profile> profileWithChildren = ImmutableList.of(apProfile, ssidProfile);
|
List<Profile> profileWithChildren = ImmutableList.of(apProfile, ssidProfile);
|
||||||
Mockito.when(profileServiceInterface.getProfileWithChildren(Mockito.anyLong())).thenReturn(profileWithChildren);
|
Mockito.when(profileServiceInterface.getProfileWithChildren(ArgumentMatchers.anyLong()))
|
||||||
|
.thenReturn(profileWithChildren);
|
||||||
|
|
||||||
assertNotNull(opensyncExternalIntegrationCloud.getApConfig("Test_Client_21P10C68818122"));
|
assertNotNull(opensyncExternalIntegrationCloud.getApConfig("Test_Client_21P10C68818122"));
|
||||||
|
|
||||||
@@ -441,7 +446,7 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
customerDetails.setAutoProvisioning(autoprovSettings);
|
customerDetails.setAutoProvisioning(autoprovSettings);
|
||||||
customer.setDetails(customerDetails);
|
customer.setDetails(customerDetails);
|
||||||
|
|
||||||
Mockito.when(customerServiceInterface.getOrNull(Mockito.anyInt())).thenReturn(customer);
|
Mockito.when(customerServiceInterface.getOrNull(ArgumentMatchers.anyInt())).thenReturn(customer);
|
||||||
|
|
||||||
assertNull(opensyncExternalIntegrationCloud.getApConfig("Test_Client_21P10C68818122"));
|
assertNull(opensyncExternalIntegrationCloud.getApConfig("Test_Client_21P10C68818122"));
|
||||||
|
|
||||||
@@ -452,31 +457,8 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
|
|
||||||
String topic = "/ap/Test_Client_21P10C68818122/opensync";
|
String topic = "/ap/Test_Client_21P10C68818122/opensync";
|
||||||
|
|
||||||
assertEquals("Test_Client_21P10C68818122", OpensyncExternalIntegrationCloud.extractApIdFromTopic(topic));
|
assertEquals("Test_Client_21P10C68818122",
|
||||||
|
OpensyncExternalIntegrationMqttMessageProcessor.extractApIdFromTopic(topic));
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testExtractCustomerIdFromTopic() {
|
|
||||||
String topic = "/ap/Test_Client_21P10C68818122/opensync";
|
|
||||||
OvsdbSession session = Mockito.mock(OvsdbSession.class);
|
|
||||||
Mockito.when(session.getCustomerId()).thenReturn(2);
|
|
||||||
|
|
||||||
Mockito.when(ovsdbSessionMapInterface.getSession("Test_Client_21P10C68818122")).thenReturn(session);
|
|
||||||
|
|
||||||
assertEquals(2, opensyncExternalIntegrationCloud.extractCustomerIdFromTopic(topic));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testExtractEquipmentIdFromTopic() {
|
|
||||||
|
|
||||||
String topic = "/ap/Test_Client_21P10C68818122/opensync";
|
|
||||||
OvsdbSession session = Mockito.mock(OvsdbSession.class);
|
|
||||||
Mockito.when(session.getEquipmentId()).thenReturn(1L);
|
|
||||||
|
|
||||||
Mockito.when(ovsdbSessionMapInterface.getSession("Test_Client_21P10C68818122")).thenReturn(session);
|
|
||||||
|
|
||||||
assertEquals(1L, opensyncExternalIntegrationCloud.extractEquipmentIdFromTopic(topic));
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -484,16 +466,11 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
public void testProcessMqttMessageStringReport() {
|
public void testProcessMqttMessageStringReport() {
|
||||||
|
|
||||||
Report report = Report.newBuilder().setNodeID("21P10C68818122")
|
Report report = Report.newBuilder().setNodeID("21P10C68818122")
|
||||||
.addAllClients(getOpensyncStatsClientReportsList()).addAllEventReport(getOpensyncStatsEventReportsList()).build();
|
.addAllClients(getOpensyncStatsClientReportsList())
|
||||||
|
.addAllEventReport(getOpensyncStatsEventReportsList()).build();
|
||||||
|
|
||||||
String topic = "/ap/Test_Client_21P10C68818122/opensync";
|
String topic = "/ap/Test_Client_21P10C68818122/opensync";
|
||||||
|
|
||||||
OvsdbSession session = Mockito.mock(OvsdbSession.class);
|
|
||||||
Mockito.when(session.getEquipmentId()).thenReturn(1L);
|
|
||||||
Mockito.when(session.getCustomerId()).thenReturn(2);
|
|
||||||
|
|
||||||
Mockito.when(ovsdbSessionMapInterface.getSession("Test_Client_21P10C68818122")).thenReturn(session);
|
|
||||||
|
|
||||||
Status bssidStatus = new Status();
|
Status bssidStatus = new Status();
|
||||||
bssidStatus.setStatusDataType(StatusDataType.ACTIVE_BSSIDS);
|
bssidStatus.setStatusDataType(StatusDataType.ACTIVE_BSSIDS);
|
||||||
bssidStatus.setCustomerId(2);
|
bssidStatus.setCustomerId(2);
|
||||||
@@ -502,20 +479,21 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
activeBssidsDetails.setActiveBSSIDs(getActiveBssidList());
|
activeBssidsDetails.setActiveBSSIDs(getActiveBssidList());
|
||||||
bssidStatus.setDetails(activeBssidsDetails);
|
bssidStatus.setDetails(activeBssidsDetails);
|
||||||
|
|
||||||
Mockito.when(statusServiceInterface.getOrNull(Mockito.anyInt(), Mockito.anyLong(),
|
Mockito.when(statusServiceInterface.getOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.anyLong(),
|
||||||
Mockito.eq(StatusDataType.ACTIVE_BSSIDS))).thenReturn(bssidStatus);
|
ArgumentMatchers.eq(StatusDataType.ACTIVE_BSSIDS))).thenReturn(bssidStatus);
|
||||||
|
|
||||||
Mockito.when(statusServiceInterface.update(Mockito.any(Status.class))).thenReturn(bssidStatus);
|
Mockito.when(statusServiceInterface.update(ArgumentMatchers.any(Status.class))).thenReturn(bssidStatus);
|
||||||
com.telecominfraproject.wlan.client.models.Client clientInstance = new com.telecominfraproject.wlan.client.models.Client();
|
com.telecominfraproject.wlan.client.models.Client clientInstance = new com.telecominfraproject.wlan.client.models.Client();
|
||||||
clientInstance.setMacAddress(new MacAddress("7C:AB:60:E6:EA:4D"));
|
clientInstance.setMacAddress(new MacAddress("7C:AB:60:E6:EA:4D"));
|
||||||
clientInstance.setDetails(new ClientInfoDetails());
|
clientInstance.setDetails(new ClientInfoDetails());
|
||||||
com.telecominfraproject.wlan.client.models.Client clientInstance2 = new com.telecominfraproject.wlan.client.models.Client();
|
com.telecominfraproject.wlan.client.models.Client clientInstance2 = new com.telecominfraproject.wlan.client.models.Client();
|
||||||
clientInstance2.setMacAddress(new MacAddress("C0:9A:D0:76:A9:69"));
|
clientInstance2.setMacAddress(new MacAddress("C0:9A:D0:76:A9:69"));
|
||||||
clientInstance2.setDetails(new ClientInfoDetails());
|
clientInstance2.setDetails(new ClientInfoDetails());
|
||||||
Mockito.when(clientServiceInterface.getOrNull(Mockito.anyInt(), Mockito.any(MacAddress.class)))
|
|
||||||
.thenReturn(clientInstance).thenReturn(clientInstance2);
|
|
||||||
Mockito.when(
|
Mockito.when(
|
||||||
clientServiceInterface.update(Mockito.any(com.telecominfraproject.wlan.client.models.Client.class)))
|
clientServiceInterface.getOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.any(MacAddress.class)))
|
||||||
|
.thenReturn(clientInstance).thenReturn(clientInstance2);
|
||||||
|
Mockito.when(clientServiceInterface
|
||||||
|
.update(ArgumentMatchers.any(com.telecominfraproject.wlan.client.models.Client.class)))
|
||||||
.thenReturn(clientInstance).thenReturn(clientInstance2);
|
.thenReturn(clientInstance).thenReturn(clientInstance2);
|
||||||
|
|
||||||
ClientSession clientSession = new ClientSession();
|
ClientSession clientSession = new ClientSession();
|
||||||
@@ -524,20 +502,15 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
ClientSession clientSession2 = new ClientSession();
|
ClientSession clientSession2 = new ClientSession();
|
||||||
clientSession2.setMacAddress(new MacAddress("C0:9A:D0:76:A9:69"));
|
clientSession2.setMacAddress(new MacAddress("C0:9A:D0:76:A9:69"));
|
||||||
clientSession2.setDetails(new ClientSessionDetails());
|
clientSession2.setDetails(new ClientSessionDetails());
|
||||||
Mockito.when(clientServiceInterface.getSessionOrNull(Mockito.anyInt(), Mockito.anyLong(),
|
Mockito.when(clientServiceInterface.getSessionOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.anyLong(),
|
||||||
Mockito.any(MacAddress.class))).thenReturn(clientSession).thenReturn(clientSession2);
|
ArgumentMatchers.any(MacAddress.class))).thenReturn(clientSession).thenReturn(clientSession2);
|
||||||
|
|
||||||
Mockito.when(clientServiceInterface.updateSession(Mockito.any(ClientSession.class))).thenReturn(clientSession)
|
Mockito.when(clientServiceInterface.updateSession(ArgumentMatchers.any(ClientSession.class)))
|
||||||
.thenReturn(clientSession2);
|
.thenReturn(clientSession).thenReturn(clientSession2);
|
||||||
|
|
||||||
opensyncExternalIntegrationCloud.processMqttMessage(topic, report);
|
opensyncExternalIntegrationCloud.processMqttMessage(topic, report);
|
||||||
|
|
||||||
Mockito.verify(clientServiceInterface, Mockito.times(4)).getOrNull(Mockito.anyInt(),
|
Mockito.verify(opensyncExternalIntegrationMqttProcessor, Mockito.times(1)).processMqttMessage(topic, report);
|
||||||
Mockito.any(MacAddress.class));
|
|
||||||
Mockito.verify(clientServiceInterface, Mockito.times(4)).getSessionOrNull(Mockito.anyInt(), Mockito.anyLong(),
|
|
||||||
Mockito.any(MacAddress.class));
|
|
||||||
Mockito.verify(statusServiceInterface, Mockito.times(3)).getOrNull(Mockito.anyInt(), Mockito.anyLong(),
|
|
||||||
Mockito.eq(StatusDataType.ACTIVE_BSSIDS));
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -756,8 +729,8 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
activeBssidsDetails.setActiveBSSIDs(getActiveBssidList());
|
activeBssidsDetails.setActiveBSSIDs(getActiveBssidList());
|
||||||
bssidStatus.setDetails(activeBssidsDetails);
|
bssidStatus.setDetails(activeBssidsDetails);
|
||||||
|
|
||||||
Mockito.when(statusServiceInterface.getOrNull(Mockito.anyInt(), Mockito.anyLong(),
|
Mockito.when(statusServiceInterface.getOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.anyLong(),
|
||||||
Mockito.eq(StatusDataType.ACTIVE_BSSIDS))).thenReturn(bssidStatus);
|
ArgumentMatchers.eq(StatusDataType.ACTIVE_BSSIDS))).thenReturn(bssidStatus);
|
||||||
|
|
||||||
opensyncExternalIntegrationCloud.wifiVIFStateDbTableDelete(ImmutableList.of(new OpensyncAPVIFState()), "apId");
|
opensyncExternalIntegrationCloud.wifiVIFStateDbTableDelete(ImmutableList.of(new OpensyncAPVIFState()), "apId");
|
||||||
}
|
}
|
||||||
@@ -768,39 +741,6 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
opensyncExternalIntegrationCloud.wifiAssociatedClientsDbTableDelete("7C:AB:60:E6:EA:4D", "apId");
|
opensyncExternalIntegrationCloud.wifiAssociatedClientsDbTableDelete("7C:AB:60:E6:EA:4D", "apId");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testpopulateNetworkProbeMetrics() throws Exception {
|
|
||||||
|
|
||||||
InetAddress ip = InetAddress.getByName("192.168.1.1");
|
|
||||||
|
|
||||||
DNSProbeMetric dnsProbeMetric = DNSProbeMetric.getDefaultInstance().toBuilder().setLatency(10)
|
|
||||||
.setState(StateUpDown.SUD_up).setServerIP(ip.toString()).build();
|
|
||||||
RADIUSMetrics radiusProbeMetric = RADIUSMetrics.getDefaultInstance().toBuilder().setLatencyAve(10).build();
|
|
||||||
VLANMetrics vlanMetrics = VLANMetrics.getDefaultInstance().toBuilder().setDhcpLatency(10)
|
|
||||||
.setDhcpState(StateUpDown.SUD_up).setVlanIF("vlan-1").setObsV200RadiusLatency(15)
|
|
||||||
.setObsV200RadiusState(StateUpDown.SUD_up).build();
|
|
||||||
NetworkProbe networkProbe = NetworkProbe.getDefaultInstance().toBuilder().setVlanProbe(vlanMetrics)
|
|
||||||
.setDnsProbe(dnsProbeMetric).addRadiusProbe(radiusProbeMetric).build();
|
|
||||||
|
|
||||||
Report report = Report.getDefaultInstance().toBuilder().setNodeID("21P10C68818122")
|
|
||||||
.addNetworkProbe(networkProbe).build();
|
|
||||||
|
|
||||||
ApNodeMetrics apNodeMetrics = new ApNodeMetrics();
|
|
||||||
|
|
||||||
opensyncExternalIntegrationCloud.populateNetworkProbeMetrics(report, apNodeMetrics);
|
|
||||||
|
|
||||||
assertNotNull(apNodeMetrics.getNetworkProbeMetrics());
|
|
||||||
|
|
||||||
assert (apNodeMetrics.getNetworkProbeMetrics().get(0).getDhcpLatencyMs() == 10);
|
|
||||||
assert (apNodeMetrics.getNetworkProbeMetrics().get(0).getDnsLatencyMs() == 10);
|
|
||||||
assert (apNodeMetrics.getNetworkProbeMetrics().get(0).getRadiusState().equals(StateUpDownError.enabled));
|
|
||||||
assert (apNodeMetrics.getNetworkProbeMetrics().get(0).getDhcpState().equals(StateUpDownError.enabled));
|
|
||||||
assert (apNodeMetrics.getNetworkProbeMetrics().get(0).getDnsState().equals(StateUpDownError.enabled));
|
|
||||||
assert (apNodeMetrics.getNetworkProbeMetrics().get(0).getRadiusLatencyInMs() == 15);
|
|
||||||
assert (apNodeMetrics.getNetworkProbeMetrics().get(0).getVlanIF().equals("vlan-1"));
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Helper methods
|
// Helper methods
|
||||||
private List<ActiveBSSID> getActiveBssidList() {
|
private List<ActiveBSSID> getActiveBssidList() {
|
||||||
ActiveBSSID activeBssid = new ActiveBSSID();
|
ActiveBSSID activeBssid = new ActiveBSSID();
|
||||||
@@ -819,7 +759,7 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
activeBssid3.setNumDevicesConnected(1);
|
activeBssid3.setNumDevicesConnected(1);
|
||||||
activeBssid3.setRadioType(RadioType.is5GHzU);
|
activeBssid3.setRadioType(RadioType.is5GHzU);
|
||||||
|
|
||||||
List<ActiveBSSID> bssidList = new ArrayList<ActiveBSSID>();
|
List<ActiveBSSID> bssidList = new ArrayList<>();
|
||||||
bssidList.add(activeBssid);
|
bssidList.add(activeBssid);
|
||||||
bssidList.add(activeBssid2);
|
bssidList.add(activeBssid2);
|
||||||
bssidList.add(activeBssid3);
|
bssidList.add(activeBssid3);
|
||||||
@@ -829,7 +769,8 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
|
|
||||||
private List<EventReport> getOpensyncStatsEventReportsList() {
|
private List<EventReport> getOpensyncStatsEventReportsList() {
|
||||||
|
|
||||||
sts.OpensyncStats.EventReport.ClientAssocEvent.Builder clientAssocBuilder = EventReport.ClientAssocEvent.getDefaultInstance().toBuilder();
|
sts.OpensyncStats.EventReport.ClientAssocEvent.Builder clientAssocBuilder = EventReport.ClientAssocEvent
|
||||||
|
.getDefaultInstance().toBuilder();
|
||||||
clientAssocBuilder.setAssocType(AssocType.ASSOC);
|
clientAssocBuilder.setAssocType(AssocType.ASSOC);
|
||||||
clientAssocBuilder.setBand(RadioBandType.BAND5GU);
|
clientAssocBuilder.setBand(RadioBandType.BAND5GU);
|
||||||
clientAssocBuilder.setRssi(-65);
|
clientAssocBuilder.setRssi(-65);
|
||||||
@@ -840,7 +781,8 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
clientAssocBuilder.setSsid("ssid-3");
|
clientAssocBuilder.setSsid("ssid-3");
|
||||||
clientAssocBuilder.setStatus(1);
|
clientAssocBuilder.setStatus(1);
|
||||||
|
|
||||||
sts.OpensyncStats.EventReport.ClientAssocEvent.Builder clientAssocBuilder2 = EventReport.ClientAssocEvent.getDefaultInstance().toBuilder();
|
sts.OpensyncStats.EventReport.ClientAssocEvent.Builder clientAssocBuilder2 = EventReport.ClientAssocEvent
|
||||||
|
.getDefaultInstance().toBuilder();
|
||||||
clientAssocBuilder2.setAssocType(AssocType.ASSOC);
|
clientAssocBuilder2.setAssocType(AssocType.ASSOC);
|
||||||
clientAssocBuilder2.setBand(RadioBandType.BAND2G);
|
clientAssocBuilder2.setBand(RadioBandType.BAND2G);
|
||||||
clientAssocBuilder2.setRssi(-65);
|
clientAssocBuilder2.setRssi(-65);
|
||||||
@@ -873,7 +815,8 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
int rssi = Long.valueOf(4294967239L).intValue();
|
int rssi = Long.valueOf(4294967239L).intValue();
|
||||||
|
|
||||||
Client.Stats clientStats = Client.Stats.getDefaultInstance().toBuilder().setRssi(rssi).setRxBytes(225554786)
|
Client.Stats clientStats = Client.Stats.getDefaultInstance().toBuilder().setRssi(rssi).setRxBytes(225554786)
|
||||||
.setRxRate(24000.0).setTxBytes(1208133026).setTxRate(433300.0).setRssi(758722570).setRxFrames(10000).setTxFrames(10000).setTxRate(24000.0).build();
|
.setRxRate(24000.0).setTxBytes(1208133026).setTxRate(433300.0).setRssi(758722570).setRxFrames(10000)
|
||||||
|
.setTxFrames(10000).setTxRate(24000.0).build();
|
||||||
Client client2g = Client.getDefaultInstance().toBuilder().setMacAddress("7C:AB:60:E6:EA:4D").setSsid("ssid-1")
|
Client client2g = Client.getDefaultInstance().toBuilder().setMacAddress("7C:AB:60:E6:EA:4D").setSsid("ssid-1")
|
||||||
.setConnected(true).setDurationMs(59977).setStats(clientStats).build();
|
.setConnected(true).setDurationMs(59977).setStats(clientStats).build();
|
||||||
Client client5gu = Client.getDefaultInstance().toBuilder().setMacAddress("C0:9A:D0:76:A9:69").setSsid("ssid-3")
|
Client client5gu = Client.getDefaultInstance().toBuilder().setMacAddress("C0:9A:D0:76:A9:69").setSsid("ssid-3")
|
||||||
@@ -886,7 +829,7 @@ public class OpensyncExternalIntegrationCloudTest {
|
|||||||
ClientReport clientReport5gu = ClientReport.getDefaultInstance().toBuilder().setBand(RadioBandType.BAND5GU)
|
ClientReport clientReport5gu = ClientReport.getDefaultInstance().toBuilder().setBand(RadioBandType.BAND5GU)
|
||||||
.setChannel(157).addAllClientList(ImmutableList.of(client5gu)).build();
|
.setChannel(157).addAllClientList(ImmutableList.of(client5gu)).build();
|
||||||
|
|
||||||
List<ClientReport> clients = new ArrayList<ClientReport>();
|
List<ClientReport> clients = new ArrayList<>();
|
||||||
clients.add(clientReport2g);
|
clients.add(clientReport2g);
|
||||||
clients.add(clientReport5gl);
|
clients.add(clientReport5gl);
|
||||||
clients.add(clientReport5gu);
|
clients.add(clientReport5gu);
|
||||||
|
|||||||
@@ -0,0 +1,370 @@
|
|||||||
|
package com.telecominfraproject.wlan.opensync.external.integration;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertNotNull;
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
||||||
|
import java.net.InetAddress;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.junit.After;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Ignore;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
import org.mockito.Answers;
|
||||||
|
import org.mockito.ArgumentMatchers;
|
||||||
|
import org.mockito.Mockito;
|
||||||
|
import org.mockito.MockitoSession;
|
||||||
|
import org.mockito.quality.Strictness;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
|
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
|
||||||
|
import org.springframework.boot.test.mock.mockito.MockBean;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.context.annotation.Import;
|
||||||
|
import org.springframework.test.context.ActiveProfiles;
|
||||||
|
import org.springframework.test.context.junit4.SpringRunner;
|
||||||
|
|
||||||
|
import com.google.common.collect.ImmutableList;
|
||||||
|
import com.google.protobuf.ByteString;
|
||||||
|
import com.telecominfraproject.wlan.alarm.AlarmServiceInterface;
|
||||||
|
import com.telecominfraproject.wlan.client.ClientServiceInterface;
|
||||||
|
import com.telecominfraproject.wlan.client.info.models.ClientInfoDetails;
|
||||||
|
import com.telecominfraproject.wlan.client.session.models.ClientSession;
|
||||||
|
import com.telecominfraproject.wlan.client.session.models.ClientSessionDetails;
|
||||||
|
import com.telecominfraproject.wlan.cloudeventdispatcher.CloudEventDispatcherInterface;
|
||||||
|
import com.telecominfraproject.wlan.core.model.equipment.MacAddress;
|
||||||
|
import com.telecominfraproject.wlan.core.model.equipment.RadioType;
|
||||||
|
import com.telecominfraproject.wlan.customer.service.CustomerServiceInterface;
|
||||||
|
import com.telecominfraproject.wlan.equipment.EquipmentServiceInterface;
|
||||||
|
import com.telecominfraproject.wlan.firmware.FirmwareServiceInterface;
|
||||||
|
import com.telecominfraproject.wlan.location.service.LocationServiceInterface;
|
||||||
|
import com.telecominfraproject.wlan.opensync.external.integration.controller.OpensyncCloudGatewayController;
|
||||||
|
import com.telecominfraproject.wlan.profile.ProfileServiceInterface;
|
||||||
|
import com.telecominfraproject.wlan.routing.RoutingServiceInterface;
|
||||||
|
import com.telecominfraproject.wlan.servicemetric.apnode.models.ApNodeMetrics;
|
||||||
|
import com.telecominfraproject.wlan.servicemetric.apnode.models.StateUpDownError;
|
||||||
|
import com.telecominfraproject.wlan.status.StatusServiceInterface;
|
||||||
|
import com.telecominfraproject.wlan.status.equipment.report.models.ActiveBSSID;
|
||||||
|
import com.telecominfraproject.wlan.status.equipment.report.models.ActiveBSSIDs;
|
||||||
|
import com.telecominfraproject.wlan.status.models.Status;
|
||||||
|
import com.telecominfraproject.wlan.status.models.StatusDataType;
|
||||||
|
|
||||||
|
import sts.OpensyncStats.AssocType;
|
||||||
|
import sts.OpensyncStats.Client;
|
||||||
|
import sts.OpensyncStats.ClientReport;
|
||||||
|
import sts.OpensyncStats.DNSProbeMetric;
|
||||||
|
import sts.OpensyncStats.EventReport;
|
||||||
|
import sts.OpensyncStats.EventType;
|
||||||
|
import sts.OpensyncStats.NetworkProbe;
|
||||||
|
import sts.OpensyncStats.RADIUSMetrics;
|
||||||
|
import sts.OpensyncStats.RadioBandType;
|
||||||
|
import sts.OpensyncStats.Report;
|
||||||
|
import sts.OpensyncStats.StateUpDown;
|
||||||
|
import sts.OpensyncStats.VLANMetrics;
|
||||||
|
|
||||||
|
@RunWith(SpringRunner.class)
|
||||||
|
@ActiveProfiles(profiles = { "integration_test", })
|
||||||
|
@SpringBootTest(webEnvironment = WebEnvironment.NONE, classes = OpensyncExternalIntegrationMqttMessageProcessorTest.class)
|
||||||
|
@Import(value = { AlarmServiceInterface.class, OpensyncExternalIntegrationCloud.class,
|
||||||
|
OpensyncExternalIntegrationMqttMessageProcessorTest.Config.class,
|
||||||
|
|
||||||
|
})
|
||||||
|
public class OpensyncExternalIntegrationMqttMessageProcessorTest {
|
||||||
|
|
||||||
|
@MockBean
|
||||||
|
AlarmServiceInterface alarmServiceInterface;
|
||||||
|
@MockBean
|
||||||
|
CustomerServiceInterface customerServiceInterface;
|
||||||
|
@MockBean
|
||||||
|
LocationServiceInterface locationServiceInterface;
|
||||||
|
@MockBean(answer = Answers.RETURNS_MOCKS)
|
||||||
|
OvsdbSessionMapInterface ovsdbSessionMapInterface;
|
||||||
|
@MockBean
|
||||||
|
CloudEventDispatcherInterface equipmentMetricsCollectorInterface;
|
||||||
|
@MockBean
|
||||||
|
EquipmentServiceInterface equipmentServiceInterface;
|
||||||
|
@MockBean
|
||||||
|
RoutingServiceInterface routingServiceInterface;
|
||||||
|
@MockBean
|
||||||
|
ProfileServiceInterface profileServiceInterface;
|
||||||
|
@MockBean
|
||||||
|
StatusServiceInterface statusServiceInterface;
|
||||||
|
@MockBean
|
||||||
|
ClientServiceInterface clientServiceInterface;
|
||||||
|
@MockBean
|
||||||
|
FirmwareServiceInterface firmwareServiceInterface;
|
||||||
|
@MockBean(answer = Answers.RETURNS_MOCKS)
|
||||||
|
OpensyncCloudGatewayController gatewayController;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
OpensyncExternalIntegrationMqttMessageProcessor opensyncExternalIntegrationMqttProcessor;
|
||||||
|
|
||||||
|
MockitoSession mockito;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
static class Config {
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public OpensyncExternalIntegrationMqttMessageProcessor opensyncExternalIntegrationMqttMessageProcessor() {
|
||||||
|
return new OpensyncExternalIntegrationMqttMessageProcessor();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void setUp() throws Exception {
|
||||||
|
|
||||||
|
mockito = Mockito.mockitoSession().initMocks(this).strictness(Strictness.STRICT_STUBS).startMocking();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@After
|
||||||
|
public void tearDown() throws Exception {
|
||||||
|
mockito.finishMocking();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testExtractApIdFromTopic() {
|
||||||
|
|
||||||
|
String topic = "/ap/Test_Client_21P10C68818122/opensync";
|
||||||
|
|
||||||
|
assertEquals("Test_Client_21P10C68818122",
|
||||||
|
OpensyncExternalIntegrationMqttMessageProcessor.extractApIdFromTopic(topic));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testExtractCustomerIdFromTopic() {
|
||||||
|
String topic = "/ap/Test_Client_21P10C68818122/opensync";
|
||||||
|
OvsdbSession session = Mockito.mock(OvsdbSession.class);
|
||||||
|
Mockito.when(session.getCustomerId()).thenReturn(2);
|
||||||
|
|
||||||
|
Mockito.when(ovsdbSessionMapInterface.getSession("Test_Client_21P10C68818122")).thenReturn(session);
|
||||||
|
|
||||||
|
assertEquals(2, opensyncExternalIntegrationMqttProcessor.extractCustomerIdFromTopic(topic));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testExtractEquipmentIdFromTopic() {
|
||||||
|
|
||||||
|
String topic = "/ap/Test_Client_21P10C68818122/opensync";
|
||||||
|
OvsdbSession session = Mockito.mock(OvsdbSession.class);
|
||||||
|
Mockito.when(session.getEquipmentId()).thenReturn(1L);
|
||||||
|
|
||||||
|
Mockito.when(ovsdbSessionMapInterface.getSession("Test_Client_21P10C68818122")).thenReturn(session);
|
||||||
|
|
||||||
|
assertEquals(1L, opensyncExternalIntegrationMqttProcessor.extractEquipmentIdFromTopic(topic));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testProcessMqttMessageStringReport() {
|
||||||
|
|
||||||
|
Report report = Report.newBuilder().setNodeID("21P10C68818122")
|
||||||
|
.addAllClients(getOpensyncStatsClientReportsList())
|
||||||
|
.addAllEventReport(getOpensyncStatsEventReportsList()).build();
|
||||||
|
|
||||||
|
String topic = "/ap/Test_Client_21P10C68818122/opensync";
|
||||||
|
|
||||||
|
OvsdbSession session = Mockito.mock(OvsdbSession.class);
|
||||||
|
Mockito.when(session.getEquipmentId()).thenReturn(1L);
|
||||||
|
Mockito.when(session.getCustomerId()).thenReturn(2);
|
||||||
|
|
||||||
|
Mockito.when(ovsdbSessionMapInterface.getSession("Test_Client_21P10C68818122")).thenReturn(session);
|
||||||
|
|
||||||
|
Status bssidStatus = new Status();
|
||||||
|
bssidStatus.setStatusDataType(StatusDataType.ACTIVE_BSSIDS);
|
||||||
|
bssidStatus.setCustomerId(2);
|
||||||
|
|
||||||
|
ActiveBSSIDs activeBssidsDetails = new ActiveBSSIDs();
|
||||||
|
activeBssidsDetails.setActiveBSSIDs(getActiveBssidList());
|
||||||
|
bssidStatus.setDetails(activeBssidsDetails);
|
||||||
|
|
||||||
|
Mockito.when(statusServiceInterface.getOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.anyLong(),
|
||||||
|
ArgumentMatchers.eq(StatusDataType.ACTIVE_BSSIDS))).thenReturn(bssidStatus);
|
||||||
|
|
||||||
|
Mockito.when(statusServiceInterface.update(ArgumentMatchers.any(Status.class))).thenReturn(bssidStatus);
|
||||||
|
com.telecominfraproject.wlan.client.models.Client clientInstance = new com.telecominfraproject.wlan.client.models.Client();
|
||||||
|
clientInstance.setMacAddress(new MacAddress("7C:AB:60:E6:EA:4D"));
|
||||||
|
clientInstance.setDetails(new ClientInfoDetails());
|
||||||
|
com.telecominfraproject.wlan.client.models.Client clientInstance2 = new com.telecominfraproject.wlan.client.models.Client();
|
||||||
|
clientInstance2.setMacAddress(new MacAddress("C0:9A:D0:76:A9:69"));
|
||||||
|
clientInstance2.setDetails(new ClientInfoDetails());
|
||||||
|
Mockito.when(
|
||||||
|
clientServiceInterface.getOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.any(MacAddress.class)))
|
||||||
|
.thenReturn(clientInstance).thenReturn(clientInstance2);
|
||||||
|
Mockito.when(clientServiceInterface
|
||||||
|
.update(ArgumentMatchers.any(com.telecominfraproject.wlan.client.models.Client.class)))
|
||||||
|
.thenReturn(clientInstance).thenReturn(clientInstance2);
|
||||||
|
|
||||||
|
ClientSession clientSession = new ClientSession();
|
||||||
|
clientSession.setMacAddress(new MacAddress("7C:AB:60:E6:EA:4D"));
|
||||||
|
clientSession.setDetails(new ClientSessionDetails());
|
||||||
|
ClientSession clientSession2 = new ClientSession();
|
||||||
|
clientSession2.setMacAddress(new MacAddress("C0:9A:D0:76:A9:69"));
|
||||||
|
clientSession2.setDetails(new ClientSessionDetails());
|
||||||
|
Mockito.when(clientServiceInterface.getSessionOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.anyLong(),
|
||||||
|
ArgumentMatchers.any(MacAddress.class))).thenReturn(clientSession).thenReturn(clientSession2);
|
||||||
|
|
||||||
|
Mockito.when(clientServiceInterface.updateSession(ArgumentMatchers.any(ClientSession.class)))
|
||||||
|
.thenReturn(clientSession).thenReturn(clientSession2);
|
||||||
|
|
||||||
|
opensyncExternalIntegrationMqttProcessor.processMqttMessage(topic, report);
|
||||||
|
|
||||||
|
// Mockito.verify(clientServiceInterface,
|
||||||
|
// Mockito.times(4)).getOrNull(Mockito.anyInt(),
|
||||||
|
// Mockito.any(MacAddress.class));
|
||||||
|
// Mockito.verify(clientServiceInterface,
|
||||||
|
// Mockito.times(4)).getSessionOrNull(Mockito.anyInt(),
|
||||||
|
// Mockito.anyLong(),
|
||||||
|
// Mockito.any(MacAddress.class));
|
||||||
|
// Mockito.verify(statusServiceInterface,
|
||||||
|
// Mockito.times(3)).getOrNull(Mockito.anyInt(), Mockito.anyLong(),
|
||||||
|
// Mockito.eq(StatusDataType.ACTIVE_BSSIDS));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Ignore
|
||||||
|
public void testProcessMqttMessageStringFlowReport() {
|
||||||
|
// TODO: implement me when support flow reports
|
||||||
|
}
|
||||||
|
|
||||||
|
@Ignore
|
||||||
|
public void testProcessMqttMessageStringWCStatsReport() {
|
||||||
|
// TODO: implement me when wcs stats reports supported
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testpopulateNetworkProbeMetrics() throws Exception {
|
||||||
|
|
||||||
|
InetAddress ip = InetAddress.getLocalHost();
|
||||||
|
|
||||||
|
DNSProbeMetric dnsProbeMetric = DNSProbeMetric.getDefaultInstance().toBuilder().setLatency(10)
|
||||||
|
.setState(StateUpDown.SUD_up).setServerIP(ip.getHostName()).build();
|
||||||
|
RADIUSMetrics radiusProbeMetric = RADIUSMetrics.getDefaultInstance().toBuilder().setLatencyAve(10).build();
|
||||||
|
VLANMetrics vlanMetrics = VLANMetrics.getDefaultInstance().toBuilder().setDhcpLatency(10)
|
||||||
|
.setDhcpState(StateUpDown.SUD_up).setVlanIF("vlan-1").setObsV200RadiusLatency(15)
|
||||||
|
.setObsV200RadiusState(StateUpDown.SUD_up).build();
|
||||||
|
NetworkProbe networkProbe = NetworkProbe.getDefaultInstance().toBuilder().setVlanProbe(vlanMetrics)
|
||||||
|
.setDnsProbe(dnsProbeMetric).addRadiusProbe(radiusProbeMetric).build();
|
||||||
|
|
||||||
|
Report report = Report.getDefaultInstance().toBuilder().setNodeID("21P10C68818122")
|
||||||
|
.addNetworkProbe(networkProbe).build();
|
||||||
|
|
||||||
|
ApNodeMetrics apNodeMetrics = new ApNodeMetrics();
|
||||||
|
|
||||||
|
opensyncExternalIntegrationMqttProcessor.populateNetworkProbeMetrics(report, apNodeMetrics);
|
||||||
|
|
||||||
|
assertNotNull(apNodeMetrics.getNetworkProbeMetrics());
|
||||||
|
|
||||||
|
assert (apNodeMetrics.getNetworkProbeMetrics().get(0).getDhcpLatencyMs() == 10);
|
||||||
|
assert (apNodeMetrics.getNetworkProbeMetrics().get(0).getDnsLatencyMs() == 10);
|
||||||
|
assert (apNodeMetrics.getNetworkProbeMetrics().get(0).getRadiusState().equals(StateUpDownError.enabled));
|
||||||
|
assert (apNodeMetrics.getNetworkProbeMetrics().get(0).getDhcpState().equals(StateUpDownError.enabled));
|
||||||
|
assert (apNodeMetrics.getNetworkProbeMetrics().get(0).getDnsState().equals(StateUpDownError.enabled));
|
||||||
|
assert (apNodeMetrics.getNetworkProbeMetrics().get(0).getRadiusLatencyInMs() == 15);
|
||||||
|
assert (apNodeMetrics.getNetworkProbeMetrics().get(0).getVlanIF().equals("vlan-1"));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Helper methods
|
||||||
|
private List<ActiveBSSID> getActiveBssidList() {
|
||||||
|
ActiveBSSID activeBssid = new ActiveBSSID();
|
||||||
|
activeBssid.setBssid("24:f5:a2:ef:2e:54");
|
||||||
|
activeBssid.setSsid("ssid-1");
|
||||||
|
activeBssid.setNumDevicesConnected(1);
|
||||||
|
activeBssid.setRadioType(RadioType.is2dot4GHz);
|
||||||
|
ActiveBSSID activeBssid2 = new ActiveBSSID();
|
||||||
|
activeBssid2.setBssid("24:f5:a2:ef:2e:55");
|
||||||
|
activeBssid2.setSsid("ssid-2");
|
||||||
|
activeBssid2.setNumDevicesConnected(1);
|
||||||
|
activeBssid2.setRadioType(RadioType.is5GHzL);
|
||||||
|
ActiveBSSID activeBssid3 = new ActiveBSSID();
|
||||||
|
activeBssid3.setBssid("24:f5:a2:ef:2e:56");
|
||||||
|
activeBssid3.setSsid("ssid-3");
|
||||||
|
activeBssid3.setNumDevicesConnected(1);
|
||||||
|
activeBssid3.setRadioType(RadioType.is5GHzU);
|
||||||
|
|
||||||
|
List<ActiveBSSID> bssidList = new ArrayList<>();
|
||||||
|
bssidList.add(activeBssid);
|
||||||
|
bssidList.add(activeBssid2);
|
||||||
|
bssidList.add(activeBssid3);
|
||||||
|
return bssidList;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private List<EventReport> getOpensyncStatsEventReportsList() {
|
||||||
|
|
||||||
|
sts.OpensyncStats.EventReport.ClientAssocEvent.Builder clientAssocBuilder = EventReport.ClientAssocEvent
|
||||||
|
.getDefaultInstance().toBuilder();
|
||||||
|
clientAssocBuilder.setAssocType(AssocType.ASSOC);
|
||||||
|
clientAssocBuilder.setBand(RadioBandType.BAND5GU);
|
||||||
|
clientAssocBuilder.setRssi(-65);
|
||||||
|
clientAssocBuilder.setStaMac("C0:9A:D0:76:A9:69");
|
||||||
|
clientAssocBuilder.setStaMacBytes(ByteString.copyFrom("C0:9A:D0:76:A9:69".getBytes()));
|
||||||
|
clientAssocBuilder.setSessionId(1000L);
|
||||||
|
clientAssocBuilder.setInternalSc(1);
|
||||||
|
clientAssocBuilder.setSsid("ssid-3");
|
||||||
|
clientAssocBuilder.setStatus(1);
|
||||||
|
|
||||||
|
sts.OpensyncStats.EventReport.ClientAssocEvent.Builder clientAssocBuilder2 = EventReport.ClientAssocEvent
|
||||||
|
.getDefaultInstance().toBuilder();
|
||||||
|
clientAssocBuilder2.setAssocType(AssocType.ASSOC);
|
||||||
|
clientAssocBuilder2.setBand(RadioBandType.BAND2G);
|
||||||
|
clientAssocBuilder2.setRssi(-65);
|
||||||
|
clientAssocBuilder2.setStaMac("7C:AB:60:E6:EA:4D");
|
||||||
|
clientAssocBuilder2.setStaMacBytes(ByteString.copyFrom("7C:AB:60:E6:EA:4D".getBytes()));
|
||||||
|
clientAssocBuilder2.setSessionId(1000L);
|
||||||
|
clientAssocBuilder2.setInternalSc(1);
|
||||||
|
clientAssocBuilder2.setSsid("ssid-1");
|
||||||
|
clientAssocBuilder2.setStatus(1);
|
||||||
|
|
||||||
|
List<EventReport> eventReportList = new ArrayList<>();
|
||||||
|
|
||||||
|
EventReport.Builder eventReportBuilder = EventReport.getDefaultInstance().toBuilder();
|
||||||
|
eventReportBuilder.setClientAssocEvent(clientAssocBuilder.build());
|
||||||
|
eventReportBuilder.setEventType(EventType.CLIENT_ASSOC);
|
||||||
|
|
||||||
|
eventReportList.add(eventReportBuilder.build());
|
||||||
|
|
||||||
|
eventReportBuilder = EventReport.getDefaultInstance().toBuilder();
|
||||||
|
eventReportBuilder.setClientAssocEvent(clientAssocBuilder2.build());
|
||||||
|
eventReportBuilder.setEventType(EventType.CLIENT_ASSOC);
|
||||||
|
|
||||||
|
eventReportList.add(eventReportBuilder.build());
|
||||||
|
|
||||||
|
return eventReportList;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<ClientReport> getOpensyncStatsClientReportsList() {
|
||||||
|
int rssi = Long.valueOf(4294967239L).intValue();
|
||||||
|
|
||||||
|
Client.Stats clientStats = Client.Stats.getDefaultInstance().toBuilder().setRssi(rssi).setRxBytes(225554786)
|
||||||
|
.setRxRate(24000.0).setTxBytes(1208133026).setTxRate(433300.0).setRssi(758722570).setRxFrames(10000)
|
||||||
|
.setTxFrames(10000).setTxRate(24000.0).build();
|
||||||
|
Client client2g = Client.getDefaultInstance().toBuilder().setMacAddress("7C:AB:60:E6:EA:4D").setSsid("ssid-1")
|
||||||
|
.setConnected(true).setDurationMs(59977).setStats(clientStats).build();
|
||||||
|
Client client5gu = Client.getDefaultInstance().toBuilder().setMacAddress("C0:9A:D0:76:A9:69").setSsid("ssid-3")
|
||||||
|
.setConnected(true).setDurationMs(298127).setStats(clientStats).build();
|
||||||
|
|
||||||
|
ClientReport clientReport2g = ClientReport.getDefaultInstance().toBuilder().setBand(RadioBandType.BAND2G)
|
||||||
|
.setChannel(6).addAllClientList(ImmutableList.of(client2g)).build();
|
||||||
|
ClientReport clientReport5gl = ClientReport.getDefaultInstance().toBuilder().setBand(RadioBandType.BAND5GL)
|
||||||
|
.setChannel(36).addAllClientList(new ArrayList<Client>()).build();
|
||||||
|
ClientReport clientReport5gu = ClientReport.getDefaultInstance().toBuilder().setBand(RadioBandType.BAND5GU)
|
||||||
|
.setChannel(157).addAllClientList(ImmutableList.of(client5gu)).build();
|
||||||
|
|
||||||
|
List<ClientReport> clients = new ArrayList<>();
|
||||||
|
clients.add(clientReport2g);
|
||||||
|
clients.add(clientReport5gl);
|
||||||
|
clients.add(clientReport5gu);
|
||||||
|
return clients;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -35,6 +35,7 @@ public class OpensyncAPConfig extends BaseJsonModel {
|
|||||||
private EquipmentRoutingRecord equipmentRouting;
|
private EquipmentRoutingRecord equipmentRouting;
|
||||||
private EquipmentGatewayRecord equipmentGateway;
|
private EquipmentGatewayRecord equipmentGateway;
|
||||||
private List<Profile> captiveProfiles;
|
private List<Profile> captiveProfiles;
|
||||||
|
private List<Profile> bonjourGatewayProfiles;
|
||||||
private List<MacAddress> blockedClients;
|
private List<MacAddress> blockedClients;
|
||||||
|
|
||||||
// Handle Legacy Config Support
|
// Handle Legacy Config Support
|
||||||
@@ -146,6 +147,14 @@ public class OpensyncAPConfig extends BaseJsonModel {
|
|||||||
this.ssidProfile = ssidProfile;
|
this.ssidProfile = ssidProfile;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<Profile> getBonjourGatewayProfiles() {
|
||||||
|
return bonjourGatewayProfiles;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBonjourGatewayProfiles(List<Profile> bonjourGatewayProfiles) {
|
||||||
|
this.bonjourGatewayProfiles = bonjourGatewayProfiles;
|
||||||
|
}
|
||||||
|
|
||||||
public Location getEquipmentLocation() {
|
public Location getEquipmentLocation() {
|
||||||
return equipmentLocation;
|
return equipmentLocation;
|
||||||
}
|
}
|
||||||
@@ -177,6 +186,13 @@ public class OpensyncAPConfig extends BaseJsonModel {
|
|||||||
}
|
}
|
||||||
ret.ssidProfile = ssidList;
|
ret.ssidProfile = ssidList;
|
||||||
}
|
}
|
||||||
|
if (bonjourGatewayProfiles != null) {
|
||||||
|
List<Profile> bonjourGatewayProfilesList = new ArrayList<Profile>();
|
||||||
|
for (Profile profile : bonjourGatewayProfiles) {
|
||||||
|
bonjourGatewayProfilesList.add(profile.clone());
|
||||||
|
}
|
||||||
|
ret.bonjourGatewayProfiles = bonjourGatewayProfilesList;
|
||||||
|
}
|
||||||
if (apProfile != null)
|
if (apProfile != null)
|
||||||
ret.apProfile = apProfile.clone();
|
ret.apProfile = apProfile.clone();
|
||||||
if (equipmentRouting != null)
|
if (equipmentRouting != null)
|
||||||
@@ -185,8 +201,8 @@ public class OpensyncAPConfig extends BaseJsonModel {
|
|||||||
ret.equipmentGateway = equipmentGateway.clone();
|
ret.equipmentGateway = equipmentGateway.clone();
|
||||||
if (radiusProfiles != null) {
|
if (radiusProfiles != null) {
|
||||||
ret.radiusProfiles = new ArrayList<>();
|
ret.radiusProfiles = new ArrayList<>();
|
||||||
for (Profile cpConfig : this.radiusProfiles) {
|
for (Profile radiusProfile : this.radiusProfiles) {
|
||||||
ret.radiusProfiles.add(cpConfig);
|
ret.radiusProfiles.add(radiusProfile);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (captiveProfiles != null) {
|
if (captiveProfiles != null) {
|
||||||
|
|||||||
@@ -48,6 +48,9 @@ public class OpensyncExternalIntegrationSimple implements OpensyncExternalIntegr
|
|||||||
@Value("${tip.wlan.ovsdb.captiveProfileFileName:/app/config/ProfileCaptive.json}")
|
@Value("${tip.wlan.ovsdb.captiveProfileFileName:/app/config/ProfileCaptive.json}")
|
||||||
private String captiveProfileFileName;
|
private String captiveProfileFileName;
|
||||||
|
|
||||||
|
@Value("${tip.wlan.ovsdb.bonjourProfileFileName:/app/config/ProfileBonjour.json}")
|
||||||
|
private String bonjourProfileFileName;
|
||||||
|
|
||||||
@Value("${tip.wlan.ovsdb.locationFileName:/app/config/LocationBuildingExample.json}")
|
@Value("${tip.wlan.ovsdb.locationFileName:/app/config/LocationBuildingExample.json}")
|
||||||
private String locationFileName;
|
private String locationFileName;
|
||||||
|
|
||||||
@@ -102,6 +105,15 @@ public class OpensyncExternalIntegrationSimple implements OpensyncExternalIntegr
|
|||||||
LOG.info("Captive file is not provided");
|
LOG.info("Captive file is not provided");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
List<com.telecominfraproject.wlan.profile.models.Profile> bonjourProfiles = null;
|
||||||
|
File bonjourFile = new File(bonjourProfileFileName);
|
||||||
|
if (bonjourFile.exists()) {
|
||||||
|
bonjourProfiles = com.telecominfraproject.wlan.profile.models.Profile
|
||||||
|
.listFromFile(bonjourProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
|
||||||
|
} else {
|
||||||
|
LOG.info("Bonjour file is not provided");
|
||||||
|
}
|
||||||
|
|
||||||
equipment.setProfileId(apProfile.getId());
|
equipment.setProfileId(apProfile.getId());
|
||||||
|
|
||||||
Location location = Location.fromFile(locationFileName, Location.class);
|
Location location = Location.fromFile(locationFileName, Location.class);
|
||||||
@@ -115,6 +127,7 @@ public class OpensyncExternalIntegrationSimple implements OpensyncExternalIntegr
|
|||||||
ret.setRadiusProfiles(radiusProfiles);
|
ret.setRadiusProfiles(radiusProfiles);
|
||||||
ret.setEquipmentLocation(location);
|
ret.setEquipmentLocation(location);
|
||||||
ret.setCaptiveProfiles(captiveProfiles);
|
ret.setCaptiveProfiles(captiveProfiles);
|
||||||
|
ret.setBonjourGatewayProfiles(bonjourProfiles);
|
||||||
|
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
LOG.error("Cannot read config file", e);
|
LOG.error("Cannot read config file", e);
|
||||||
|
|||||||
29
opensync-ext-static/src/main/resources/ProfileBonjour.json
Normal file
29
opensync-ext-static/src/main/resources/ProfileBonjour.json
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"model_type": "Profile",
|
||||||
|
"id": 100,
|
||||||
|
"customerId": 2,
|
||||||
|
"profileType": "bonjour",
|
||||||
|
"name": "Bonjour-gateway",
|
||||||
|
"details": {
|
||||||
|
"model_type": "BonjourGatewayProfile",
|
||||||
|
"profileDescription": "Bonjour Gateway Configuration for Design Testing",
|
||||||
|
"profileType": "bonjour",
|
||||||
|
"bonjourServices": [
|
||||||
|
{
|
||||||
|
"model_type": "BonjourServiceSet",
|
||||||
|
"vlanId": 1,
|
||||||
|
"supportAllServices": false,
|
||||||
|
"serviceNames": [
|
||||||
|
"AirPort",
|
||||||
|
"SFTP",
|
||||||
|
"SSH"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"createdTimestamp": 1599234550774,
|
||||||
|
"lastModifiedTimestamp": 1599234550774,
|
||||||
|
"childProfileIds": []
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"model_type": "Profile",
|
||||||
|
"id": 100,
|
||||||
|
"customerId": 2,
|
||||||
|
"profileType": "bonjour",
|
||||||
|
"name": "Bonjour-gateway",
|
||||||
|
"details": {
|
||||||
|
"model_type": "BonjourGatewayProfile",
|
||||||
|
"profileDescription": "Bonjour Gateway Configuration for Design Testing",
|
||||||
|
"profileType": "bonjour",
|
||||||
|
"bonjourServices": [
|
||||||
|
{
|
||||||
|
"model_type": "BonjourServiceSet",
|
||||||
|
"vlanId": 1,
|
||||||
|
"supportAllServices": false,
|
||||||
|
"serviceNames": [
|
||||||
|
"AirPort",
|
||||||
|
"SFTP",
|
||||||
|
"SSH"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"createdTimestamp": 1599234550774,
|
||||||
|
"lastModifiedTimestamp": 1599234550774,
|
||||||
|
"childProfileIds": []
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -133,6 +133,7 @@ OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.ssidProfileFileName=$OVSDB_SSIDPROFIL
|
|||||||
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.radiusProfileFileName=$OVSDB_RADIUSPROFILE_CONFIG_FILE"
|
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.radiusProfileFileName=$OVSDB_RADIUSPROFILE_CONFIG_FILE"
|
||||||
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.locationFileName=$OVSDB_LOCATION_CONFIG_FILE"
|
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.locationFileName=$OVSDB_LOCATION_CONFIG_FILE"
|
||||||
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.captiveProfileFileName=$OVSDB_CAPTIVEPROFILE_CONFIG_FILE"
|
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.captiveProfileFileName=$OVSDB_CAPTIVEPROFILE_CONFIG_FILE"
|
||||||
|
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.bonjourProfileFileName=$OVSDB_BONJOURPROFILE_CONFIG_FILE"
|
||||||
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.wifi-iface.default_bridge=$OVSDB_IF_DEFAULT_BRIDGE"
|
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.wifi-iface.default_bridge=$OVSDB_IF_DEFAULT_BRIDGE"
|
||||||
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.wifi-iface.default_wan_type=$OVSDB_DEVICE_DEFAULT_WAN_TYPE"
|
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.wifi-iface.default_wan_type=$OVSDB_DEVICE_DEFAULT_WAN_TYPE"
|
||||||
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.wifi-iface.default_wan_name=$OVSDB_DEVICE_DEFAULT_WAN_NAME"
|
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.wifi-iface.default_wan_name=$OVSDB_DEVICE_DEFAULT_WAN_NAME"
|
||||||
|
|||||||
@@ -0,0 +1,29 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"model_type": "Profile",
|
||||||
|
"id": 100,
|
||||||
|
"customerId": 2,
|
||||||
|
"profileType": "bonjour",
|
||||||
|
"name": "Bonjour-gateway",
|
||||||
|
"details": {
|
||||||
|
"model_type": "BonjourGatewayProfile",
|
||||||
|
"profileDescription": "Bonjour Gateway Configuration for Design Testing",
|
||||||
|
"profileType": "bonjour",
|
||||||
|
"bonjourServices": [
|
||||||
|
{
|
||||||
|
"model_type": "BonjourServiceSet",
|
||||||
|
"vlanId": 1,
|
||||||
|
"supportAllServices": false,
|
||||||
|
"serviceNames": [
|
||||||
|
"AirPort",
|
||||||
|
"SFTP",
|
||||||
|
"SSH"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"createdTimestamp": 1599234550774,
|
||||||
|
"lastModifiedTimestamp": 1599234550774,
|
||||||
|
"childProfileIds": []
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -24,6 +24,7 @@ OVSDB_PROPS+=" -Dtip.wlan.ovsdb.apProfileFileName=$OVSDB_APPROFILE_CONFIG_FILE"
|
|||||||
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.ssidProfileFileName=$OVSDB_SSIDPROFILE_CONFIG_FILE"
|
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.ssidProfileFileName=$OVSDB_SSIDPROFILE_CONFIG_FILE"
|
||||||
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.radiusProfileFileName=$OVSDB_RADIUSPROFILE_CONFIG_FILE"
|
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.radiusProfileFileName=$OVSDB_RADIUSPROFILE_CONFIG_FILE"
|
||||||
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.captiveProfileFileName=$OVSDB_CAPTIVEPROFILE_CONFIG_FILE"
|
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.captiveProfileFileName=$OVSDB_CAPTIVEPROFILE_CONFIG_FILE"
|
||||||
|
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.bonjourProfileFileName=$OVSDB_BONJOURPROFILE_CONFIG_FILE"
|
||||||
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.locationFileName=$OVSDB_LOCATION_CONFIG_FILE"
|
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.locationFileName=$OVSDB_LOCATION_CONFIG_FILE"
|
||||||
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.wifi-iface.default_bridge=$OVSDB_IF_DEFAULT_BRIDGE"
|
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.wifi-iface.default_bridge=$OVSDB_IF_DEFAULT_BRIDGE"
|
||||||
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.wifi-iface.default_wan_type=$OVSDB_DEVICE_DEFAULT_WAN_TYPE"
|
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.wifi-iface.default_wan_type=$OVSDB_DEVICE_DEFAULT_WAN_TYPE"
|
||||||
|
|||||||
Reference in New Issue
Block a user