mirror of
				https://github.com/Telecominfraproject/wlan-cloud-opensync-controller.git
				synced 2025-11-04 04:27:59 +00:00 
			
		
		
		
	Compare commits
	
		
			1 Commits
		
	
	
		
			release-te
			...
			1.0
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					0fcdb7410e | 
							
								
								
									
										2
									
								
								LICENSE
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								LICENSE
									
									
									
									
									
								
							@@ -1,5 +1,5 @@
 | 
				
			|||||||
BSD 3-Clause License
 | 
					BSD 3-Clause License
 | 
				
			||||||
 | 
					#Release Testing
 | 
				
			||||||
Copyright (c) 2020, Telecom Infra Project
 | 
					Copyright (c) 2020, Telecom Infra Project
 | 
				
			||||||
All rights reserved.
 | 
					All rights reserved.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,4 @@
 | 
				
			|||||||
# wlan-opensync-wifi-controller  #TESTING
 | 
					# wlan-opensync-wifi-controller
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Opensync Wifi Controller - accepts connections from the access points, pushes configuration, reads metrics from the topics on MQTT broker.
 | 
					Opensync Wifi Controller - accepts connections from the access points, pushes configuration, reads metrics from the topics on MQTT broker.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,10 +11,14 @@ import java.util.Map;
 | 
				
			|||||||
import java.util.Set;
 | 
					import java.util.Set;
 | 
				
			||||||
import java.util.stream.Collectors;
 | 
					import java.util.stream.Collectors;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.annotation.PostConstruct;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.slf4j.Logger;
 | 
					import org.slf4j.Logger;
 | 
				
			||||||
import org.slf4j.LoggerFactory;
 | 
					import org.slf4j.LoggerFactory;
 | 
				
			||||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
import org.springframework.beans.factory.annotation.Value;
 | 
					import org.springframework.beans.factory.annotation.Value;
 | 
				
			||||||
 | 
					import org.springframework.cache.Cache;
 | 
				
			||||||
 | 
					import org.springframework.cache.CacheManager;
 | 
				
			||||||
import org.springframework.stereotype.Component;
 | 
					import org.springframework.stereotype.Component;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.google.common.collect.ImmutableSet;
 | 
					import com.google.common.collect.ImmutableSet;
 | 
				
			||||||
@@ -66,8 +70,8 @@ import com.telecominfraproject.wlan.opensync.external.integration.models.Opensyn
 | 
				
			|||||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAWLANNode;
 | 
					import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAWLANNode;
 | 
				
			||||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncWifiAssociatedClients;
 | 
					import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncWifiAssociatedClients;
 | 
				
			||||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.enumerations.DhcpFpDeviceType;
 | 
					import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.enumerations.DhcpFpDeviceType;
 | 
				
			||||||
import com.telecominfraproject.wlan.opensync.util.OvsdbStringConstants;
 | 
					import com.telecominfraproject.wlan.opensync.ovsdb.dao.utilities.OvsdbStringConstants;
 | 
				
			||||||
import com.telecominfraproject.wlan.opensync.util.OvsdbToWlanCloudTypeMappingUtility;
 | 
					import com.telecominfraproject.wlan.opensync.ovsdb.dao.utilities.OvsdbToWlanCloudTypeMappingUtility;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.ProfileServiceInterface;
 | 
					import com.telecominfraproject.wlan.profile.ProfileServiceInterface;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.models.Profile;
 | 
					import com.telecominfraproject.wlan.profile.models.Profile;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.models.ProfileContainer;
 | 
					import com.telecominfraproject.wlan.profile.models.ProfileContainer;
 | 
				
			||||||
@@ -154,10 +158,32 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
    @org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.wifi-iface.default_wan_name:wan}")
 | 
					    @org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.wifi-iface.default_wan_name:wan}")
 | 
				
			||||||
    public String defaultWanInterfaceName;
 | 
					    public String defaultWanInterfaceName;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private CacheManager cacheManagerShortLived;
 | 
				
			||||||
 | 
					    private Cache cloudEquipmentRecordCache;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @PostConstruct
 | 
				
			||||||
 | 
					    private void postCreate() {
 | 
				
			||||||
 | 
					        LOG.info("Using Cloud integration");
 | 
				
			||||||
 | 
					        cloudEquipmentRecordCache = cacheManagerShortLived.getCache("equipment_record_cache");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Equipment getCustomerEquipment(String apId) {
 | 
				
			||||||
 | 
					        Equipment ce = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					            ce = cloudEquipmentRecordCache.get(apId, () -> equipmentServiceInterface.getByInventoryIdOrNull(apId));
 | 
				
			||||||
 | 
					        } catch (Exception e) {
 | 
				
			||||||
 | 
					            LOG.error("Could not get customer equipment for {}", apId, e);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return ce;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public void apConnected(String apId, ConnectNodeInfo connectNodeInfo) {
 | 
					    public void apConnected(String apId, ConnectNodeInfo connectNodeInfo) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Equipment ce = equipmentServiceInterface.getByInventoryIdOrNull(apId);
 | 
					        Equipment ce = getCustomerEquipment(apId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        try {
 | 
					        try {
 | 
				
			||||||
            if (ce == null) {
 | 
					            if (ce == null) {
 | 
				
			||||||
@@ -213,7 +239,6 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
                ce.setDetails(ApElementConfiguration.createWithDefaults());
 | 
					                ce.setDetails(ApElementConfiguration.createWithDefaults());
 | 
				
			||||||
                ce.setCustomerId(autoProvisionedCustomerId);
 | 
					                ce.setCustomerId(autoProvisionedCustomerId);
 | 
				
			||||||
                ce.setName(apId);
 | 
					                ce.setName(apId);
 | 
				
			||||||
				ce = equipmentServiceInterface.create(ce);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                ApElementConfiguration apElementConfig = (ApElementConfiguration) ce.getDetails();
 | 
					                ApElementConfiguration apElementConfig = (ApElementConfiguration) ce.getDetails();
 | 
				
			||||||
                apElementConfig.setDeviceName(ce.getName());
 | 
					                apElementConfig.setDeviceName(ce.getName());
 | 
				
			||||||
@@ -273,7 +298,11 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                ce.setProfileId(profileId);
 | 
					                ce.setProfileId(profileId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				ce = equipmentServiceInterface.update(ce);
 | 
					                ce = equipmentServiceInterface.create(ce);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                // update the cache right away, no need to wait until the
 | 
				
			||||||
 | 
					                // entry expires
 | 
				
			||||||
 | 
					                cloudEquipmentRecordCache.put(ce.getInventoryId(), ce);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                // equipment already exists
 | 
					                // equipment already exists
 | 
				
			||||||
@@ -295,6 +324,9 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
                        ce.setBaseMacAddress(reportedMacAddress);
 | 
					                        ce.setBaseMacAddress(reportedMacAddress);
 | 
				
			||||||
                        ce = equipmentServiceInterface.update(ce);
 | 
					                        ce = equipmentServiceInterface.update(ce);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                        // update the cache right away, no need to wait
 | 
				
			||||||
 | 
					                        // until the entry expires
 | 
				
			||||||
 | 
					                        cloudEquipmentRecordCache.put(ce.getInventoryId(), ce);
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -556,8 +588,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
            networkAdminStatusRec = statusServiceInterface.update(networkAdminStatusRec);
 | 
					            networkAdminStatusRec = statusServiceInterface.update(networkAdminStatusRec);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        } catch (Exception e) {
 | 
					        } catch (Exception e) {
 | 
				
			||||||
			LOG.error("Exception in updateApStatus", e);
 | 
					            LOG.debug("Exception in updateApStatus", e);
 | 
				
			||||||
			throw e;
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -731,6 +762,14 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
            OvsdbSession ovsdbSession = ovsdbSessionMapInterface.getSession(apId);
 | 
					            OvsdbSession ovsdbSession = ovsdbSessionMapInterface.getSession(apId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (ovsdbSession != null) {
 | 
					            if (ovsdbSession != null) {
 | 
				
			||||||
 | 
					                // if (ovsdbSession.getCustomerId() > 0 &&
 | 
				
			||||||
 | 
					                // ovsdbSession.getEquipmentId() > 0L) {
 | 
				
			||||||
 | 
					                // List<Status> statusForDisconnectedAp =
 | 
				
			||||||
 | 
					                // statusServiceInterface.delete(ovsdbSession.getCustomerId(),
 | 
				
			||||||
 | 
					                // ovsdbSession.getEquipmentId());
 | 
				
			||||||
 | 
					                // LOG.info("Deleted status records {} for AP {}",
 | 
				
			||||||
 | 
					                // statusForDisconnectedAp, apId);
 | 
				
			||||||
 | 
					                // }
 | 
				
			||||||
                if (ovsdbSession.getRoutingId() > 0L) {
 | 
					                if (ovsdbSession.getRoutingId() > 0L) {
 | 
				
			||||||
                    try {
 | 
					                    try {
 | 
				
			||||||
                        routingServiceInterface.delete(ovsdbSession.getRoutingId());
 | 
					                        routingServiceInterface.delete(ovsdbSession.getRoutingId());
 | 
				
			||||||
@@ -742,39 +781,12 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                LOG.warn("Cannot find ap {} in inventory", apId);
 | 
					                LOG.warn("Cannot find ap {} in inventory", apId);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
			
 | 
					 | 
				
			||||||
			updateApDisconnectedStatus(apId);
 | 
					 | 
				
			||||||
        } catch (Exception e) {
 | 
					        } catch (Exception e) {
 | 
				
			||||||
            LOG.error("Exception when registering ap routing {}", apId, e);
 | 
					            LOG.error("Exception when registering ap routing {}", apId, e);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	private void updateApDisconnectedStatus(String apId) {
 | 
					 | 
				
			||||||
		try {
 | 
					 | 
				
			||||||
			Equipment ce = equipmentServiceInterface.getByInventoryIdOrNull(apId);
 | 
					 | 
				
			||||||
			if (ce == null) {
 | 
					 | 
				
			||||||
				LOG.debug("updateDisconnectedApStatus::Cannot get Equipment for AP {}", apId);
 | 
					 | 
				
			||||||
				return;
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			Status statusRecord = statusServiceInterface.getOrNull(ce.getCustomerId(), ce.getId(),
 | 
					 | 
				
			||||||
					StatusDataType.EQUIPMENT_ADMIN);
 | 
					 | 
				
			||||||
			if (statusRecord == null) {
 | 
					 | 
				
			||||||
				LOG.debug("updateApDisconnectedStatus::Cannot get EQUIPMENT_ADMIN status for CustomerId {} or EquipmentId {} for AP {}", 
 | 
					 | 
				
			||||||
						ce.getCustomerId(), ce.getId(), apId);
 | 
					 | 
				
			||||||
				return;
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			((EquipmentAdminStatusData) statusRecord.getDetails()).setStatusCode(StatusCode.error);
 | 
					 | 
				
			||||||
			// Update the equipment admin status
 | 
					 | 
				
			||||||
			statusRecord = statusServiceInterface.update(statusRecord);
 | 
					 | 
				
			||||||
		} catch (Exception e) {
 | 
					 | 
				
			||||||
			LOG.error("Exception in updateApDisconnectedStatus", e);
 | 
					 | 
				
			||||||
			throw e;
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public OpensyncAPConfig getApConfig(String apId) {
 | 
					    public OpensyncAPConfig getApConfig(String apId) {
 | 
				
			||||||
        LOG.info("Retrieving config for AP {} ", apId);
 | 
					        LOG.info("Retrieving config for AP {} ", apId);
 | 
				
			||||||
@@ -791,7 +803,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
            if ((customer != null) && (customer.getDetails() != null)
 | 
					            if ((customer != null) && (customer.getDetails() != null)
 | 
				
			||||||
                    && (customer.getDetails().getAutoProvisioning() != null)
 | 
					                    && (customer.getDetails().getAutoProvisioning() != null)
 | 
				
			||||||
                    && customer.getDetails().getAutoProvisioning().isEnabled()) {
 | 
					                    && customer.getDetails().getAutoProvisioning().isEnabled()) {
 | 
				
			||||||
				Equipment equipmentConfig = equipmentServiceInterface.getByInventoryIdOrNull(apId);
 | 
					                Equipment equipmentConfig = getCustomerEquipment(apId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (equipmentConfig == null) {
 | 
					                if (equipmentConfig == null) {
 | 
				
			||||||
                    throw new IllegalStateException("Cannot retrieve configuration for " + apId);
 | 
					                    throw new IllegalStateException("Cannot retrieve configuration for " + apId);
 | 
				
			||||||
@@ -815,8 +827,8 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
                ret.setSsidProfile(
 | 
					                ret.setSsidProfile(
 | 
				
			||||||
                        profileContainer.getChildrenOfType(equipmentConfig.getProfileId(), ProfileType.ssid));
 | 
					                        profileContainer.getChildrenOfType(equipmentConfig.getProfileId(), ProfileType.ssid));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				ret.setMetricsProfiles(profileContainer.getChildrenOfType(equipmentConfig.getProfileId(),
 | 
					                ret.setMetricsProfiles(
 | 
				
			||||||
						ProfileType.service_metrics_collection_config));
 | 
					                        profileContainer.getChildrenOfType(equipmentConfig.getProfileId(), ProfileType.service_metrics_collection_config));
 | 
				
			||||||
                
 | 
					                
 | 
				
			||||||
                Set<Profile> radiusSet = new HashSet<>();
 | 
					                Set<Profile> radiusSet = new HashSet<>();
 | 
				
			||||||
                Set<Long> captiveProfileIds = new HashSet<>();
 | 
					                Set<Long> captiveProfileIds = new HashSet<>();
 | 
				
			||||||
@@ -851,12 +863,12 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                if (hotspot20ProfileSet.size() > 0) {
 | 
					                if (hotspot20ProfileSet.size() > 0) {
 | 
				
			||||||
                    for (Profile hotspot20Profile : hotspot20ProfileSet) {
 | 
					                    for (Profile hotspot20Profile : hotspot20ProfileSet) {
 | 
				
			||||||
						hotspot20OperatorSet.addAll(profileContainer.getChildrenOfType(hotspot20Profile.getId(),
 | 
					                        hotspot20OperatorSet.addAll(
 | 
				
			||||||
								ProfileType.passpoint_operator));
 | 
					                                profileContainer.getChildrenOfType(hotspot20Profile.getId(), ProfileType.passpoint_operator));
 | 
				
			||||||
						hotspot20VenueSet.addAll(profileContainer.getChildrenOfType(hotspot20Profile.getId(),
 | 
					                        hotspot20VenueSet.addAll(
 | 
				
			||||||
								ProfileType.passpoint_venue));
 | 
					                                profileContainer.getChildrenOfType(hotspot20Profile.getId(), ProfileType.passpoint_venue));
 | 
				
			||||||
						hotspot20ProviderSet.addAll(profileContainer.getChildrenOfType(hotspot20Profile.getId(),
 | 
					                        hotspot20ProviderSet.addAll(
 | 
				
			||||||
								ProfileType.passpoint_osu_id_provider));
 | 
					                                profileContainer.getChildrenOfType(hotspot20Profile.getId(), ProfileType.passpoint_osu_id_provider));
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    hotspotConfig.setHotspot20OperatorSet(hotspot20OperatorSet);
 | 
					                    hotspotConfig.setHotspot20OperatorSet(hotspot20OperatorSet);
 | 
				
			||||||
                    hotspotConfig.setHotspot20ProfileSet(hotspot20ProfileSet);
 | 
					                    hotspotConfig.setHotspot20ProfileSet(hotspot20ProfileSet);
 | 
				
			||||||
@@ -1121,10 +1133,9 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
            if (protocolStatus != null) {
 | 
					            if (protocolStatus != null) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                protocolStatusData = (EquipmentProtocolStatusData) protocolStatus.getDetails();
 | 
					                protocolStatusData = (EquipmentProtocolStatusData) protocolStatus.getDetails();
 | 
				
			||||||
				if (!protocolStatusData.getReportedCC().equals(CountryCode.getByName((radioState.getCountry())))) {
 | 
					                if (!protocolStatusData.getReportedCC()
 | 
				
			||||||
					
 | 
					                        .equals(CountryCode.getByName((radioState.getCountry())))) {
 | 
				
			||||||
					LOG.debug("Protocol Status reportedCC {} radioStatus.getCountry {} radioStatus CountryCode fromName {}", protocolStatusData.getReportedCC(), radioState.getCountry(), CountryCode.getByName((radioState.getCountry())));
 | 
					                    protocolStatusData.setReportedCC(CountryCode.getByName((radioState.getCountry())));
 | 
				
			||||||
					protocolStatusData.setReportedCC(CountryCode.getByName((radioState. getCountry())));
 | 
					 | 
				
			||||||
                    protocolStatus.setDetails(protocolStatusData);
 | 
					                    protocolStatus.setDetails(protocolStatusData);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                } else {
 | 
					                } else {
 | 
				
			||||||
@@ -1441,7 +1452,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
        OvsdbSession ovsdbSession = ovsdbSessionMapInterface.getSession(apId);
 | 
					        OvsdbSession ovsdbSession = ovsdbSessionMapInterface.getSession(apId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (ovsdbSession == null) {
 | 
					        if (ovsdbSession == null) {
 | 
				
			||||||
			LOG.info("awlanNodeDbTableUpdate::Cannot get Session for AP {}", apId);
 | 
					            LOG.debug("awlanNodeDbTableUpdate::Cannot get Session for AP {}", apId);
 | 
				
			||||||
            return;
 | 
					            return;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1449,27 +1460,22 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
        long equipmentId = ovsdbSession.getEquipmentId();
 | 
					        long equipmentId = ovsdbSession.getEquipmentId();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if ((customerId < 0) || (equipmentId < 0)) {
 | 
					        if ((customerId < 0) || (equipmentId < 0)) {
 | 
				
			||||||
			LOG.info("awlanNodeDbTableUpdate::Cannot get valid CustomerId {} or EquipmentId {} for AP {}", customerId,
 | 
					            LOG.debug("awlanNodeDbTableUpdate::Cannot get valid CustomerId {} or EquipmentId {} for AP {}", customerId,
 | 
				
			||||||
                    equipmentId, apId);
 | 
					                    equipmentId, apId);
 | 
				
			||||||
            return;
 | 
					            return;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Equipment ce = equipmentServiceInterface.getByInventoryIdOrNull(apId);
 | 
					 | 
				
			||||||
		if (ce == null) {
 | 
					 | 
				
			||||||
			LOG.info("awlanNodeDbTableUpdate::Cannot find AP {}", apId);
 | 
					 | 
				
			||||||
			return;
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        int upgradeStatusFromAp = opensyncAPState.getUpgradeStatus();
 | 
					        int upgradeStatusFromAp = opensyncAPState.getUpgradeStatus();
 | 
				
			||||||
        EquipmentUpgradeState fwUpgradeState = null;
 | 
					        EquipmentUpgradeState fwUpgradeState = null;
 | 
				
			||||||
        FailureReason fwUpgradeFailureReason = null;
 | 
					        FailureReason fwUpgradeFailureReason = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (opensyncAPState.getFirmwareUrl().equals(OvsdbStringConstants.OVSDB_AWLAN_AP_FACTORY_RESET)
 | 
					        if (opensyncAPState.getFirmwareUrl().equals(OvsdbStringConstants.OVSDB_AWLAN_AP_FACTORY_RESET)
 | 
				
			||||||
				|| opensyncAPState.getFirmwareUrl().equals(OvsdbStringConstants.OVSDB_AWLAN_AP_REBOOT)
 | 
					                || opensyncAPState.getFirmwareUrl().equals(OvsdbStringConstants.OVSDB_AWLAN_AP_FACTORY_RESET)
 | 
				
			||||||
				|| opensyncAPState.getFirmwareUrl().equals(OvsdbStringConstants.OVSDB_AWLAN_AP_SWITCH_SOFTWARE_BANK)
 | 
					                || opensyncAPState.getFirmwareUrl().equals(OvsdbStringConstants.OVSDB_AWLAN_AP_FACTORY_RESET)
 | 
				
			||||||
                || opensyncAPState.getFirmwareUrl().equals("")) {
 | 
					                || opensyncAPState.getFirmwareUrl().equals("")) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			LOG.debug("Firmware Url {}, no fwUpgradeState", opensyncAPState.getFirmwareUrl());
 | 
					            fwUpgradeState = EquipmentUpgradeState.undefined;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
            fwUpgradeState = OvsdbToWlanCloudTypeMappingUtility
 | 
					            fwUpgradeState = OvsdbToWlanCloudTypeMappingUtility
 | 
				
			||||||
                    .getCloudEquipmentUpgradeStateFromOpensyncUpgradeStatus(upgradeStatusFromAp);
 | 
					                    .getCloudEquipmentUpgradeStateFromOpensyncUpgradeStatus(upgradeStatusFromAp);
 | 
				
			||||||
@@ -1480,6 +1486,19 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Status protocolStatus = statusServiceInterface.getOrNull(customerId, equipmentId, StatusDataType.PROTOCOL);
 | 
				
			||||||
 | 
					        if (protocolStatus == null) {
 | 
				
			||||||
 | 
					            protocolStatus = new Status();
 | 
				
			||||||
 | 
					            protocolStatus.setCustomerId(customerId);
 | 
				
			||||||
 | 
					            protocolStatus.setEquipmentId(equipmentId);
 | 
				
			||||||
 | 
					            protocolStatus.setStatusDataType(StatusDataType.PROTOCOL);
 | 
				
			||||||
 | 
					            EquipmentProtocolStatusData protocolStatusData = new EquipmentProtocolStatusData();
 | 
				
			||||||
 | 
					            protocolStatus.setDetails(protocolStatusData);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            protocolStatus = statusServiceInterface.update(protocolStatus);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        String reportedFwImageName = null;
 | 
					        String reportedFwImageName = null;
 | 
				
			||||||
        String reportedAltFwImageName = null;
 | 
					        String reportedAltFwImageName = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1496,86 +1515,63 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
            reportedAltFwImageName = opensyncAPState.getVersionMatrix().get(OvsdbStringConstants.FW_IMAGE_NAME_KEY);
 | 
					            reportedAltFwImageName = opensyncAPState.getVersionMatrix().get(OvsdbStringConstants.FW_IMAGE_NAME_KEY);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        EquipmentProtocolStatusData protocolStatusData = (EquipmentProtocolStatusData) protocolStatus.getDetails();
 | 
				
			||||||
 | 
					        protocolStatusData.setReportedSku(opensyncAPState.getSkuNumber());
 | 
				
			||||||
 | 
					        if (reportedFwImageName != null) {
 | 
				
			||||||
 | 
					            protocolStatusData.setReportedSwVersion(reportedFwImageName);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        protocolStatusData.setReportedSwAltVersion(reportedAltFwImageName);
 | 
				
			||||||
 | 
					        protocolStatusData.setReportedHwVersion(opensyncAPState.getPlatformVersion());
 | 
				
			||||||
 | 
					        protocolStatusData.setSystemName(opensyncAPState.getModel());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        List<Status> updates = new ArrayList<>();
 | 
					        List<Status> updates = new ArrayList<>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Status protocolStatus = configureProtocolStatus(opensyncAPState, customerId, equipmentId, reportedFwImageName,
 | 
					        // only post update if there is a change
 | 
				
			||||||
				reportedAltFwImageName);
 | 
					        if (!((EquipmentProtocolStatusData) statusServiceInterface
 | 
				
			||||||
		if (protocolStatus != null) {
 | 
					                .getOrNull(customerId, equipmentId, StatusDataType.PROTOCOL).getDetails()).equals(protocolStatusData)) {
 | 
				
			||||||
 | 
					            protocolStatus.setDetails(protocolStatusData);
 | 
				
			||||||
            updates.add(protocolStatus);
 | 
					            updates.add(protocolStatus);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Status firmwareStatus = configureFirmwareStatus(customerId, equipmentId, fwUpgradeState, fwUpgradeFailureReason,
 | 
					 | 
				
			||||||
				reportedFwImageName, reportedAltFwImageName);
 | 
					 | 
				
			||||||
		if (firmwareStatus != null) {
 | 
					 | 
				
			||||||
			updates.add(firmwareStatus);
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		if (!updates.isEmpty()) {// may be some updates from
 | 
					 | 
				
			||||||
			// protocol
 | 
					 | 
				
			||||||
			// status
 | 
					 | 
				
			||||||
			updates = statusServiceInterface.update(updates);
 | 
					 | 
				
			||||||
		} 
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	private Status configureProtocolStatus(OpensyncAWLANNode opensyncAPState, int customerId, long equipmentId,
 | 
					 | 
				
			||||||
			String reportedSwImageName, String reportedAltSwImageName) {
 | 
					 | 
				
			||||||
		Status protocolStatus = statusServiceInterface.getOrNull(customerId, equipmentId, StatusDataType.PROTOCOL);
 | 
					 | 
				
			||||||
		if (protocolStatus != null) {
 | 
					 | 
				
			||||||
			EquipmentProtocolStatusData protocolStatusData = ((EquipmentProtocolStatusData) protocolStatus.getDetails());
 | 
					 | 
				
			||||||
			if (protocolStatusData.getReportedSku() != null && protocolStatusData.getReportedSku().equals(opensyncAPState.getSkuNumber())
 | 
					 | 
				
			||||||
					&& protocolStatusData.getReportedSwVersion() != null && protocolStatusData.getReportedSwVersion().equals(reportedSwImageName) 
 | 
					 | 
				
			||||||
					&& protocolStatusData.getReportedSwAltVersion() != null && protocolStatusData.getReportedSwAltVersion().equals(reportedAltSwImageName)
 | 
					 | 
				
			||||||
					&& protocolStatusData.getReportedHwVersion() != null && protocolStatusData.getReportedHwVersion().equals(opensyncAPState.getPlatformVersion())
 | 
					 | 
				
			||||||
					&& protocolStatusData.getSystemName() != null && protocolStatusData.getSystemName().equals(opensyncAPState.getModel())) {
 | 
					 | 
				
			||||||
				// no changes
 | 
					 | 
				
			||||||
				return null;
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			protocolStatusData.setReportedSku(opensyncAPState.getSkuNumber());
 | 
					 | 
				
			||||||
			if (reportedSwImageName != null) {
 | 
					 | 
				
			||||||
				protocolStatusData.setReportedSwVersion(reportedSwImageName);
 | 
					 | 
				
			||||||
			} else {
 | 
					 | 
				
			||||||
				protocolStatusData.setReportedSwVersion("Unknown");
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			if (reportedAltSwImageName != null) {
 | 
					 | 
				
			||||||
				protocolStatusData.setReportedSwAltVersion(reportedAltSwImageName);
 | 
					 | 
				
			||||||
			} else {
 | 
					 | 
				
			||||||
				protocolStatusData.setReportedSwAltVersion("Unknown");
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			protocolStatusData
 | 
					 | 
				
			||||||
			.setReportedHwVersion(opensyncAPState.getPlatformVersion());
 | 
					 | 
				
			||||||
			protocolStatusData.setSystemName(opensyncAPState.getModel());
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		return protocolStatus;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	private Status configureFirmwareStatus(int customerId, long equipmentId,EquipmentUpgradeState fwUpgradeState,
 | 
					 | 
				
			||||||
			FailureReason fwUpgradeFailureReason, String reportedFwImageName, String reportedAltFwImageName) {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        Status firmwareStatus = statusServiceInterface.getOrNull(customerId, equipmentId, StatusDataType.FIRMWARE);
 | 
					        Status firmwareStatus = statusServiceInterface.getOrNull(customerId, equipmentId, StatusDataType.FIRMWARE);
 | 
				
			||||||
		if (firmwareStatus != null) {
 | 
					        if (firmwareStatus == null) {
 | 
				
			||||||
			EquipmentUpgradeStatusData upgradeStatusData = (EquipmentUpgradeStatusData)firmwareStatus.getDetails();
 | 
					            firmwareStatus = new Status();
 | 
				
			||||||
			if (upgradeStatusData.getActiveSwVersion() != null && upgradeStatusData.getActiveSwVersion().equals(reportedFwImageName) && upgradeStatusData.getAlternateSwVersion() != null &&upgradeStatusData.getAlternateSwVersion().equals(reportedAltFwImageName) && upgradeStatusData.getUpgradeState() != null && upgradeStatusData.getUpgradeState().equals(fwUpgradeState)) {
 | 
					            firmwareStatus.setCustomerId(customerId);
 | 
				
			||||||
				return null; // no changes
 | 
					            firmwareStatus.setEquipmentId(equipmentId);
 | 
				
			||||||
			}
 | 
					            firmwareStatus.setStatusDataType(StatusDataType.FIRMWARE);
 | 
				
			||||||
			if (reportedFwImageName != null) {
 | 
					            firmwareStatus.setDetails(new EquipmentUpgradeStatusData());
 | 
				
			||||||
				upgradeStatusData.setActiveSwVersion(reportedFwImageName);
 | 
					            firmwareStatus = statusServiceInterface.update(firmwareStatus);
 | 
				
			||||||
			} else {
 | 
					 | 
				
			||||||
				upgradeStatusData.setActiveSwVersion("Unknown");
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
			if (reportedAltFwImageName != null) {
 | 
					 | 
				
			||||||
				upgradeStatusData.setAlternateSwVersion(reportedAltFwImageName);
 | 
					 | 
				
			||||||
			} else {
 | 
					 | 
				
			||||||
				((EquipmentUpgradeStatusData) firmwareStatus.getDetails())
 | 
					 | 
				
			||||||
				.setAlternateSwVersion("Unknown");
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if (fwUpgradeState == null) fwUpgradeState = EquipmentUpgradeState.undefined;
 | 
					        Equipment ce = getCustomerEquipment(apId);
 | 
				
			||||||
 | 
					        if (ce != null) {
 | 
				
			||||||
 | 
					            ce.getDetails();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (fwUpgradeState.equals(EquipmentUpgradeState.up_to_date)) {
 | 
					            if (fwUpgradeState.equals(EquipmentUpgradeState.up_to_date)) {
 | 
				
			||||||
                LOG.info("Firmware load is up to date.");
 | 
					                LOG.info("Firmware load is up to date.");
 | 
				
			||||||
				upgradeStatusData.setUpgradeState(fwUpgradeState);
 | 
					
 | 
				
			||||||
				firmwareStatus.setDetails(upgradeStatusData);
 | 
					                EquipmentUpgradeStatusData firmwareStatusData = (EquipmentUpgradeStatusData) firmwareStatus
 | 
				
			||||||
 | 
					                        .getDetails();
 | 
				
			||||||
 | 
					                if (reportedFwImageName != null) {
 | 
				
			||||||
 | 
					                    if (!firmwareStatusData.getActiveSwVersion().equals(reportedFwImageName)
 | 
				
			||||||
 | 
					                            || !firmwareStatusData.getUpgradeState().equals(fwUpgradeState)
 | 
				
			||||||
 | 
					                            || !firmwareStatusData.getAlternateSwVersion().equals(reportedAltFwImageName)) {
 | 
				
			||||||
 | 
					                        firmwareStatusData.setActiveSwVersion(reportedFwImageName);
 | 
				
			||||||
 | 
					                        firmwareStatusData.setAlternateSwVersion(reportedAltFwImageName);
 | 
				
			||||||
 | 
					                        firmwareStatusData.setUpgradeState(fwUpgradeState, fwUpgradeFailureReason);
 | 
				
			||||||
 | 
					                        firmwareStatus.setDetails(firmwareStatusData);
 | 
				
			||||||
 | 
					                        updates.add(firmwareStatus);
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (!updates.isEmpty()) { // may be some updates from protocol
 | 
				
			||||||
 | 
					                                          // status
 | 
				
			||||||
 | 
					                    updates = statusServiceInterface.update(updates);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            } else if (fwUpgradeState.equals(EquipmentUpgradeState.download_complete)
 | 
					            } else if (fwUpgradeState.equals(EquipmentUpgradeState.download_complete)
 | 
				
			||||||
                    || fwUpgradeState.equals(EquipmentUpgradeState.apply_complete)
 | 
					                    || fwUpgradeState.equals(EquipmentUpgradeState.apply_complete)
 | 
				
			||||||
                    || fwUpgradeState.equals(EquipmentUpgradeState.apply_initiated)
 | 
					                    || fwUpgradeState.equals(EquipmentUpgradeState.apply_initiated)
 | 
				
			||||||
@@ -1587,30 +1583,98 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                LOG.info("Firmware upgrade is in state {}", fwUpgradeState);
 | 
					                LOG.info("Firmware upgrade is in state {}", fwUpgradeState);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				upgradeStatusData.setUpgradeState(fwUpgradeState);
 | 
					                EquipmentUpgradeStatusData firmwareStatusData = (EquipmentUpgradeStatusData) firmwareStatus
 | 
				
			||||||
 | 
					                        .getDetails();
 | 
				
			||||||
 | 
					                if (reportedFwImageName != null) {
 | 
				
			||||||
 | 
					                    if (!firmwareStatusData.getActiveSwVersion().equals(reportedFwImageName)
 | 
				
			||||||
 | 
					                            || !firmwareStatusData.getUpgradeState().equals(fwUpgradeState)
 | 
				
			||||||
 | 
					                            || !firmwareStatusData.getAlternateSwVersion().equals(reportedAltFwImageName)) {
 | 
				
			||||||
 | 
					                        firmwareStatusData.setActiveSwVersion(reportedFwImageName);
 | 
				
			||||||
 | 
					                        firmwareStatusData.setAlternateSwVersion(reportedAltFwImageName);
 | 
				
			||||||
 | 
					                        firmwareStatusData.setUpgradeState(fwUpgradeState, fwUpgradeFailureReason);
 | 
				
			||||||
                        if (fwUpgradeState.equals(EquipmentUpgradeState.apply_initiated)) {
 | 
					                        if (fwUpgradeState.equals(EquipmentUpgradeState.apply_initiated)) {
 | 
				
			||||||
					upgradeStatusData.setUpgradeStartTime(System.currentTimeMillis());
 | 
					                            firmwareStatusData.setUpgradeStartTime(System.currentTimeMillis());
 | 
				
			||||||
                        } else if (fwUpgradeState.equals(EquipmentUpgradeState.reboot_initiated)
 | 
					                        } else if (fwUpgradeState.equals(EquipmentUpgradeState.reboot_initiated)
 | 
				
			||||||
                                || fwUpgradeState.equals(EquipmentUpgradeState.rebooting)) {
 | 
					                                || fwUpgradeState.equals(EquipmentUpgradeState.rebooting)) {
 | 
				
			||||||
					upgradeStatusData.setRebooted(true);
 | 
					                            firmwareStatusData.setRebooted(true);
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
				firmwareStatus.setDetails(upgradeStatusData);
 | 
					                        firmwareStatus.setDetails(firmwareStatusData);
 | 
				
			||||||
 | 
					                        updates.add(firmwareStatus);
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (!updates.isEmpty()) {// may be some updates from protocol
 | 
				
			||||||
 | 
					                                         // status
 | 
				
			||||||
 | 
					                    updates = statusServiceInterface.update(updates);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                // no other action here, these are just transient states
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            } else if (fwUpgradeState.equals(EquipmentUpgradeState.apply_failed)
 | 
					            } else if (fwUpgradeState.equals(EquipmentUpgradeState.apply_failed)
 | 
				
			||||||
                    || fwUpgradeState.equals(EquipmentUpgradeState.download_failed)
 | 
					                    || fwUpgradeState.equals(EquipmentUpgradeState.download_failed)
 | 
				
			||||||
                    || fwUpgradeState.equals(EquipmentUpgradeState.reboot_failed)) {
 | 
					                    || fwUpgradeState.equals(EquipmentUpgradeState.reboot_failed)) {
 | 
				
			||||||
                LOG.warn("Firmware upgrade is in a failed state {} due to {}", fwUpgradeState, fwUpgradeFailureReason);
 | 
					                LOG.warn("Firmware upgrade is in a failed state {} due to {}", fwUpgradeState, fwUpgradeFailureReason);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				upgradeStatusData.setUpgradeState(fwUpgradeState, fwUpgradeFailureReason);
 | 
					                EquipmentUpgradeStatusData firmwareStatusData = (EquipmentUpgradeStatusData) firmwareStatus
 | 
				
			||||||
				firmwareStatus.setDetails(upgradeStatusData);
 | 
					                        .getDetails();
 | 
				
			||||||
 | 
					                if (reportedFwImageName != null) {
 | 
				
			||||||
 | 
					                    if (!firmwareStatusData.getActiveSwVersion().equals(reportedFwImageName)
 | 
				
			||||||
 | 
					                            || !firmwareStatusData.getAlternateSwVersion().equals(reportedAltFwImageName)
 | 
				
			||||||
 | 
					                            || !firmwareStatusData.getUpgradeState().equals(fwUpgradeState)
 | 
				
			||||||
 | 
					                            || !firmwareStatusData.getReason().equals(fwUpgradeFailureReason)) {
 | 
				
			||||||
 | 
					                        firmwareStatusData.setActiveSwVersion(reportedFwImageName);
 | 
				
			||||||
 | 
					                        firmwareStatusData.setAlternateSwVersion(reportedAltFwImageName);
 | 
				
			||||||
 | 
					                        firmwareStatusData.setUpgradeState(fwUpgradeState, fwUpgradeFailureReason);
 | 
				
			||||||
 | 
					                        firmwareStatus.setDetails(firmwareStatusData);
 | 
				
			||||||
 | 
					                        updates.add(firmwareStatus);
 | 
				
			||||||
 | 
					                        updates = statusServiceInterface.update(updates);
 | 
				
			||||||
 | 
					                        reconcileFwVersionToTrack(ce, reportedFwImageName, opensyncAPState.getModel());
 | 
				
			||||||
                    } else {
 | 
					                    } else {
 | 
				
			||||||
 | 
					                        if (!updates.isEmpty()) {
 | 
				
			||||||
 | 
					                            updates = statusServiceInterface.update(updates);
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				((EquipmentUpgradeStatusData) firmwareStatus.getDetails())
 | 
					                } else {
 | 
				
			||||||
				.setUpgradeState(EquipmentUpgradeState.undefined);
 | 
					                    if (!updates.isEmpty()) {// may be some updates from
 | 
				
			||||||
				((EquipmentUpgradeStatusData) firmwareStatus.getDetails())
 | 
					                                             // protocol
 | 
				
			||||||
				.setUpgradeStartTime(null);
 | 
					                        // status
 | 
				
			||||||
 | 
					                        updates = statusServiceInterface.update(updates);
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
		return firmwareStatus;
 | 
					
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					                LOG.info("Firmware upgrade state is {}", fwUpgradeState);
 | 
				
			||||||
 | 
					                EquipmentUpgradeStatusData firmwareStatusData = (EquipmentUpgradeStatusData) firmwareStatus
 | 
				
			||||||
 | 
					                        .getDetails();
 | 
				
			||||||
 | 
					                if (reportedFwImageName != null) {
 | 
				
			||||||
 | 
					                    if (!firmwareStatusData.getActiveSwVersion().equals(reportedFwImageName)
 | 
				
			||||||
 | 
					                            || !firmwareStatusData.getUpgradeState().equals(fwUpgradeState)
 | 
				
			||||||
 | 
					                            || !firmwareStatusData.getAlternateSwVersion().equals(reportedAltFwImageName)) {
 | 
				
			||||||
 | 
					                        firmwareStatusData.setActiveSwVersion(reportedFwImageName);
 | 
				
			||||||
 | 
					                        firmwareStatusData.setAlternateSwVersion(reportedAltFwImageName);
 | 
				
			||||||
 | 
					                        firmwareStatusData.setUpgradeState(fwUpgradeState, fwUpgradeFailureReason);
 | 
				
			||||||
 | 
					                        firmwareStatus.setDetails(firmwareStatusData);
 | 
				
			||||||
 | 
					                        updates.add(firmwareStatus);
 | 
				
			||||||
 | 
					                        updates = statusServiceInterface.update(updates);
 | 
				
			||||||
 | 
					                    } else {
 | 
				
			||||||
 | 
					                        if (!updates.isEmpty()) {// may be some updates from
 | 
				
			||||||
 | 
					                                                 // protocol
 | 
				
			||||||
 | 
					                            // status
 | 
				
			||||||
 | 
					                            updates = statusServiceInterface.update(updates);
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                } else {
 | 
				
			||||||
 | 
					                    if (!updates.isEmpty()) {// may be some updates from
 | 
				
			||||||
 | 
					                                             // protocol
 | 
				
			||||||
 | 
					                        // status
 | 
				
			||||||
 | 
					                        updates = statusServiceInterface.update(updates);
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
@@ -1633,6 +1697,11 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
            return;
 | 
					            return;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (equipmentId < 0L) {
 | 
				
			||||||
 | 
					            LOG.debug("wifiVIFStateDbTableDelete Cannot get equipmentId {} for session {}", equipmentId);
 | 
				
			||||||
 | 
					            return;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Status activeBssidsStatus = statusServiceInterface.getOrNull(customerId, equipmentId,
 | 
					        Status activeBssidsStatus = statusServiceInterface.getOrNull(customerId, equipmentId,
 | 
				
			||||||
                StatusDataType.ACTIVE_BSSIDS);
 | 
					                StatusDataType.ACTIVE_BSSIDS);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1667,7 +1736,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (bssidList != null) bssidList.removeAll(toBeDeleted);
 | 
					        bssidList.removeAll(toBeDeleted);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        statusDetails.setActiveBSSIDs(bssidList);
 | 
					        statusDetails.setActiveBSSIDs(bssidList);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1704,14 +1773,13 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
                new MacAddress(deletedClientMac));
 | 
					                new MacAddress(deletedClientMac));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (client != null) {
 | 
					        if (client != null) {
 | 
				
			||||||
		    if (clientSession != null && clientSession.getDetails() != null && clientSession.getDetails().getAssociationState() != null) {
 | 
					            if (clientSession != null) {
 | 
				
			||||||
                if (!clientSession.getDetails().getAssociationState().equals(AssociationState.Disconnected)) {
 | 
					                if (!clientSession.getDetails().getAssociationState().equals(AssociationState.Disconnected)) {
 | 
				
			||||||
                    clientSession.getDetails().setAssociationState(AssociationState.Disconnected);
 | 
					                    clientSession.getDetails().setAssociationState(AssociationState.Disconnected);
 | 
				
			||||||
                    clientSession = clientServiceInterface.updateSession(clientSession);
 | 
					                    clientSession = clientServiceInterface.updateSession(clientSession);
 | 
				
			||||||
                    LOG.info("Session {} for client {} is now disconnected.", clientSession, client.getMacAddress());
 | 
					                    LOG.info("Session {} for client {} is now disconnected.", clientSession, client.getMacAddress());
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
            if (clientSession != null) {
 | 
					            if (clientSession != null) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1722,6 +1790,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
@@ -1746,7 +1815,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
            return;
 | 
					            return;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Equipment ce = equipmentServiceInterface.getByInventoryIdOrNull(apId);
 | 
					        Equipment ce = getCustomerEquipment(apId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (ce == null) {
 | 
					        if (ce == null) {
 | 
				
			||||||
            LOG.debug("updateDhcpIpClientFingerprints::Cannot get Equipment for AP {}", apId);
 | 
					            LOG.debug("updateDhcpIpClientFingerprints::Cannot get Equipment for AP {}", apId);
 | 
				
			||||||
@@ -1776,6 +1845,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
                } else if (clientMacAddress.equals(equipmentServiceInterface.get(equipmentId).getBaseMacAddress())) {
 | 
					                } else if (clientMacAddress.equals(equipmentServiceInterface.get(equipmentId).getBaseMacAddress())) {
 | 
				
			||||||
                    LOG.info("Not a client device {} ", dhcpLeasedIps);
 | 
					                    LOG.info("Not a client device {} ", dhcpLeasedIps);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    // In case somehow this equipment has accidentally been
 | 
					                    // In case somehow this equipment has accidentally been
 | 
				
			||||||
                    // tagged as a client, remove
 | 
					                    // tagged as a client, remove
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1789,6 +1859,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                    LOG.info("Deleting invalid client {}", clientServiceInterface.delete(customerId, clientMacAddress));
 | 
					                    LOG.info("Deleting invalid client {}", clientServiceInterface.delete(customerId, clientMacAddress));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    continue;
 | 
					                    continue;
 | 
				
			||||||
                } else {
 | 
					                } else {
 | 
				
			||||||
                    LOG.info("Client {} already exists on the cloud, update client values", dhcpLeasedIps);
 | 
					                    LOG.info("Client {} already exists on the cloud, update client values", dhcpLeasedIps);
 | 
				
			||||||
@@ -1868,6 +1939,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                    LOG.info("Not a client device {} ", dhcpLeasedIps);
 | 
					                    LOG.info("Not a client device {} ", dhcpLeasedIps);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    // In case somehow this equipment has accidentally been
 | 
					                    // In case somehow this equipment has accidentally been
 | 
				
			||||||
                    // tagged as a client, remove
 | 
					                    // tagged as a client, remove
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1881,10 +1953,12 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                    LOG.info("Deleting invalid client {}", clientServiceInterface.delete(customerId, clientMacAddress));
 | 
					                    LOG.info("Deleting invalid client {}", clientServiceInterface.delete(customerId, clientMacAddress));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    continue;
 | 
					                    continue;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                } else {
 | 
					                } else {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    ClientInfoDetails clientDetails = (ClientInfoDetails) client.getDetails();
 | 
					                    ClientInfoDetails clientDetails = (ClientInfoDetails) client.getDetails();
 | 
				
			||||||
                    if (dhcpLeasedIps.containsKey("hostname")) {
 | 
					                    if (dhcpLeasedIps.containsKey("hostname")) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -30,7 +30,6 @@ import com.telecominfraproject.wlan.client.session.models.ClientSessionDetails;
 | 
				
			|||||||
import com.telecominfraproject.wlan.client.session.models.ClientSessionMetricDetails;
 | 
					import com.telecominfraproject.wlan.client.session.models.ClientSessionMetricDetails;
 | 
				
			||||||
import com.telecominfraproject.wlan.cloudeventdispatcher.CloudEventDispatcherInterface;
 | 
					import com.telecominfraproject.wlan.cloudeventdispatcher.CloudEventDispatcherInterface;
 | 
				
			||||||
import com.telecominfraproject.wlan.core.model.equipment.ChannelBandwidth;
 | 
					import com.telecominfraproject.wlan.core.model.equipment.ChannelBandwidth;
 | 
				
			||||||
import com.telecominfraproject.wlan.core.model.equipment.ChannelHopReason;
 | 
					 | 
				
			||||||
import com.telecominfraproject.wlan.core.model.equipment.DetectedAuthMode;
 | 
					import com.telecominfraproject.wlan.core.model.equipment.DetectedAuthMode;
 | 
				
			||||||
import com.telecominfraproject.wlan.core.model.equipment.MacAddress;
 | 
					import com.telecominfraproject.wlan.core.model.equipment.MacAddress;
 | 
				
			||||||
import com.telecominfraproject.wlan.core.model.equipment.NeighborScanPacketType;
 | 
					import com.telecominfraproject.wlan.core.model.equipment.NeighborScanPacketType;
 | 
				
			||||||
@@ -40,9 +39,8 @@ import com.telecominfraproject.wlan.core.model.equipment.SecurityType;
 | 
				
			|||||||
import com.telecominfraproject.wlan.core.model.equipment.WiFiSessionUtility;
 | 
					import com.telecominfraproject.wlan.core.model.equipment.WiFiSessionUtility;
 | 
				
			||||||
import com.telecominfraproject.wlan.core.model.utils.DecibelUtils;
 | 
					import com.telecominfraproject.wlan.core.model.utils.DecibelUtils;
 | 
				
			||||||
import com.telecominfraproject.wlan.equipment.EquipmentServiceInterface;
 | 
					import com.telecominfraproject.wlan.equipment.EquipmentServiceInterface;
 | 
				
			||||||
import com.telecominfraproject.wlan.equipment.models.ApElementConfiguration;
 | 
					 | 
				
			||||||
import com.telecominfraproject.wlan.equipment.models.Equipment;
 | 
					import com.telecominfraproject.wlan.equipment.models.Equipment;
 | 
				
			||||||
import com.telecominfraproject.wlan.opensync.util.OvsdbToWlanCloudTypeMappingUtility;
 | 
					import com.telecominfraproject.wlan.opensync.ovsdb.dao.utilities.OvsdbToWlanCloudTypeMappingUtility;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.ProfileServiceInterface;
 | 
					import com.telecominfraproject.wlan.profile.ProfileServiceInterface;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.models.Profile;
 | 
					import com.telecominfraproject.wlan.profile.models.Profile;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.models.ProfileContainer;
 | 
					import com.telecominfraproject.wlan.profile.models.ProfileContainer;
 | 
				
			||||||
@@ -78,7 +76,6 @@ import com.telecominfraproject.wlan.status.models.Status;
 | 
				
			|||||||
import com.telecominfraproject.wlan.status.models.StatusCode;
 | 
					import com.telecominfraproject.wlan.status.models.StatusCode;
 | 
				
			||||||
import com.telecominfraproject.wlan.status.models.StatusDataType;
 | 
					import com.telecominfraproject.wlan.status.models.StatusDataType;
 | 
				
			||||||
import com.telecominfraproject.wlan.status.network.models.NetworkAdminStatusData;
 | 
					import com.telecominfraproject.wlan.status.network.models.NetworkAdminStatusData;
 | 
				
			||||||
import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeChannelHopEvent;
 | 
					 | 
				
			||||||
import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeEventType;
 | 
					import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeEventType;
 | 
				
			||||||
import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeSipCallReportEvent;
 | 
					import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeSipCallReportEvent;
 | 
				
			||||||
import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeSipCallStartEvent;
 | 
					import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeSipCallStartEvent;
 | 
				
			||||||
@@ -95,7 +92,6 @@ import sts.OpensyncStats.AssocType;
 | 
				
			|||||||
import sts.OpensyncStats.CallReport;
 | 
					import sts.OpensyncStats.CallReport;
 | 
				
			||||||
import sts.OpensyncStats.CallStart;
 | 
					import sts.OpensyncStats.CallStart;
 | 
				
			||||||
import sts.OpensyncStats.CallStop;
 | 
					import sts.OpensyncStats.CallStop;
 | 
				
			||||||
import sts.OpensyncStats.ChannelSwitchReason;
 | 
					 | 
				
			||||||
import sts.OpensyncStats.Client;
 | 
					import sts.OpensyncStats.Client;
 | 
				
			||||||
import sts.OpensyncStats.ClientReport;
 | 
					import sts.OpensyncStats.ClientReport;
 | 
				
			||||||
import sts.OpensyncStats.DNSProbeMetric;
 | 
					import sts.OpensyncStats.DNSProbeMetric;
 | 
				
			||||||
@@ -154,7 +150,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
    void processMqttMessage(String topic, WCStatsReport wcStatsReport) {
 | 
					    void processMqttMessage(String topic, WCStatsReport wcStatsReport) {
 | 
				
			||||||
        LOG.info("Received WCStatsReport {}", wcStatsReport.toString());
 | 
					        LOG.info("Received WCStatsReport {}", wcStatsReport.toString());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        LOG.debug("Received report on topic {}", topic);
 | 
					        LOG.info("Received report on topic {}", topic);
 | 
				
			||||||
        int customerId = extractCustomerIdFromTopic(topic);
 | 
					        int customerId = extractCustomerIdFromTopic(topic);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        long equipmentId = extractEquipmentIdFromTopic(topic);
 | 
					        long equipmentId = extractEquipmentIdFromTopic(topic);
 | 
				
			||||||
@@ -249,7 +245,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (!metricRecordList.isEmpty()) {
 | 
					        if (!metricRecordList.isEmpty()) {
 | 
				
			||||||
            LOG.debug("Publishing Metrics {}", metricRecordList);
 | 
					            LOG.info("Publishing Metrics {}", metricRecordList);
 | 
				
			||||||
            equipmentMetricsCollectorInterface.publishMetrics(metricRecordList);
 | 
					            equipmentMetricsCollectorInterface.publishMetrics(metricRecordList);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -300,7 +296,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            for (sts.OpensyncStats.EventReport.ClientSession apEventClientSession : e.getClientSessionList()) {
 | 
					            for (sts.OpensyncStats.EventReport.ClientSession apEventClientSession : e.getClientSessionList()) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                LOG.debug("Processing EventReport::ClientSession {}", apEventClientSession);
 | 
					                LOG.info("Processing EventReport::ClientSession {}", apEventClientSession);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                processClientConnectEvent(customerId, equipmentId, locationId, e, apEventClientSession);
 | 
					                processClientConnectEvent(customerId, equipmentId, locationId, e, apEventClientSession);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -322,74 +318,10 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            publishChannelHopEvents(customerId, equipmentId, e);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private void publishChannelHopEvents(int customerId, long equipmentId, EventReport e) {
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        LOG.info("publishChannelHopEvents for customerId {} equipmentId {}");
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        List<SystemEvent> events = new ArrayList<>();
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        for (sts.OpensyncStats.EventReport.ChannelSwitchEvent channelSwitchEvent : e.getChannelSwitchList()) {
 | 
					 | 
				
			||||||
            Equipment equipment = equipmentServiceInterface.getOrNull(equipmentId);
 | 
					 | 
				
			||||||
            if (equipment == null)
 | 
					 | 
				
			||||||
                continue;
 | 
					 | 
				
			||||||
            RadioType radioType = null;
 | 
					 | 
				
			||||||
            Long timestamp = null;
 | 
					 | 
				
			||||||
            ChannelHopReason reason = null;
 | 
					 | 
				
			||||||
            Integer channel = null;
 | 
					 | 
				
			||||||
            if (channelSwitchEvent.hasBand()) {                   
 | 
					 | 
				
			||||||
               radioType = OvsdbToWlanCloudTypeMappingUtility
 | 
					 | 
				
			||||||
                .getRadioTypeFromOpensyncStatsRadioBandType(channelSwitchEvent.getBand());            
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            if (RadioType.isUnsupported(radioType)) {
 | 
					 | 
				
			||||||
                LOG.warn("publishChannelHopEvents:RadioType {} is unsupported, cannot send RealTimeChannelHopEvent for {}", radioType, channelSwitchEvent);
 | 
					 | 
				
			||||||
                continue;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            if (channelSwitchEvent.hasTimestampMs()) {
 | 
					 | 
				
			||||||
                timestamp = channelSwitchEvent.getTimestampMs();
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            if (timestamp == null) {
 | 
					 | 
				
			||||||
                LOG.warn("publishChannelHopEvents:timestamp is null, cannot send RealTimeChannelHopEvent for {}", channelSwitchEvent);
 | 
					 | 
				
			||||||
                continue;  
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            
 | 
					 | 
				
			||||||
            if (channelSwitchEvent.hasReason()) {
 | 
					 | 
				
			||||||
                if (channelSwitchEvent.getReason().equals(ChannelSwitchReason.high_interference)) reason = ChannelHopReason.HighInterference;
 | 
					 | 
				
			||||||
                else if (channelSwitchEvent.getReason().equals(ChannelSwitchReason.radar_detected)) reason = ChannelHopReason.RadarDetected;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            if (ChannelHopReason.isUnsupported(reason)) {
 | 
					 | 
				
			||||||
                LOG.warn("publishChannelHopEvents:reason {} is unsupported, cannot send RealTimeChannelHopEvent for {}", channelSwitchEvent.getReason(), channelSwitchEvent);
 | 
					 | 
				
			||||||
                continue; 
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            if (channelSwitchEvent.hasChannel()) {
 | 
					 | 
				
			||||||
                channel = channelSwitchEvent.getChannel();
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            if (channel == null) {
 | 
					 | 
				
			||||||
                LOG.warn("publishChannelHopEvents:channel is null, cannot send RealTimeChannelHopEvent for {}", channelSwitchEvent);
 | 
					 | 
				
			||||||
                continue; 
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            RealTimeChannelHopEvent channelHopEvent = new RealTimeChannelHopEvent(RealTimeEventType.Channel_Hop, customerId, equipmentId, radioType, channel, ((ApElementConfiguration)equipment.getDetails()).getRadioMap().get(radioType).getChannelNumber(), reason, timestamp);
 | 
					 | 
				
			||||||
            
 | 
					 | 
				
			||||||
            events.add(channelHopEvent);
 | 
					 | 
				
			||||||
            
 | 
					 | 
				
			||||||
            LOG.debug("publishChannelHopEvents:Adding ChannelHopEvent to bulk list {}", channelHopEvent);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (events.size() > 0) {
 | 
					 | 
				
			||||||
            LOG.info("publishChannelHopEvents:publishEventsBulk: {}", events);
 | 
					 | 
				
			||||||
            equipmentMetricsCollectorInterface.publishEventsBulk(events);
 | 
					 | 
				
			||||||
        } else {
 | 
					 | 
				
			||||||
            LOG.info("publishChannelHopEvents:No ChannelHopEvents in report");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    protected void processClientConnectEvent(int customerId, long equipmentId, long locationId, EventReport e,
 | 
					    protected void processClientConnectEvent(int customerId, long equipmentId, long locationId, EventReport e,
 | 
				
			||||||
            sts.OpensyncStats.EventReport.ClientSession apEventClientSession) {
 | 
					            sts.OpensyncStats.EventReport.ClientSession apEventClientSession) {
 | 
				
			||||||
        for (ClientConnectEvent clientConnectEvent : apEventClientSession.getClientConnectEventList()) {
 | 
					        for (ClientConnectEvent clientConnectEvent : apEventClientSession.getClientConnectEventList()) {
 | 
				
			||||||
@@ -601,7 +533,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
                clientSession = clientServiceInterface.updateSession(clientSession);
 | 
					                clientSession = clientServiceInterface.updateSession(clientSession);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                LOG.warn("Cannot update client or client session when no client mac address is present");
 | 
					                LOG.info("Cannot update client or client session when no client mac address is present");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -661,7 +593,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
                clientSession = clientServiceInterface.updateSession(clientSession);
 | 
					                clientSession = clientServiceInterface.updateSession(clientSession);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                LOG.warn("Cannot update client or client session when no client mac address is present");
 | 
					                LOG.info("Cannot update client or client session when no client mac address is present");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -734,7 +666,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
                clientSession = clientServiceInterface.updateSession(clientSession);
 | 
					                clientSession = clientServiceInterface.updateSession(clientSession);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                LOG.warn("Cannot update client or client session when no client mac address is present");
 | 
					                LOG.info("Cannot update client or client session when no client mac address is present");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -796,7 +728,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
                clientSession = clientServiceInterface.updateSession(clientSession);
 | 
					                clientSession = clientServiceInterface.updateSession(clientSession);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                LOG.warn("Cannot update client or client session when no client mac address is present");
 | 
					                LOG.info("Cannot update client or client session when no client mac address is present");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -855,7 +787,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
                clientSession = clientServiceInterface.updateSession(clientSession);
 | 
					                clientSession = clientServiceInterface.updateSession(clientSession);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                LOG.warn("Cannot update client or client session when no client mac address is present");
 | 
					                LOG.info("Cannot update client or client session when no client mac address is present");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -904,7 +836,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
                clientSession = clientServiceInterface.updateSession(clientSession);
 | 
					                clientSession = clientServiceInterface.updateSession(clientSession);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                LOG.warn("Cannot update client or client session when no client mac address is present");
 | 
					                LOG.info("Cannot update client or client session when no client mac address is present");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -961,7 +893,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
                clientSession = clientServiceInterface.updateSession(clientSession);
 | 
					                clientSession = clientServiceInterface.updateSession(clientSession);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                LOG.warn("Cannot update client or client session when no clientmac address is present");
 | 
					                LOG.info("Cannot update client or client session when no clientmac address is present");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -1028,7 +960,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
                clientSession = clientServiceInterface.updateSession(clientSession);
 | 
					                clientSession = clientServiceInterface.updateSession(clientSession);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                LOG.warn("Cannot update client or client session when no client mac address is present");
 | 
					                LOG.info("Cannot update client or client session when no client mac address is present");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -1046,7 +978,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
                eventTimestamp = videoVoiceReport.getTimestampMs();
 | 
					                eventTimestamp = videoVoiceReport.getTimestampMs();
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            LOG.debug("Received VideoVoiceReport {} for SIP call", videoVoiceReport);
 | 
					            LOG.info("Received VideoVoiceReport {} for SIP call", videoVoiceReport);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            processRealTImeSipCallReportEvent(customerId, equipmentId, eventTimestamp, eventsList, videoVoiceReport);
 | 
					            processRealTImeSipCallReportEvent(customerId, equipmentId, eventTimestamp, eventsList, videoVoiceReport);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1669,7 +1601,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
            NetworkAdminStatusData statusData = (NetworkAdminStatusData) networkAdminStatus.getDetails();
 | 
					            NetworkAdminStatusData statusData = (NetworkAdminStatusData) networkAdminStatus.getDetails();
 | 
				
			||||||
            
 | 
					            
 | 
				
			||||||
            if (n.getDnsState() == null) {
 | 
					            if (n.getDnsState() == null) {
 | 
				
			||||||
                LOG.debug("No DnsState present in networkProbeMetrics, DnsState and CloudLinkStatus set to 'normal");
 | 
					                LOG.info("No DnsState present in networkProbeMetrics, DnsState and CloudLinkStatus set to 'normal");
 | 
				
			||||||
                statusData.setDnsStatus(StatusCode.normal);
 | 
					                statusData.setDnsStatus(StatusCode.normal);
 | 
				
			||||||
                statusData.setCloudLinkStatus(StatusCode.normal);
 | 
					                statusData.setCloudLinkStatus(StatusCode.normal);
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
@@ -1677,13 +1609,13 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
                statusData.setCloudLinkStatus(stateUpDownErrorToStatusCode(n.getDnsState()));
 | 
					                statusData.setCloudLinkStatus(stateUpDownErrorToStatusCode(n.getDnsState()));
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            if (n.getDhcpState() == null) {
 | 
					            if (n.getDhcpState() == null) {
 | 
				
			||||||
                LOG.debug("No DhcpState present in networkProbeMetrics, set to 'normal");
 | 
					                LOG.info("No DhcpState present in networkProbeMetrics, set to 'normal");
 | 
				
			||||||
                statusData.setDhcpStatus(StatusCode.normal);
 | 
					                statusData.setDhcpStatus(StatusCode.normal);
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                statusData.setDhcpStatus(stateUpDownErrorToStatusCode(n.getDhcpState()));
 | 
					                statusData.setDhcpStatus(stateUpDownErrorToStatusCode(n.getDhcpState()));
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            if (n.getRadiusState() == null) {
 | 
					            if (n.getRadiusState() == null) {
 | 
				
			||||||
                LOG.debug("No RadiusState present in networkProbeMetrics, set to 'normal");
 | 
					                LOG.info("No RadiusState present in networkProbeMetrics, set to 'normal");
 | 
				
			||||||
                statusData.setRadiusStatus(StatusCode.normal);
 | 
					                statusData.setRadiusStatus(StatusCode.normal);
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                statusData.setRadiusStatus(stateUpDownErrorToStatusCode(n.getRadiusState()));
 | 
					                statusData.setRadiusStatus(stateUpDownErrorToStatusCode(n.getRadiusState()));
 | 
				
			||||||
@@ -1693,7 +1625,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            networkAdminStatus = statusServiceInterface.update(networkAdminStatus);
 | 
					            networkAdminStatus = statusServiceInterface.update(networkAdminStatus);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            LOG.debug("Updated NetworkAdminStatus {}", networkAdminStatus);
 | 
					            LOG.info("Updated NetworkAdminStatus {}", networkAdminStatus);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1726,7 +1658,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
                StatusDataType.RADIO_UTILIZATION);
 | 
					                StatusDataType.RADIO_UTILIZATION);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (radioUtilizationStatus == null) {
 | 
					        if (radioUtilizationStatus == null) {
 | 
				
			||||||
            LOG.debug("Create new radioUtilizationStatus");
 | 
					            LOG.info("Create new radioUtilizationStatus");
 | 
				
			||||||
            radioUtilizationStatus = new Status();
 | 
					            radioUtilizationStatus = new Status();
 | 
				
			||||||
            radioUtilizationStatus.setCustomerId(customerId);
 | 
					            radioUtilizationStatus.setCustomerId(customerId);
 | 
				
			||||||
            radioUtilizationStatus.setEquipmentId(equipmentId);
 | 
					            radioUtilizationStatus.setEquipmentId(equipmentId);
 | 
				
			||||||
@@ -1787,6 +1719,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
                if (radiusMetrics.hasLatency()) {
 | 
					                if (radiusMetrics.hasLatency()) {
 | 
				
			||||||
                    networkProbeMetrics.setRadiusLatencyInMs(radiusMetrics.getLatency());
 | 
					                    networkProbeMetrics.setRadiusLatencyInMs(radiusMetrics.getLatency());
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					                if (radiusMetrics.hasRadiusState()) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    if (radiusMetrics.hasRadiusState()) {
 | 
					                    if (radiusMetrics.hasRadiusState()) {
 | 
				
			||||||
                        StateUpDownError radiusState = OvsdbToWlanCloudTypeMappingUtility
 | 
					                        StateUpDownError radiusState = OvsdbToWlanCloudTypeMappingUtility
 | 
				
			||||||
@@ -1796,7 +1729,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (networkProbe.hasVlanProbe()) {
 | 
					            if (networkProbe.hasVlanProbe()) {
 | 
				
			||||||
@@ -1836,7 +1769,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
        eqOsPerformance.setTotalAvailableMemoryKb(deviceReport.getMemUtil().getMemTotal());
 | 
					        eqOsPerformance.setTotalAvailableMemoryKb(deviceReport.getMemUtil().getMemTotal());
 | 
				
			||||||
        status.setDetails(eqOsPerformance);
 | 
					        status.setDetails(eqOsPerformance);
 | 
				
			||||||
        status = statusServiceInterface.update(status);
 | 
					        status = statusServiceInterface.update(status);
 | 
				
			||||||
        LOG.debug("updated status {}", status);
 | 
					        LOG.info("updated status {}", status);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    void populateApClientMetrics(List<ServiceMetric> metricRecordList, Report report, int customerId, long equipmentId,
 | 
					    void populateApClientMetrics(List<ServiceMetric> metricRecordList, Report report, int customerId, long equipmentId,
 | 
				
			||||||
@@ -1847,12 +1780,12 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
            for (Client cl : clReport.getClientListList()) {
 | 
					            for (Client cl : clReport.getClientListList()) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (cl.getMacAddress() == null) {
 | 
					                if (cl.getMacAddress() == null) {
 | 
				
			||||||
                    LOG.debug("No mac address for Client {}, cannot set device mac address for client in ClientMetrics.",
 | 
					                    LOG.info("No mac address for Client {}, cannot set device mac address for client in ClientMetrics.",
 | 
				
			||||||
                            cl);
 | 
					                            cl);
 | 
				
			||||||
                    continue;
 | 
					                    continue;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                LOG.debug("Processing ClientReport from AP {}", cl.getMacAddress());
 | 
					                LOG.info("Processing ClientReport from AP {}", cl.getMacAddress());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                ServiceMetric smr = new ServiceMetric(customerId, equipmentId, new MacAddress(cl.getMacAddress()));
 | 
					                ServiceMetric smr = new ServiceMetric(customerId, equipmentId, new MacAddress(cl.getMacAddress()));
 | 
				
			||||||
                smr.setLocationId(locationId);
 | 
					                smr.setLocationId(locationId);
 | 
				
			||||||
@@ -1876,7 +1809,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
                long sessionId = WiFiSessionUtility.encodeWiFiAssociationId(clReport.getTimestampMs() / 1000L,
 | 
					                long sessionId = WiFiSessionUtility.encodeWiFiAssociationId(clReport.getTimestampMs() / 1000L,
 | 
				
			||||||
                        MacAddress.convertMacStringToLongValue(cl.getMacAddress()));
 | 
					                        MacAddress.convertMacStringToLongValue(cl.getMacAddress()));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                LOG.debug("populateApClientMetrics Session Id {}", sessionId);
 | 
					                LOG.info("populateApClientMetrics Session Id {}", sessionId);
 | 
				
			||||||
                cMetrics.setSessionId(sessionId);
 | 
					                cMetrics.setSessionId(sessionId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (cl.hasStats()) {
 | 
					                if (cl.hasStats()) {
 | 
				
			||||||
@@ -1934,7 +1867,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                LOG.debug("ApClientMetrics Report {}", cMetrics);
 | 
					                LOG.info("ApClientMetrics Report {}", cMetrics);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -2018,18 +1951,18 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
            boolean isReassociation = true;
 | 
					            boolean isReassociation = true;
 | 
				
			||||||
            if (clientInstance == null) {
 | 
					            if (clientInstance == null) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                LOG.debug("Cannot get client instance for {}", client.getMacAddress());
 | 
					                LOG.info("Cannot get client instance for {}", client.getMacAddress());
 | 
				
			||||||
                return null;
 | 
					                return null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            LOG.debug("Client {}", clientInstance);
 | 
					            LOG.info("Client {}", clientInstance);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            ClientSession clientSession = clientServiceInterface.getSessionOrNull(customerId, equipmentId,
 | 
					            ClientSession clientSession = clientServiceInterface.getSessionOrNull(customerId, equipmentId,
 | 
				
			||||||
                    clientInstance.getMacAddress());
 | 
					                    clientInstance.getMacAddress());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (clientSession == null) {
 | 
					            if (clientSession == null) {
 | 
				
			||||||
                LOG.warn("Cannot get client session for {}", clientInstance.getMacAddress());
 | 
					                LOG.info("Cannot get client session for {}", clientInstance.getMacAddress());
 | 
				
			||||||
                return null;
 | 
					                return null;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -2104,7 +2037,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            clientSession = clientServiceInterface.updateSession(clientSession);
 | 
					            clientSession = clientServiceInterface.updateSession(clientSession);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            LOG.debug("Updated client session {}", clientSession);
 | 
					            LOG.info("Updated client session {}", clientSession);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return clientSession;
 | 
					            return clientSession;
 | 
				
			||||||
        } catch (Exception e) {
 | 
					        } catch (Exception e) {
 | 
				
			||||||
@@ -2121,7 +2054,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
        ClientSessionMetricDetails metricDetails = new ClientSessionMetricDetails();
 | 
					        ClientSessionMetricDetails metricDetails = new ClientSessionMetricDetails();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (LOG.isDebugEnabled())
 | 
					        if (LOG.isDebugEnabled())
 | 
				
			||||||
            LOG.debug("Stats: {} DurationMs {}", client.getStats(), client.getDurationMs());
 | 
					            LOG.info("Stats: {} DurationMs {}", client.getStats(), client.getDurationMs());
 | 
				
			||||||
        int rssi = client.getStats().getRssi();
 | 
					        int rssi = client.getStats().getRssi();
 | 
				
			||||||
        metricDetails.setRssi(rssi);
 | 
					        metricDetails.setRssi(rssi);
 | 
				
			||||||
        metricDetails.setRxBytes(client.getStats().getRxBytes());
 | 
					        metricDetails.setRxBytes(client.getStats().getRxBytes());
 | 
				
			||||||
@@ -2139,7 +2072,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
        metricDetails.setRxRateKbps((long) client.getStats().getRxRate());
 | 
					        metricDetails.setRxRateKbps((long) client.getStats().getRxRate());
 | 
				
			||||||
        metricDetails.setTxRateKbps((long) client.getStats().getTxRate());
 | 
					        metricDetails.setTxRateKbps((long) client.getStats().getTxRate());
 | 
				
			||||||
        if (LOG.isDebugEnabled())
 | 
					        if (LOG.isDebugEnabled())
 | 
				
			||||||
            LOG.debug("RxRateKbps {} TxRateKbps {}", metricDetails.getRxRateKbps(), metricDetails.getTxRateKbps());
 | 
					            LOG.info("RxRateKbps {} TxRateKbps {}", metricDetails.getRxRateKbps(), metricDetails.getTxRateKbps());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Throughput, do rate / duration
 | 
					        // Throughput, do rate / duration
 | 
				
			||||||
        if (client.getDurationMs() > 1000) {
 | 
					        if (client.getDurationMs() > 1000) {
 | 
				
			||||||
@@ -2152,15 +2085,15 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
            float txBytesToMb = txBytesFv / 125000F;
 | 
					            float txBytesToMb = txBytesFv / 125000F;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (LOG.isDebugEnabled())
 | 
					            if (LOG.isDebugEnabled())
 | 
				
			||||||
                LOG.debug("rxBytesToMb {} txBytesToMb {} ", rxBytesToMb, txBytesToMb);
 | 
					                LOG.info("rxBytesToMb {} txBytesToMb {} ", rxBytesToMb, txBytesToMb);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            metricDetails.setRxMbps(rxBytesToMb / durationSec);
 | 
					            metricDetails.setRxMbps(rxBytesToMb / durationSec);
 | 
				
			||||||
            metricDetails.setTxMbps(txBytesToMb / durationSec);
 | 
					            metricDetails.setTxMbps(txBytesToMb / durationSec);
 | 
				
			||||||
            if (LOG.isDebugEnabled())
 | 
					            if (LOG.isDebugEnabled())
 | 
				
			||||||
                LOG.debug("RxMbps {} TxMbps {} ", metricDetails.getRxMbps(), metricDetails.getTxMbps());
 | 
					                LOG.info("RxMbps {} TxMbps {} ", metricDetails.getRxMbps(), metricDetails.getTxMbps());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
            LOG.warn("Cannot calculate tx/rx throughput for Client {} based on duration of {} Ms",
 | 
					            LOG.info("Cannot calculate tx/rx throughput for Client {} based on duration of {} Ms",
 | 
				
			||||||
                    client.getMacAddress(), client.getDurationMs());
 | 
					                    client.getMacAddress(), client.getDurationMs());
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        metricDetails.setLastMetricTimestamp(timestamp);
 | 
					        metricDetails.setLastMetricTimestamp(timestamp);
 | 
				
			||||||
@@ -2181,7 +2114,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        for (ClientReport clientReport : report.getClientsList()) {
 | 
					        for (ClientReport clientReport : report.getClientsList()) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            LOG.debug("ClientReport for channel {} RadioBand {}", clientReport.getChannel(), clientReport.getBand());
 | 
					            LOG.info("ClientReport for channel {} RadioBand {}", clientReport.getChannel(), clientReport.getBand());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (smr.getCreatedTimestamp() < clientReport.getTimestampMs()) {
 | 
					            if (smr.getCreatedTimestamp() < clientReport.getTimestampMs()) {
 | 
				
			||||||
                smr.setCreatedTimestamp(clientReport.getTimestampMs());
 | 
					                smr.setCreatedTimestamp(clientReport.getTimestampMs());
 | 
				
			||||||
@@ -2224,7 +2157,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            LOG.debug("Client Report Date is {}", new Date(clientReport.getTimestampMs()));
 | 
					            LOG.info("Client Report Date is {}", new Date(clientReport.getTimestampMs()));
 | 
				
			||||||
            int numConnectedClients = 0;
 | 
					            int numConnectedClients = 0;
 | 
				
			||||||
            for (Client client : clientReport.getClientListList()) {
 | 
					            for (Client client : clientReport.getClientListList()) {
 | 
				
			||||||
                if (client.hasStats()) {
 | 
					                if (client.hasStats()) {
 | 
				
			||||||
@@ -2304,7 +2237,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
                        }
 | 
					                        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    } catch (Exception e) {
 | 
					                    } catch (Exception e) {
 | 
				
			||||||
                        LOG.error("Unabled to update client {}", client, e);
 | 
					                        LOG.info("Unabled to update client {} session {}", client, e);
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
@@ -2334,7 +2267,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        LOG.debug("ApSsidMetrics {}", apSsidMetrics);
 | 
					        LOG.info("ApSsidMetrics {}", apSsidMetrics);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -2380,18 +2313,8 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        ProfileContainer profileContainer = new ProfileContainer(
 | 
					        ProfileContainer profileContainer = new ProfileContainer(
 | 
				
			||||||
                profileServiceInterface.getProfileWithChildren(profileId));
 | 
					                profileServiceInterface.getProfileWithChildren(profileId));
 | 
				
			||||||
        
 | 
					        RfConfiguration rfConfig = (RfConfiguration) profileContainer.getChildOfTypeOrNull(profileId, ProfileType.rf)
 | 
				
			||||||
        Profile rfProfile = profileContainer.getChildOfTypeOrNull(profileId, ProfileType.rf);
 | 
					 | 
				
			||||||
        RfConfiguration rfConfig = null;
 | 
					 | 
				
			||||||
        if (rfProfile != null) {
 | 
					 | 
				
			||||||
         rfConfig = (RfConfiguration) profileContainer.getChildOfTypeOrNull(profileId, ProfileType.rf)
 | 
					 | 
				
			||||||
                .getDetails();
 | 
					                .getDetails();
 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        if (rfConfig == null) {
 | 
					 | 
				
			||||||
            LOG.warn("Cannot get RfConfiguration for customerId {} equipmentId {}", customerId,equipmentId);
 | 
					 | 
				
			||||||
            return;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        for (Survey survey : report.getSurveyList()) {
 | 
					        for (Survey survey : report.getSurveyList()) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -2451,7 +2374,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessor {
 | 
				
			|||||||
            smr.setCreatedTimestamp(survey.getTimestampMs());
 | 
					            smr.setCreatedTimestamp(survey.getTimestampMs());
 | 
				
			||||||
            metricRecordList.add(smr);
 | 
					            metricRecordList.add(smr);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            LOG.debug("ChannelInfoReports {}", channelInfoReports);
 | 
					            LOG.info("ChannelInfoReports {}", channelInfoReports);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -88,6 +88,7 @@ import sts.OpensyncStats.Client;
 | 
				
			|||||||
import sts.OpensyncStats.ClientReport;
 | 
					import sts.OpensyncStats.ClientReport;
 | 
				
			||||||
import sts.OpensyncStats.EventReport;
 | 
					import sts.OpensyncStats.EventReport;
 | 
				
			||||||
import sts.OpensyncStats.EventReport.ClientAssocEvent;
 | 
					import sts.OpensyncStats.EventReport.ClientAssocEvent;
 | 
				
			||||||
 | 
					import sts.OpensyncStats.EventType;
 | 
				
			||||||
import sts.OpensyncStats.RadioBandType;
 | 
					import sts.OpensyncStats.RadioBandType;
 | 
				
			||||||
import sts.OpensyncStats.Report;
 | 
					import sts.OpensyncStats.Report;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -161,6 +162,20 @@ public class OpensyncExternalIntegrationCloudTest {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    public void testGetCustomerEquipment() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Equipment equipment = new Equipment();
 | 
				
			||||||
 | 
					        equipment.setDetails(ApElementConfiguration.createWithDefaults());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(
 | 
				
			||||||
 | 
					                equipmentServiceInterface.getByInventoryIdOrNull(ArgumentMatchers.eq("Test_Client_21P10C68818122")))
 | 
				
			||||||
 | 
					                .thenReturn(equipment);
 | 
				
			||||||
 | 
					        assertNotNull(opensyncExternalIntegrationCloud.getCustomerEquipment("Test_Client_21P10C68818122"));
 | 
				
			||||||
 | 
					        assertNull(opensyncExternalIntegrationCloud.getCustomerEquipment("Test_Client_21P10C68818133"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    public void testApConnected() {
 | 
					    public void testApConnected() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -39,15 +39,10 @@ import com.telecominfraproject.wlan.core.model.equipment.MacAddress;
 | 
				
			|||||||
import com.telecominfraproject.wlan.core.model.equipment.RadioType;
 | 
					import com.telecominfraproject.wlan.core.model.equipment.RadioType;
 | 
				
			||||||
import com.telecominfraproject.wlan.customer.service.CustomerServiceInterface;
 | 
					import com.telecominfraproject.wlan.customer.service.CustomerServiceInterface;
 | 
				
			||||||
import com.telecominfraproject.wlan.equipment.EquipmentServiceInterface;
 | 
					import com.telecominfraproject.wlan.equipment.EquipmentServiceInterface;
 | 
				
			||||||
import com.telecominfraproject.wlan.equipment.models.ApElementConfiguration;
 | 
					 | 
				
			||||||
import com.telecominfraproject.wlan.equipment.models.Equipment;
 | 
					 | 
				
			||||||
import com.telecominfraproject.wlan.firmware.FirmwareServiceInterface;
 | 
					import com.telecominfraproject.wlan.firmware.FirmwareServiceInterface;
 | 
				
			||||||
import com.telecominfraproject.wlan.location.service.LocationServiceInterface;
 | 
					import com.telecominfraproject.wlan.location.service.LocationServiceInterface;
 | 
				
			||||||
import com.telecominfraproject.wlan.opensync.external.integration.controller.OpensyncCloudGatewayController;
 | 
					import com.telecominfraproject.wlan.opensync.external.integration.controller.OpensyncCloudGatewayController;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.ProfileServiceInterface;
 | 
					import com.telecominfraproject.wlan.profile.ProfileServiceInterface;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.models.ProfileContainer;
 | 
					 | 
				
			||||||
import com.telecominfraproject.wlan.profile.models.ProfileType;
 | 
					 | 
				
			||||||
import com.telecominfraproject.wlan.profile.rf.models.RfConfiguration;
 | 
					 | 
				
			||||||
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.ApNodeMetrics;
 | 
				
			||||||
import com.telecominfraproject.wlan.servicemetric.apnode.models.StateUpDownError;
 | 
					import com.telecominfraproject.wlan.servicemetric.apnode.models.StateUpDownError;
 | 
				
			||||||
@@ -58,19 +53,17 @@ import com.telecominfraproject.wlan.status.models.Status;
 | 
				
			|||||||
import com.telecominfraproject.wlan.status.models.StatusDataType;
 | 
					import com.telecominfraproject.wlan.status.models.StatusDataType;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import sts.OpensyncStats.AssocType;
 | 
					import sts.OpensyncStats.AssocType;
 | 
				
			||||||
import sts.OpensyncStats.ChannelSwitchReason;
 | 
					 | 
				
			||||||
import sts.OpensyncStats.Client;
 | 
					import sts.OpensyncStats.Client;
 | 
				
			||||||
import sts.OpensyncStats.ClientReport;
 | 
					import sts.OpensyncStats.ClientReport;
 | 
				
			||||||
import sts.OpensyncStats.DNSProbeMetric;
 | 
					import sts.OpensyncStats.DNSProbeMetric;
 | 
				
			||||||
import sts.OpensyncStats.EventReport;
 | 
					import sts.OpensyncStats.EventReport;
 | 
				
			||||||
import sts.OpensyncStats.EventReport.ChannelSwitchEvent;
 | 
					 | 
				
			||||||
import sts.OpensyncStats.EventReport.ClientAssocEvent;
 | 
					 | 
				
			||||||
import sts.OpensyncStats.NetworkProbe;
 | 
					import sts.OpensyncStats.NetworkProbe;
 | 
				
			||||||
import sts.OpensyncStats.RADIUSMetrics;
 | 
					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.StateUpDown;
 | 
				
			||||||
import sts.OpensyncStats.VLANMetrics;
 | 
					import sts.OpensyncStats.VLANMetrics;
 | 
				
			||||||
 | 
					import sts.OpensyncStats.EventReport.ClientAssocEvent;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@RunWith(SpringRunner.class)
 | 
					@RunWith(SpringRunner.class)
 | 
				
			||||||
@ActiveProfiles(profiles = { "integration_test", })
 | 
					@ActiveProfiles(profiles = { "integration_test", })
 | 
				
			||||||
@@ -171,20 +164,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessorTest {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    public void testProcessMqttMessageStringReport() {
 | 
					    public void testProcessMqttMessageStringReport() {
 | 
				
			||||||
        Equipment equipment = new Equipment();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        equipment.setDetails(ApElementConfiguration.createWithDefaults());
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        equipment.setId(1L);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        Mockito.when(
 | 
					 | 
				
			||||||
                equipmentServiceInterface.getByInventoryIdOrNull(ArgumentMatchers.eq("Test_Client_21P10C68818122")))
 | 
					 | 
				
			||||||
                .thenReturn(equipment);
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        equipment.setProfileId(0L);
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        Mockito.when(equipmentServiceInterface.getOrNull(1L)).thenReturn(equipment);
 | 
					 | 
				
			||||||
        Mockito.when(equipmentServiceInterface.get(1L)).thenReturn(equipment);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Report report = Report.newBuilder().setNodeID("21P10C68818122")
 | 
					        Report report = Report.newBuilder().setNodeID("21P10C68818122")
 | 
				
			||||||
                .addAllClients(getOpensyncStatsClientReportsList())
 | 
					                .addAllClients(getOpensyncStatsClientReportsList())
 | 
				
			||||||
@@ -363,14 +342,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessorTest {
 | 
				
			|||||||
        List<sts.OpensyncStats.EventReport.ClientSession> clientSessionList = new ArrayList<>();
 | 
					        List<sts.OpensyncStats.EventReport.ClientSession> clientSessionList = new ArrayList<>();
 | 
				
			||||||
        clientSessionList.add(clientSessionBuilder.build());
 | 
					        clientSessionList.add(clientSessionBuilder.build());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        sts.OpensyncStats.EventReport.ChannelSwitchEvent.Builder channelSwitchEventBuilder = sts.OpensyncStats.EventReport.ChannelSwitchEvent.getDefaultInstance().toBuilder();
 | 
					 | 
				
			||||||
        channelSwitchEventBuilder.setBand(RadioBandType.BAND5GL).setChannel(40).setReason(ChannelSwitchReason.high_interference).setTimestampMs(System.currentTimeMillis());
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        List<ChannelSwitchEvent> channelSwitchEventList = new ArrayList<>();
 | 
					 | 
				
			||||||
        channelSwitchEventList.add(channelSwitchEventBuilder.build());
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        eventReportBuilder.addAllClientSession(clientSessionList);
 | 
					        eventReportBuilder.addAllClientSession(clientSessionList);
 | 
				
			||||||
        eventReportBuilder.addAllChannelSwitch(channelSwitchEventList);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        eventReportList.add(eventReportBuilder.build());
 | 
					        eventReportList.add(eventReportBuilder.build());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,7 +2,7 @@
 | 
				
			|||||||
  "model_type": "Equipment",
 | 
					  "model_type": "Equipment",
 | 
				
			||||||
  "id": 51,
 | 
					  "id": 51,
 | 
				
			||||||
  "customerId": 2,
 | 
					  "customerId": 2,
 | 
				
			||||||
  "profileId": 12,
 | 
					  "profileId": 5,
 | 
				
			||||||
  "locationId": 8,
 | 
					  "locationId": 8,
 | 
				
			||||||
  "equipmentType": "AP",
 | 
					  "equipmentType": "AP",
 | 
				
			||||||
  "inventoryId": "Test_Client_21P10C68818122",
 | 
					  "inventoryId": "Test_Client_21P10C68818122",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,9 +1,9 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
	"model_type": "Profile",
 | 
						"model_type": "Profile",
 | 
				
			||||||
    "id": 12,
 | 
						"id": 23,
 | 
				
			||||||
	"customerId": 2,
 | 
						"customerId": 2,
 | 
				
			||||||
	"profileType": "equipment_ap",
 | 
						"profileType": "equipment_ap",
 | 
				
			||||||
    "name": "ApProfile-3-radios",
 | 
						"name": "ApProfile-3-radios-passpoint",
 | 
				
			||||||
	"details": {
 | 
						"details": {
 | 
				
			||||||
		"model_type": "ApNetworkConfiguration",
 | 
							"model_type": "ApNetworkConfiguration",
 | 
				
			||||||
		"networkConfigVersion": "AP-1",
 | 
							"networkConfigVersion": "AP-1",
 | 
				
			||||||
@@ -44,13 +44,12 @@
 | 
				
			|||||||
		},
 | 
							},
 | 
				
			||||||
		"profileType": "equipment_ap"
 | 
							"profileType": "equipment_ap"
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
    "createdTimestamp": 1606778369934,
 | 
						"createdTimestamp": 1605711197140,
 | 
				
			||||||
    "lastModifiedTimestamp": 1606778443413,
 | 
						"lastModifiedTimestamp": 1605711197140,
 | 
				
			||||||
	"childProfileIds": [
 | 
						"childProfileIds": [
 | 
				
			||||||
		16,
 | 
							16,
 | 
				
			||||||
        5,
 | 
							21,
 | 
				
			||||||
        10,
 | 
							22,
 | 
				
			||||||
        11,
 | 
					 | 
				
			||||||
		15
 | 
							15
 | 
				
			||||||
	]
 | 
						]
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -1,16 +1,14 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
	{
 | 
					{
 | 
				
			||||||
        "model_type": "Profile",
 | 
					        "model_type": "Profile",
 | 
				
			||||||
        "id": 24,
 | 
					        "id": 24,
 | 
				
			||||||
        "customerId": 2,
 | 
					        "customerId": 2,
 | 
				
			||||||
        "profileType": "passpoint",
 | 
					        "profileType": "passpoint",
 | 
				
			||||||
		"name": "TipWlan-Passpoint-Config",
 | 
					        "name": "TipWlan-Hotspot20-Config",
 | 
				
			||||||
        "details": {
 | 
					        "details": {
 | 
				
			||||||
            "model_type": "PasspointProfile",
 | 
					            "model_type": "PasspointProfile",
 | 
				
			||||||
            "enableInterworkingAndHs20": true,
 | 
					            "enableInterworkingAndHs20": true,
 | 
				
			||||||
            "hessid": null,
 | 
					            "hessid": null,
 | 
				
			||||||
			"passpointAccessNetworkType": "free_public_network",
 | 
					 | 
				
			||||||
			"passpointNetworkAuthenticationType": "acceptance_of_terms_and_conditions",
 | 
					 | 
				
			||||||
            "additionalStepsRequiredForAccess": 0,
 | 
					            "additionalStepsRequiredForAccess": 0,
 | 
				
			||||||
            "deauthRequestTimeout": 0,
 | 
					            "deauthRequestTimeout": 0,
 | 
				
			||||||
            "operatingClass": 0,
 | 
					            "operatingClass": 0,
 | 
				
			||||||
@@ -31,8 +29,8 @@
 | 
				
			|||||||
                {
 | 
					                {
 | 
				
			||||||
                    "model_type": "PasspointConnectionCapability",
 | 
					                    "model_type": "PasspointConnectionCapability",
 | 
				
			||||||
                    "connectionCapabilitiesPortNumber": 8888,
 | 
					                    "connectionCapabilitiesPortNumber": 8888,
 | 
				
			||||||
					"connectionCapabilitiesStatus": "open",
 | 
					                    "connectionCapabilitiesIpProtocol": "TCP",
 | 
				
			||||||
					"connectionCapabilitiesIpProtocol": "TCP"
 | 
					                    "connectionCapabilitiesStatus": "open"
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            "ipAddressTypeAvailability": "public_IPv4_address_available",
 | 
					            "ipAddressTypeAvailability": "public_IPv4_address_available",
 | 
				
			||||||
@@ -45,22 +43,25 @@
 | 
				
			|||||||
            "disableDownstreamGroupAddressedForwarding": false,
 | 
					            "disableDownstreamGroupAddressedForwarding": false,
 | 
				
			||||||
            "enable2pt4GHz": true,
 | 
					            "enable2pt4GHz": true,
 | 
				
			||||||
            "enable5GHz": true,
 | 
					            "enable5GHz": true,
 | 
				
			||||||
			"associatedAccessSsidProfileIds": [
 | 
					            "associatedAccessSsidNames": [
 | 
				
			||||||
				15
 | 
					                "TipWlan-cloud-hotspot-access"
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
			"osuSsidProfileId": 16,
 | 
					            "osuSsidName": "TipWlan-cloud-hotspot-osu",
 | 
				
			||||||
			"passpointOperatorProfileId": 17,
 | 
					            "operatorProfileName": "TipWlan-Hotspot20-Operator",
 | 
				
			||||||
			"passpointVenueProfileId": 18,
 | 
					            "venueProfileName": "TipWlan-Hotspot20-Venue",
 | 
				
			||||||
			"passpointOsuProviderProfileIds": [
 | 
					            "idProviderProfileNames": [
 | 
				
			||||||
				19,
 | 
					                "TipWlan-Hotspot20-OSU-Provider-2",
 | 
				
			||||||
				20
 | 
					                "TipWlan-Hotspot20-OSU-Provider"
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            "accessNetworkType": "free_public_network",
 | 
					            "accessNetworkType": "free_public_network",
 | 
				
			||||||
            "networkAuthenticationType": "acceptance_of_terms_and_conditions",
 | 
					            "networkAuthenticationType": "acceptance_of_terms_and_conditions",
 | 
				
			||||||
 | 
					            "associatedSsids": [
 | 
				
			||||||
 | 
					                "TipWlan-cloud-hotspot-access"
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
            "profileType": "passpoint"
 | 
					            "profileType": "passpoint"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
		"createdTimestamp": 1606778370807,
 | 
					        "createdTimestamp": 1605711223339,
 | 
				
			||||||
		"lastModifiedTimestamp": 1606778370807,
 | 
					        "lastModifiedTimestamp": 1605711223339,
 | 
				
			||||||
        "childProfileIds": [
 | 
					        "childProfileIds": [
 | 
				
			||||||
            17,
 | 
					            17,
 | 
				
			||||||
            18,
 | 
					            18,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,7 +4,7 @@
 | 
				
			|||||||
		"id": 19,
 | 
							"id": 19,
 | 
				
			||||||
		"customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
		"profileType": "passpoint_osu_id_provider",
 | 
							"profileType": "passpoint_osu_id_provider",
 | 
				
			||||||
		"name": "TipWlan-Passpoint-OSU-Provider",
 | 
							"name": "TipWlan-Hotspot20-OSU-Provider",
 | 
				
			||||||
		"details": {
 | 
							"details": {
 | 
				
			||||||
			"model_type": "PasspointOsuProviderProfile",
 | 
								"model_type": "PasspointOsuProviderProfile",
 | 
				
			||||||
			"domainName": "rogers.com",
 | 
								"domainName": "rogers.com",
 | 
				
			||||||
@@ -128,8 +128,8 @@
 | 
				
			|||||||
			],
 | 
								],
 | 
				
			||||||
			"profileType": "passpoint_osu_id_provider"
 | 
								"profileType": "passpoint_osu_id_provider"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		"createdTimestamp": 1606778370345,
 | 
							"createdTimestamp": 1605711165325,
 | 
				
			||||||
		"lastModifiedTimestamp": 1606778370345,
 | 
							"lastModifiedTimestamp": 1605711165325,
 | 
				
			||||||
		"childProfileIds": [
 | 
							"childProfileIds": [
 | 
				
			||||||
		]
 | 
							]
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
@@ -138,7 +138,7 @@
 | 
				
			|||||||
		"id": 20,
 | 
							"id": 20,
 | 
				
			||||||
		"customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
		"profileType": "passpoint_osu_id_provider",
 | 
							"profileType": "passpoint_osu_id_provider",
 | 
				
			||||||
		"name": "TipWlan-Passpoint-OSU-Provider-2",
 | 
							"name": "TipWlan-Hotspot20-OSU-Provider-2",
 | 
				
			||||||
		"details": {
 | 
							"details": {
 | 
				
			||||||
			"model_type": "PasspointOsuProviderProfile",
 | 
								"model_type": "PasspointOsuProviderProfile",
 | 
				
			||||||
			"domainName": "telus.com",
 | 
								"domainName": "telus.com",
 | 
				
			||||||
@@ -262,8 +262,8 @@
 | 
				
			|||||||
			],
 | 
								],
 | 
				
			||||||
			"profileType": "passpoint_osu_id_provider"
 | 
								"profileType": "passpoint_osu_id_provider"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		"createdTimestamp": 1606778370351,
 | 
							"createdTimestamp": 1605711165330,
 | 
				
			||||||
		"lastModifiedTimestamp": 1606778370351,
 | 
							"lastModifiedTimestamp": 1605711165330,
 | 
				
			||||||
		"childProfileIds": [
 | 
							"childProfileIds": [
 | 
				
			||||||
		]
 | 
							]
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,10 +1,10 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		"model_type": "Profile",
 | 
							"model_type": "Profile",
 | 
				
			||||||
		"id": 10,
 | 
							"id": 22,
 | 
				
			||||||
		"customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
		"profileType": "service_metrics_collection_config",
 | 
							"profileType": "service_metrics_collection_config",
 | 
				
			||||||
		"name": "Metrics-Profile-3-Radios",
 | 
							"name": "Metrics-Profile-Passpoint",
 | 
				
			||||||
		"details": {
 | 
							"details": {
 | 
				
			||||||
			"model_type": "ServiceMetricsCollectionConfigProfile",
 | 
								"model_type": "ServiceMetricsCollectionConfigProfile",
 | 
				
			||||||
			"radioTypes": [
 | 
								"radioTypes": [
 | 
				
			||||||
@@ -21,6 +21,30 @@
 | 
				
			|||||||
			],
 | 
								],
 | 
				
			||||||
			"metricConfigParameterMap": {
 | 
								"metricConfigParameterMap": {
 | 
				
			||||||
				"ApNode": [
 | 
									"ApNode": [
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
											"samplingInterval": 30,
 | 
				
			||||||
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
 | 
										},
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
											"samplingInterval": 30,
 | 
				
			||||||
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
 | 
										},
 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
						"samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
@@ -45,42 +69,6 @@
 | 
				
			|||||||
						"serviceMetricDataType": "ApNode",
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
					},
 | 
										},
 | 
				
			||||||
					{
 | 
					 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
					 | 
				
			||||||
						"samplingInterval": 30,
 | 
					 | 
				
			||||||
						"reportingIntervalSeconds": 120,
 | 
					 | 
				
			||||||
						"channelSurveyType": "OFF_CHANNEL",
 | 
					 | 
				
			||||||
						"scanIntervalMillis": 0,
 | 
					 | 
				
			||||||
						"percentUtilizationThreshold": 10,
 | 
					 | 
				
			||||||
						"delayMillisecondsThreshold": 600,
 | 
					 | 
				
			||||||
						"radioType": "is2dot4GHz",
 | 
					 | 
				
			||||||
						"serviceMetricDataType": "ApNode",
 | 
					 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
					 | 
				
			||||||
					},
 | 
					 | 
				
			||||||
					{
 | 
					 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
					 | 
				
			||||||
						"samplingInterval": 30,
 | 
					 | 
				
			||||||
						"reportingIntervalSeconds": 60,
 | 
					 | 
				
			||||||
						"channelSurveyType": "ON_CHANNEL",
 | 
					 | 
				
			||||||
						"scanIntervalMillis": 0,
 | 
					 | 
				
			||||||
						"percentUtilizationThreshold": 10,
 | 
					 | 
				
			||||||
						"delayMillisecondsThreshold": 600,
 | 
					 | 
				
			||||||
						"radioType": "is5GHzU",
 | 
					 | 
				
			||||||
						"serviceMetricDataType": "ApNode",
 | 
					 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
					 | 
				
			||||||
					},
 | 
					 | 
				
			||||||
					{
 | 
					 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
					 | 
				
			||||||
						"samplingInterval": 30,
 | 
					 | 
				
			||||||
						"reportingIntervalSeconds": 60,
 | 
					 | 
				
			||||||
						"channelSurveyType": "ON_CHANNEL",
 | 
					 | 
				
			||||||
						"scanIntervalMillis": 0,
 | 
					 | 
				
			||||||
						"percentUtilizationThreshold": 10,
 | 
					 | 
				
			||||||
						"delayMillisecondsThreshold": 600,
 | 
					 | 
				
			||||||
						"radioType": "is2dot4GHz",
 | 
					 | 
				
			||||||
						"serviceMetricDataType": "ApNode",
 | 
					 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
					 | 
				
			||||||
					},
 | 
					 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
						"samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
@@ -92,16 +80,21 @@
 | 
				
			|||||||
						"radioType": "is5GHzL",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
						"serviceMetricDataType": "ApNode",
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
 | 
										},
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
											"samplingInterval": 30,
 | 
				
			||||||
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
				],
 | 
									],
 | 
				
			||||||
				"ApSsid": [
 | 
									"ApSsid": [
 | 
				
			||||||
					{
 | 
					 | 
				
			||||||
						"model_type": "ServiceMetricRadioConfigParameters",
 | 
					 | 
				
			||||||
						"samplingInterval": 30,
 | 
					 | 
				
			||||||
						"reportingIntervalSeconds": 60,
 | 
					 | 
				
			||||||
						"radioType": "is5GHzU",
 | 
					 | 
				
			||||||
						"serviceMetricDataType": "ApSsid"
 | 
					 | 
				
			||||||
					},
 | 
					 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
						"model_type": "ServiceMetricRadioConfigParameters",
 | 
											"model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
						"samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
@@ -115,6 +108,13 @@
 | 
				
			|||||||
						"reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
						"radioType": "is2dot4GHz",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
						"serviceMetricDataType": "ApSsid"
 | 
											"serviceMetricDataType": "ApSsid"
 | 
				
			||||||
 | 
										},
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											"model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
 | 
											"samplingInterval": 30,
 | 
				
			||||||
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
 | 
											"serviceMetricDataType": "ApSsid"
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
				],
 | 
									],
 | 
				
			||||||
				"Client": [
 | 
									"Client": [
 | 
				
			||||||
@@ -144,12 +144,12 @@
 | 
				
			|||||||
					{
 | 
										{
 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
						"samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
						"reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
						"channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
						"scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
						"percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
						"delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
						"radioType": "is5GHzL",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
						"serviceMetricDataType": "Channel",
 | 
											"serviceMetricDataType": "Channel",
 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
					},
 | 
										},
 | 
				
			||||||
@@ -168,12 +168,12 @@
 | 
				
			|||||||
					{
 | 
										{
 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
						"samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
						"reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
						"channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
						"scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
						"percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
						"delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
						"radioType": "is2dot4GHz",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
						"serviceMetricDataType": "Channel",
 | 
											"serviceMetricDataType": "Channel",
 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
					},
 | 
										},
 | 
				
			||||||
@@ -192,29 +192,41 @@
 | 
				
			|||||||
					{
 | 
										{
 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
						"samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
						"reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
						"channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
						"scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
						"percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
						"delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
						"radioType": "is2dot4GHz",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
						"serviceMetricDataType": "Channel",
 | 
											"serviceMetricDataType": "Channel",
 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
					},
 | 
										},
 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
						"samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
						"reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
						"channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
						"scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
						"percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
						"delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
						"radioType": "is5GHzL",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
						"serviceMetricDataType": "Channel",
 | 
											"serviceMetricDataType": "Channel",
 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
				],
 | 
									],
 | 
				
			||||||
				"Neighbour": [
 | 
									"Neighbour": [
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
											"samplingInterval": 30,
 | 
				
			||||||
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
 | 
											"serviceMetricDataType": "Neighbour",
 | 
				
			||||||
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
 | 
										},
 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
						"samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
@@ -239,6 +251,18 @@
 | 
				
			|||||||
						"serviceMetricDataType": "Neighbour",
 | 
											"serviceMetricDataType": "Neighbour",
 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
					},
 | 
										},
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
											"samplingInterval": 30,
 | 
				
			||||||
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
											"serviceMetricDataType": "Neighbour",
 | 
				
			||||||
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
 | 
										},
 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
						"samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
@@ -262,37 +286,13 @@
 | 
				
			|||||||
						"radioType": "is5GHzU",
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
						"serviceMetricDataType": "Neighbour",
 | 
											"serviceMetricDataType": "Neighbour",
 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
					},
 | 
					 | 
				
			||||||
					{
 | 
					 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
					 | 
				
			||||||
						"samplingInterval": 30,
 | 
					 | 
				
			||||||
						"reportingIntervalSeconds": 120,
 | 
					 | 
				
			||||||
						"channelSurveyType": "OFF_CHANNEL",
 | 
					 | 
				
			||||||
						"scanIntervalMillis": 0,
 | 
					 | 
				
			||||||
						"percentUtilizationThreshold": 10,
 | 
					 | 
				
			||||||
						"delayMillisecondsThreshold": 600,
 | 
					 | 
				
			||||||
						"radioType": "is5GHzL",
 | 
					 | 
				
			||||||
						"serviceMetricDataType": "Neighbour",
 | 
					 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
					 | 
				
			||||||
					},
 | 
					 | 
				
			||||||
					{
 | 
					 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
					 | 
				
			||||||
						"samplingInterval": 30,
 | 
					 | 
				
			||||||
						"reportingIntervalSeconds": 60,
 | 
					 | 
				
			||||||
						"channelSurveyType": "ON_CHANNEL",
 | 
					 | 
				
			||||||
						"scanIntervalMillis": 0,
 | 
					 | 
				
			||||||
						"percentUtilizationThreshold": 10,
 | 
					 | 
				
			||||||
						"delayMillisecondsThreshold": 600,
 | 
					 | 
				
			||||||
						"radioType": "is2dot4GHz",
 | 
					 | 
				
			||||||
						"serviceMetricDataType": "Neighbour",
 | 
					 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
					 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
				]
 | 
									]
 | 
				
			||||||
			},
 | 
								},
 | 
				
			||||||
			"profileType": "service_metrics_collection_config"
 | 
								"profileType": "service_metrics_collection_config"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		"createdTimestamp": 1606778369931,
 | 
							"createdTimestamp": 1605711195528,
 | 
				
			||||||
		"lastModifiedTimestamp": 1606778369931,
 | 
							"lastModifiedTimestamp": 1605711195528,
 | 
				
			||||||
		"childProfileIds": [
 | 
							"childProfileIds": [
 | 
				
			||||||
		]
 | 
							]
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,7 +4,7 @@
 | 
				
			|||||||
		"id": 17,
 | 
							"id": 17,
 | 
				
			||||||
		"customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
		"profileType": "passpoint_operator",
 | 
							"profileType": "passpoint_operator",
 | 
				
			||||||
		"name": "TipWlan-Passpoint-Operator",
 | 
							"name": "TipWlan-Hotspot20-Operator",
 | 
				
			||||||
		"details": {
 | 
							"details": {
 | 
				
			||||||
			"model_type": "PasspointOperatorProfile",
 | 
								"model_type": "PasspointOperatorProfile",
 | 
				
			||||||
			"serverOnlyAuthenticatedL2EncryptionNetwork": false,
 | 
								"serverOnlyAuthenticatedL2EncryptionNetwork": false,
 | 
				
			||||||
@@ -29,8 +29,8 @@
 | 
				
			|||||||
			],
 | 
								],
 | 
				
			||||||
			"profileType": "passpoint_operator"
 | 
								"profileType": "passpoint_operator"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		"createdTimestamp": 1606778369945,
 | 
							"createdTimestamp": 1605711164952,
 | 
				
			||||||
		"lastModifiedTimestamp": 1606778369945,
 | 
							"lastModifiedTimestamp": 1605711164952,
 | 
				
			||||||
		"childProfileIds": [
 | 
							"childProfileIds": [
 | 
				
			||||||
		]
 | 
							]
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,9 +1,9 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
	"model_type": "Profile",
 | 
						"model_type": "Profile",
 | 
				
			||||||
    "id": 11,
 | 
						"id": 21,
 | 
				
			||||||
	"customerId": 2,
 | 
						"customerId": 2,
 | 
				
			||||||
	"profileType": "rf",
 | 
						"profileType": "rf",
 | 
				
			||||||
    "name": "TipWlan-rf",
 | 
						"name": "TipWlan-rf-passpoint",
 | 
				
			||||||
	"details": {
 | 
						"details": {
 | 
				
			||||||
		"model_type": "RfConfiguration",
 | 
							"model_type": "RfConfiguration",
 | 
				
			||||||
		"rfConfigMap": {
 | 
							"rfConfigMap": {
 | 
				
			||||||
@@ -11,7 +11,7 @@
 | 
				
			|||||||
				"model_type": "RfElementConfiguration",
 | 
									"model_type": "RfElementConfiguration",
 | 
				
			||||||
				"radioType": "is5GHz",
 | 
									"radioType": "is5GHz",
 | 
				
			||||||
				"radioMode": "modeAC",
 | 
									"radioMode": "modeAC",
 | 
				
			||||||
                "rf": "TipWlan-rf",
 | 
									"rf": "TipWlan-rf-passpoint",
 | 
				
			||||||
				"beaconInterval": 100,
 | 
									"beaconInterval": 100,
 | 
				
			||||||
				"forceScanDuringVoice": "disabled",
 | 
									"forceScanDuringVoice": "disabled",
 | 
				
			||||||
				"rtsCtsThreshold": 65535,
 | 
									"rtsCtsThreshold": 65535,
 | 
				
			||||||
@@ -58,7 +58,7 @@
 | 
				
			|||||||
				"model_type": "RfElementConfiguration",
 | 
									"model_type": "RfElementConfiguration",
 | 
				
			||||||
				"radioType": "is2dot4GHz",
 | 
									"radioType": "is2dot4GHz",
 | 
				
			||||||
				"radioMode": "modeN",
 | 
									"radioMode": "modeN",
 | 
				
			||||||
                "rf": "TipWlan-rf",
 | 
									"rf": "TipWlan-rf-passpoint",
 | 
				
			||||||
				"beaconInterval": 100,
 | 
									"beaconInterval": 100,
 | 
				
			||||||
				"forceScanDuringVoice": "disabled",
 | 
									"forceScanDuringVoice": "disabled",
 | 
				
			||||||
				"rtsCtsThreshold": 65535,
 | 
									"rtsCtsThreshold": 65535,
 | 
				
			||||||
@@ -105,7 +105,7 @@
 | 
				
			|||||||
				"model_type": "RfElementConfiguration",
 | 
									"model_type": "RfElementConfiguration",
 | 
				
			||||||
				"radioType": "is5GHzU",
 | 
									"radioType": "is5GHzU",
 | 
				
			||||||
				"radioMode": "modeAC",
 | 
									"radioMode": "modeAC",
 | 
				
			||||||
                "rf": "TipWlan-rf",
 | 
									"rf": "TipWlan-rf-passpoint",
 | 
				
			||||||
				"beaconInterval": 100,
 | 
									"beaconInterval": 100,
 | 
				
			||||||
				"forceScanDuringVoice": "disabled",
 | 
									"forceScanDuringVoice": "disabled",
 | 
				
			||||||
				"rtsCtsThreshold": 65535,
 | 
									"rtsCtsThreshold": 65535,
 | 
				
			||||||
@@ -152,7 +152,7 @@
 | 
				
			|||||||
				"model_type": "RfElementConfiguration",
 | 
									"model_type": "RfElementConfiguration",
 | 
				
			||||||
				"radioType": "is5GHzL",
 | 
									"radioType": "is5GHzL",
 | 
				
			||||||
				"radioMode": "modeAC",
 | 
									"radioMode": "modeAC",
 | 
				
			||||||
                "rf": "TipWlan-rf",
 | 
									"rf": "TipWlan-rf-passpoint",
 | 
				
			||||||
				"beaconInterval": 100,
 | 
									"beaconInterval": 100,
 | 
				
			||||||
				"forceScanDuringVoice": "disabled",
 | 
									"forceScanDuringVoice": "disabled",
 | 
				
			||||||
				"rtsCtsThreshold": 65535,
 | 
									"rtsCtsThreshold": 65535,
 | 
				
			||||||
@@ -198,7 +198,8 @@
 | 
				
			|||||||
		},
 | 
							},
 | 
				
			||||||
		"profileType": "rf"
 | 
							"profileType": "rf"
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
    "createdTimestamp": 1606778369933,
 | 
						"createdTimestamp": 1605711191976,
 | 
				
			||||||
    "lastModifiedTimestamp": 1606778369933,
 | 
						"lastModifiedTimestamp": 1605711191976,
 | 
				
			||||||
    "childProfileIds": []
 | 
						"childProfileIds": [
 | 
				
			||||||
 | 
						]
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -1,80 +1,13 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		"model_type": "Profile",
 | 
					 | 
				
			||||||
		"id": 5,
 | 
					 | 
				
			||||||
		"customerId": 2,
 | 
					 | 
				
			||||||
		"profileType": "ssid",
 | 
					 | 
				
			||||||
		"name": "TipWlan-cloud-3-radios",
 | 
					 | 
				
			||||||
		"details": {
 | 
					 | 
				
			||||||
			"model_type": "SsidConfiguration",
 | 
					 | 
				
			||||||
			"ssid": "TipWlan-cloud-3-radios",
 | 
					 | 
				
			||||||
			"appliedRadios": [
 | 
					 | 
				
			||||||
				"is5GHzL",
 | 
					 | 
				
			||||||
				"is2dot4GHz",
 | 
					 | 
				
			||||||
				"is5GHzU"
 | 
					 | 
				
			||||||
			],
 | 
					 | 
				
			||||||
			"ssidAdminState": "enabled",
 | 
					 | 
				
			||||||
			"secureMode": "wpa2OnlyPSK",
 | 
					 | 
				
			||||||
			"vlanId": 1,
 | 
					 | 
				
			||||||
			"keyStr": "openwifi",
 | 
					 | 
				
			||||||
			"broadcastSsid": "enabled",
 | 
					 | 
				
			||||||
			"keyRefresh": 0,
 | 
					 | 
				
			||||||
			"noLocalSubnets": false,
 | 
					 | 
				
			||||||
			"radiusServiceName": null,
 | 
					 | 
				
			||||||
			"radiusAccountingServiceName": null,
 | 
					 | 
				
			||||||
			"radiusAcountingServiceInterval": null,
 | 
					 | 
				
			||||||
			"captivePortalId": null,
 | 
					 | 
				
			||||||
			"bandwidthLimitDown": 0,
 | 
					 | 
				
			||||||
			"bandwidthLimitUp": 0,
 | 
					 | 
				
			||||||
			"clientBandwidthLimitDown": 0,
 | 
					 | 
				
			||||||
			"clientBandwidthLimitUp": 0,
 | 
					 | 
				
			||||||
			"videoTrafficOnly": false,
 | 
					 | 
				
			||||||
			"radioBasedConfigs": {
 | 
					 | 
				
			||||||
				"is5GHzL": {
 | 
					 | 
				
			||||||
					"model_type": "RadioBasedSsidConfiguration",
 | 
					 | 
				
			||||||
					"enable80211r": null,
 | 
					 | 
				
			||||||
					"enable80211k": null,
 | 
					 | 
				
			||||||
					"enable80211v": null
 | 
					 | 
				
			||||||
				},
 | 
					 | 
				
			||||||
				"is2dot4GHz": {
 | 
					 | 
				
			||||||
					"model_type": "RadioBasedSsidConfiguration",
 | 
					 | 
				
			||||||
					"enable80211r": null,
 | 
					 | 
				
			||||||
					"enable80211k": null,
 | 
					 | 
				
			||||||
					"enable80211v": null
 | 
					 | 
				
			||||||
				},
 | 
					 | 
				
			||||||
				"is5GHz": {
 | 
					 | 
				
			||||||
					"model_type": "RadioBasedSsidConfiguration",
 | 
					 | 
				
			||||||
					"enable80211r": null,
 | 
					 | 
				
			||||||
					"enable80211k": null,
 | 
					 | 
				
			||||||
					"enable80211v": null
 | 
					 | 
				
			||||||
				},
 | 
					 | 
				
			||||||
				"is5GHzU": {
 | 
					 | 
				
			||||||
					"model_type": "RadioBasedSsidConfiguration",
 | 
					 | 
				
			||||||
					"enable80211r": null,
 | 
					 | 
				
			||||||
					"enable80211k": null,
 | 
					 | 
				
			||||||
					"enable80211v": null
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
			},
 | 
					 | 
				
			||||||
			"bonjourGatewayProfileId": null,
 | 
					 | 
				
			||||||
			"enable80211w": null,
 | 
					 | 
				
			||||||
			"wepConfig": null,
 | 
					 | 
				
			||||||
			"forwardMode": "BRIDGE",
 | 
					 | 
				
			||||||
			"profileType": "ssid"
 | 
					 | 
				
			||||||
		},
 | 
					 | 
				
			||||||
		"createdTimestamp": 1606778369598,
 | 
					 | 
				
			||||||
		"lastModifiedTimestamp": 1606778369598,
 | 
					 | 
				
			||||||
		"childProfileIds": [
 | 
					 | 
				
			||||||
		]
 | 
					 | 
				
			||||||
	},
 | 
					 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		"model_type": "Profile",
 | 
							"model_type": "Profile",
 | 
				
			||||||
		"id": 15,
 | 
							"id": 15,
 | 
				
			||||||
		"customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
		"profileType": "ssid",
 | 
							"profileType": "ssid",
 | 
				
			||||||
		"name": "TipWlan-cloud-passpoint-access",
 | 
							"name": "TipWlan-cloud-hotspot-access",
 | 
				
			||||||
		"details": {
 | 
							"details": {
 | 
				
			||||||
			"model_type": "SsidConfiguration",
 | 
								"model_type": "SsidConfiguration",
 | 
				
			||||||
			"ssid": "TipWlan-cloud-passpoint-access",
 | 
								"ssid": "TipWlan-cloud-hotspot-access",
 | 
				
			||||||
			"appliedRadios": [
 | 
								"appliedRadios": [
 | 
				
			||||||
				"is5GHzL",
 | 
									"is5GHzL",
 | 
				
			||||||
				"is5GHzU"
 | 
									"is5GHzU"
 | 
				
			||||||
@@ -88,7 +21,6 @@
 | 
				
			|||||||
			"noLocalSubnets": false,
 | 
								"noLocalSubnets": false,
 | 
				
			||||||
			"radiusServiceName": null,
 | 
								"radiusServiceName": null,
 | 
				
			||||||
			"radiusAccountingServiceName": null,
 | 
								"radiusAccountingServiceName": null,
 | 
				
			||||||
			"radiusAcountingServiceInterval": null,
 | 
					 | 
				
			||||||
			"captivePortalId": null,
 | 
								"captivePortalId": null,
 | 
				
			||||||
			"bandwidthLimitDown": 0,
 | 
								"bandwidthLimitDown": 0,
 | 
				
			||||||
			"bandwidthLimitUp": 0,
 | 
								"bandwidthLimitUp": 0,
 | 
				
			||||||
@@ -96,7 +28,7 @@
 | 
				
			|||||||
			"clientBandwidthLimitUp": 0,
 | 
								"clientBandwidthLimitUp": 0,
 | 
				
			||||||
			"videoTrafficOnly": false,
 | 
								"videoTrafficOnly": false,
 | 
				
			||||||
			"radioBasedConfigs": {
 | 
								"radioBasedConfigs": {
 | 
				
			||||||
				"is5GHzL": {
 | 
									"is5GHz": {
 | 
				
			||||||
					"model_type": "RadioBasedSsidConfiguration",
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
					"enable80211r": null,
 | 
										"enable80211r": null,
 | 
				
			||||||
					"enable80211k": null,
 | 
										"enable80211k": null,
 | 
				
			||||||
@@ -108,13 +40,13 @@
 | 
				
			|||||||
					"enable80211k": null,
 | 
										"enable80211k": null,
 | 
				
			||||||
					"enable80211v": null
 | 
										"enable80211v": null
 | 
				
			||||||
				},
 | 
									},
 | 
				
			||||||
				"is5GHz": {
 | 
									"is5GHzU": {
 | 
				
			||||||
					"model_type": "RadioBasedSsidConfiguration",
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
					"enable80211r": null,
 | 
										"enable80211r": null,
 | 
				
			||||||
					"enable80211k": null,
 | 
										"enable80211k": null,
 | 
				
			||||||
					"enable80211v": null
 | 
										"enable80211v": null
 | 
				
			||||||
				},
 | 
									},
 | 
				
			||||||
				"is5GHzU": {
 | 
									"is5GHzL": {
 | 
				
			||||||
					"model_type": "RadioBasedSsidConfiguration",
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
					"enable80211r": null,
 | 
										"enable80211r": null,
 | 
				
			||||||
					"enable80211k": null,
 | 
										"enable80211k": null,
 | 
				
			||||||
@@ -127,8 +59,8 @@
 | 
				
			|||||||
			"forwardMode": null,
 | 
								"forwardMode": null,
 | 
				
			||||||
			"profileType": "ssid"
 | 
								"profileType": "ssid"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		"createdTimestamp": 1606778369943,
 | 
							"createdTimestamp": 1605711164949,
 | 
				
			||||||
		"lastModifiedTimestamp": 1606778370811,
 | 
							"lastModifiedTimestamp": 1605711223372,
 | 
				
			||||||
		"childProfileIds": [
 | 
							"childProfileIds": [
 | 
				
			||||||
			24
 | 
								24
 | 
				
			||||||
		]
 | 
							]
 | 
				
			||||||
@@ -138,10 +70,10 @@
 | 
				
			|||||||
		"id": 16,
 | 
							"id": 16,
 | 
				
			||||||
		"customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
		"profileType": "ssid",
 | 
							"profileType": "ssid",
 | 
				
			||||||
		"name": "TipWlan-cloud-passpoint-osu",
 | 
							"name": "TipWlan-cloud-hotspot-osu",
 | 
				
			||||||
		"details": {
 | 
							"details": {
 | 
				
			||||||
			"model_type": "SsidConfiguration",
 | 
								"model_type": "SsidConfiguration",
 | 
				
			||||||
			"ssid": "TipWlan-cloud-passpoint-osu",
 | 
								"ssid": "TipWlan-cloud-hotspot-osu",
 | 
				
			||||||
			"appliedRadios": [
 | 
								"appliedRadios": [
 | 
				
			||||||
				"is2dot4GHz"
 | 
									"is2dot4GHz"
 | 
				
			||||||
			],
 | 
								],
 | 
				
			||||||
@@ -154,7 +86,6 @@
 | 
				
			|||||||
			"noLocalSubnets": false,
 | 
								"noLocalSubnets": false,
 | 
				
			||||||
			"radiusServiceName": null,
 | 
								"radiusServiceName": null,
 | 
				
			||||||
			"radiusAccountingServiceName": null,
 | 
								"radiusAccountingServiceName": null,
 | 
				
			||||||
			"radiusAcountingServiceInterval": null,
 | 
					 | 
				
			||||||
			"captivePortalId": null,
 | 
								"captivePortalId": null,
 | 
				
			||||||
			"bandwidthLimitDown": 0,
 | 
								"bandwidthLimitDown": 0,
 | 
				
			||||||
			"bandwidthLimitUp": 0,
 | 
								"bandwidthLimitUp": 0,
 | 
				
			||||||
@@ -162,7 +93,7 @@
 | 
				
			|||||||
			"clientBandwidthLimitUp": 0,
 | 
								"clientBandwidthLimitUp": 0,
 | 
				
			||||||
			"videoTrafficOnly": false,
 | 
								"videoTrafficOnly": false,
 | 
				
			||||||
			"radioBasedConfigs": {
 | 
								"radioBasedConfigs": {
 | 
				
			||||||
				"is5GHzL": {
 | 
									"is5GHz": {
 | 
				
			||||||
					"model_type": "RadioBasedSsidConfiguration",
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
					"enable80211r": null,
 | 
										"enable80211r": null,
 | 
				
			||||||
					"enable80211k": null,
 | 
										"enable80211k": null,
 | 
				
			||||||
@@ -174,13 +105,13 @@
 | 
				
			|||||||
					"enable80211k": null,
 | 
										"enable80211k": null,
 | 
				
			||||||
					"enable80211v": null
 | 
										"enable80211v": null
 | 
				
			||||||
				},
 | 
									},
 | 
				
			||||||
				"is5GHz": {
 | 
									"is5GHzU": {
 | 
				
			||||||
					"model_type": "RadioBasedSsidConfiguration",
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
					"enable80211r": null,
 | 
										"enable80211r": null,
 | 
				
			||||||
					"enable80211k": null,
 | 
										"enable80211k": null,
 | 
				
			||||||
					"enable80211v": null
 | 
										"enable80211v": null
 | 
				
			||||||
				},
 | 
									},
 | 
				
			||||||
				"is5GHzU": {
 | 
									"is5GHzL": {
 | 
				
			||||||
					"model_type": "RadioBasedSsidConfiguration",
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
					"enable80211r": null,
 | 
										"enable80211r": null,
 | 
				
			||||||
					"enable80211k": null,
 | 
										"enable80211k": null,
 | 
				
			||||||
@@ -193,8 +124,8 @@
 | 
				
			|||||||
			"forwardMode": null,
 | 
								"forwardMode": null,
 | 
				
			||||||
			"profileType": "ssid"
 | 
								"profileType": "ssid"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		"createdTimestamp": 1606778369944,
 | 
							"createdTimestamp": 1605711164950,
 | 
				
			||||||
		"lastModifiedTimestamp": 1606778370352,
 | 
							"lastModifiedTimestamp": 1605711171732,
 | 
				
			||||||
		"childProfileIds": [
 | 
							"childProfileIds": [
 | 
				
			||||||
			19,
 | 
								19,
 | 
				
			||||||
			20
 | 
								20
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,7 +4,7 @@
 | 
				
			|||||||
		"id": 18,
 | 
							"id": 18,
 | 
				
			||||||
		"customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
		"profileType": "passpoint_venue",
 | 
							"profileType": "passpoint_venue",
 | 
				
			||||||
		"name": "TipWlan-Passpoint-Venue",
 | 
							"name": "TipWlan-Hotspot20-Venue",
 | 
				
			||||||
		"details": {
 | 
							"details": {
 | 
				
			||||||
			"model_type": "PasspointVenueProfile",
 | 
								"model_type": "PasspointVenueProfile",
 | 
				
			||||||
			"venueNameSet": [
 | 
								"venueNameSet": [
 | 
				
			||||||
@@ -28,15 +28,15 @@
 | 
				
			|||||||
				}
 | 
									}
 | 
				
			||||||
			],
 | 
								],
 | 
				
			||||||
			"venueTypeAssignment": {
 | 
								"venueTypeAssignment": {
 | 
				
			||||||
				"model_type": "PasspointVenueTypeAssignment",
 | 
									"model_type": "ProfileVenueTypeAssignment",
 | 
				
			||||||
				"venueDescription": "Research and Development Facility",
 | 
									"venueDescription": "Research and Development Facility",
 | 
				
			||||||
				"venueGroupId": 2,
 | 
									"venueGroupId": 2,
 | 
				
			||||||
				"venueTypeId": 8
 | 
									"venueTypeId": 8
 | 
				
			||||||
			},
 | 
								},
 | 
				
			||||||
			"profileType": "passpoint_venue"
 | 
								"profileType": "passpoint_venue"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		"createdTimestamp": 1606778369950,
 | 
							"createdTimestamp": 1605711164956,
 | 
				
			||||||
		"lastModifiedTimestamp": 1606778369950,
 | 
							"lastModifiedTimestamp": 1605711164956,
 | 
				
			||||||
		"childProfileIds": [
 | 
							"childProfileIds": [
 | 
				
			||||||
		]
 | 
							]
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7,7 +7,6 @@
 | 
				
			|||||||
        <listEntry value="1"/>
 | 
					        <listEntry value="1"/>
 | 
				
			||||||
    </listAttribute>
 | 
					    </listAttribute>
 | 
				
			||||||
    <booleanAttribute key="org.eclipse.jdt.launching.ATTR_EXCLUDE_TEST_CODE" value="true"/>
 | 
					    <booleanAttribute key="org.eclipse.jdt.launching.ATTR_EXCLUDE_TEST_CODE" value="true"/>
 | 
				
			||||||
    <booleanAttribute key="org.eclipse.jdt.launching.ATTR_SHOW_CODEDETAILS_IN_EXCEPTION_MESSAGES" value="true"/>
 | 
					 | 
				
			||||||
    <booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_CLASSPATH_ONLY_JAR" value="false"/>
 | 
					    <booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_CLASSPATH_ONLY_JAR" value="false"/>
 | 
				
			||||||
    <booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
 | 
					    <booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
 | 
				
			||||||
    <listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
 | 
					    <listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,7 +2,7 @@
 | 
				
			|||||||
  "model_type": "Equipment",
 | 
					  "model_type": "Equipment",
 | 
				
			||||||
  "id": 51,
 | 
					  "id": 51,
 | 
				
			||||||
  "customerId": 2,
 | 
					  "customerId": 2,
 | 
				
			||||||
  "profileId": 12,
 | 
					  "profileId": 5,
 | 
				
			||||||
  "locationId": 8,
 | 
					  "locationId": 8,
 | 
				
			||||||
  "equipmentType": "AP",
 | 
					  "equipmentType": "AP",
 | 
				
			||||||
  "inventoryId": "Test_Client_21P10C68818122",
 | 
					  "inventoryId": "Test_Client_21P10C68818122",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,9 +1,9 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
	"model_type": "Profile",
 | 
						"model_type": "Profile",
 | 
				
			||||||
    "id": 12,
 | 
						"id": 23,
 | 
				
			||||||
	"customerId": 2,
 | 
						"customerId": 2,
 | 
				
			||||||
	"profileType": "equipment_ap",
 | 
						"profileType": "equipment_ap",
 | 
				
			||||||
    "name": "ApProfile-3-radios",
 | 
						"name": "ApProfile-3-radios-passpoint",
 | 
				
			||||||
	"details": {
 | 
						"details": {
 | 
				
			||||||
		"model_type": "ApNetworkConfiguration",
 | 
							"model_type": "ApNetworkConfiguration",
 | 
				
			||||||
		"networkConfigVersion": "AP-1",
 | 
							"networkConfigVersion": "AP-1",
 | 
				
			||||||
@@ -44,13 +44,12 @@
 | 
				
			|||||||
		},
 | 
							},
 | 
				
			||||||
		"profileType": "equipment_ap"
 | 
							"profileType": "equipment_ap"
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
    "createdTimestamp": 1606778369934,
 | 
						"createdTimestamp": 1605711197140,
 | 
				
			||||||
    "lastModifiedTimestamp": 1606778443413,
 | 
						"lastModifiedTimestamp": 1605711197140,
 | 
				
			||||||
	"childProfileIds": [
 | 
						"childProfileIds": [
 | 
				
			||||||
		16,
 | 
							16,
 | 
				
			||||||
        5,
 | 
							21,
 | 
				
			||||||
        10,
 | 
							22,
 | 
				
			||||||
        11,
 | 
					 | 
				
			||||||
		15
 | 
							15
 | 
				
			||||||
	]
 | 
						]
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -1,16 +1,14 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
	{
 | 
					{
 | 
				
			||||||
        "model_type": "Profile",
 | 
					        "model_type": "Profile",
 | 
				
			||||||
        "id": 24,
 | 
					        "id": 24,
 | 
				
			||||||
        "customerId": 2,
 | 
					        "customerId": 2,
 | 
				
			||||||
        "profileType": "passpoint",
 | 
					        "profileType": "passpoint",
 | 
				
			||||||
		"name": "TipWlan-Passpoint-Config",
 | 
					        "name": "TipWlan-Hotspot20-Config",
 | 
				
			||||||
        "details": {
 | 
					        "details": {
 | 
				
			||||||
            "model_type": "PasspointProfile",
 | 
					            "model_type": "PasspointProfile",
 | 
				
			||||||
            "enableInterworkingAndHs20": true,
 | 
					            "enableInterworkingAndHs20": true,
 | 
				
			||||||
            "hessid": null,
 | 
					            "hessid": null,
 | 
				
			||||||
			"passpointAccessNetworkType": "free_public_network",
 | 
					 | 
				
			||||||
			"passpointNetworkAuthenticationType": "acceptance_of_terms_and_conditions",
 | 
					 | 
				
			||||||
            "additionalStepsRequiredForAccess": 0,
 | 
					            "additionalStepsRequiredForAccess": 0,
 | 
				
			||||||
            "deauthRequestTimeout": 0,
 | 
					            "deauthRequestTimeout": 0,
 | 
				
			||||||
            "operatingClass": 0,
 | 
					            "operatingClass": 0,
 | 
				
			||||||
@@ -31,8 +29,8 @@
 | 
				
			|||||||
                {
 | 
					                {
 | 
				
			||||||
                    "model_type": "PasspointConnectionCapability",
 | 
					                    "model_type": "PasspointConnectionCapability",
 | 
				
			||||||
                    "connectionCapabilitiesPortNumber": 8888,
 | 
					                    "connectionCapabilitiesPortNumber": 8888,
 | 
				
			||||||
					"connectionCapabilitiesStatus": "open",
 | 
					                    "connectionCapabilitiesIpProtocol": "TCP",
 | 
				
			||||||
					"connectionCapabilitiesIpProtocol": "TCP"
 | 
					                    "connectionCapabilitiesStatus": "open"
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            "ipAddressTypeAvailability": "public_IPv4_address_available",
 | 
					            "ipAddressTypeAvailability": "public_IPv4_address_available",
 | 
				
			||||||
@@ -45,22 +43,25 @@
 | 
				
			|||||||
            "disableDownstreamGroupAddressedForwarding": false,
 | 
					            "disableDownstreamGroupAddressedForwarding": false,
 | 
				
			||||||
            "enable2pt4GHz": true,
 | 
					            "enable2pt4GHz": true,
 | 
				
			||||||
            "enable5GHz": true,
 | 
					            "enable5GHz": true,
 | 
				
			||||||
			"associatedAccessSsidProfileIds": [
 | 
					            "associatedAccessSsidNames": [
 | 
				
			||||||
				15
 | 
					                "TipWlan-cloud-hotspot-access"
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
			"osuSsidProfileId": 16,
 | 
					            "osuSsidName": "TipWlan-cloud-hotspot-osu",
 | 
				
			||||||
			"passpointOperatorProfileId": 17,
 | 
					            "operatorProfileName": "TipWlan-Hotspot20-Operator",
 | 
				
			||||||
			"passpointVenueProfileId": 18,
 | 
					            "venueProfileName": "TipWlan-Hotspot20-Venue",
 | 
				
			||||||
			"passpointOsuProviderProfileIds": [
 | 
					            "idProviderProfileNames": [
 | 
				
			||||||
				19,
 | 
					                "TipWlan-Hotspot20-OSU-Provider-2",
 | 
				
			||||||
				20
 | 
					                "TipWlan-Hotspot20-OSU-Provider"
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            "accessNetworkType": "free_public_network",
 | 
					            "accessNetworkType": "free_public_network",
 | 
				
			||||||
            "networkAuthenticationType": "acceptance_of_terms_and_conditions",
 | 
					            "networkAuthenticationType": "acceptance_of_terms_and_conditions",
 | 
				
			||||||
 | 
					            "associatedSsids": [
 | 
				
			||||||
 | 
					                "TipWlan-cloud-hotspot-access"
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
            "profileType": "passpoint"
 | 
					            "profileType": "passpoint"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
		"createdTimestamp": 1606778370807,
 | 
					        "createdTimestamp": 1605711223339,
 | 
				
			||||||
		"lastModifiedTimestamp": 1606778370807,
 | 
					        "lastModifiedTimestamp": 1605711223339,
 | 
				
			||||||
        "childProfileIds": [
 | 
					        "childProfileIds": [
 | 
				
			||||||
            17,
 | 
					            17,
 | 
				
			||||||
            18,
 | 
					            18,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,7 +4,7 @@
 | 
				
			|||||||
		"id": 19,
 | 
							"id": 19,
 | 
				
			||||||
		"customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
		"profileType": "passpoint_osu_id_provider",
 | 
							"profileType": "passpoint_osu_id_provider",
 | 
				
			||||||
		"name": "TipWlan-Passpoint-OSU-Provider",
 | 
							"name": "TipWlan-Hotspot20-OSU-Provider",
 | 
				
			||||||
		"details": {
 | 
							"details": {
 | 
				
			||||||
			"model_type": "PasspointOsuProviderProfile",
 | 
								"model_type": "PasspointOsuProviderProfile",
 | 
				
			||||||
			"domainName": "rogers.com",
 | 
								"domainName": "rogers.com",
 | 
				
			||||||
@@ -128,8 +128,8 @@
 | 
				
			|||||||
			],
 | 
								],
 | 
				
			||||||
			"profileType": "passpoint_osu_id_provider"
 | 
								"profileType": "passpoint_osu_id_provider"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		"createdTimestamp": 1606778370345,
 | 
							"createdTimestamp": 1605711165325,
 | 
				
			||||||
		"lastModifiedTimestamp": 1606778370345,
 | 
							"lastModifiedTimestamp": 1605711165325,
 | 
				
			||||||
		"childProfileIds": [
 | 
							"childProfileIds": [
 | 
				
			||||||
		]
 | 
							]
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
@@ -138,7 +138,7 @@
 | 
				
			|||||||
		"id": 20,
 | 
							"id": 20,
 | 
				
			||||||
		"customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
		"profileType": "passpoint_osu_id_provider",
 | 
							"profileType": "passpoint_osu_id_provider",
 | 
				
			||||||
		"name": "TipWlan-Passpoint-OSU-Provider-2",
 | 
							"name": "TipWlan-Hotspot20-OSU-Provider-2",
 | 
				
			||||||
		"details": {
 | 
							"details": {
 | 
				
			||||||
			"model_type": "PasspointOsuProviderProfile",
 | 
								"model_type": "PasspointOsuProviderProfile",
 | 
				
			||||||
			"domainName": "telus.com",
 | 
								"domainName": "telus.com",
 | 
				
			||||||
@@ -262,8 +262,8 @@
 | 
				
			|||||||
			],
 | 
								],
 | 
				
			||||||
			"profileType": "passpoint_osu_id_provider"
 | 
								"profileType": "passpoint_osu_id_provider"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		"createdTimestamp": 1606778370351,
 | 
							"createdTimestamp": 1605711165330,
 | 
				
			||||||
		"lastModifiedTimestamp": 1606778370351,
 | 
							"lastModifiedTimestamp": 1605711165330,
 | 
				
			||||||
		"childProfileIds": [
 | 
							"childProfileIds": [
 | 
				
			||||||
		]
 | 
							]
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,10 +1,10 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		"model_type": "Profile",
 | 
							"model_type": "Profile",
 | 
				
			||||||
		"id": 10,
 | 
							"id": 22,
 | 
				
			||||||
		"customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
		"profileType": "service_metrics_collection_config",
 | 
							"profileType": "service_metrics_collection_config",
 | 
				
			||||||
		"name": "Metrics-Profile-3-Radios",
 | 
							"name": "Metrics-Profile-Passpoint",
 | 
				
			||||||
		"details": {
 | 
							"details": {
 | 
				
			||||||
			"model_type": "ServiceMetricsCollectionConfigProfile",
 | 
								"model_type": "ServiceMetricsCollectionConfigProfile",
 | 
				
			||||||
			"radioTypes": [
 | 
								"radioTypes": [
 | 
				
			||||||
@@ -21,6 +21,30 @@
 | 
				
			|||||||
			],
 | 
								],
 | 
				
			||||||
			"metricConfigParameterMap": {
 | 
								"metricConfigParameterMap": {
 | 
				
			||||||
				"ApNode": [
 | 
									"ApNode": [
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
											"samplingInterval": 30,
 | 
				
			||||||
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
 | 
										},
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
											"samplingInterval": 30,
 | 
				
			||||||
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
 | 
										},
 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
						"samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
@@ -45,42 +69,6 @@
 | 
				
			|||||||
						"serviceMetricDataType": "ApNode",
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
					},
 | 
										},
 | 
				
			||||||
					{
 | 
					 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
					 | 
				
			||||||
						"samplingInterval": 30,
 | 
					 | 
				
			||||||
						"reportingIntervalSeconds": 120,
 | 
					 | 
				
			||||||
						"channelSurveyType": "OFF_CHANNEL",
 | 
					 | 
				
			||||||
						"scanIntervalMillis": 0,
 | 
					 | 
				
			||||||
						"percentUtilizationThreshold": 10,
 | 
					 | 
				
			||||||
						"delayMillisecondsThreshold": 600,
 | 
					 | 
				
			||||||
						"radioType": "is2dot4GHz",
 | 
					 | 
				
			||||||
						"serviceMetricDataType": "ApNode",
 | 
					 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
					 | 
				
			||||||
					},
 | 
					 | 
				
			||||||
					{
 | 
					 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
					 | 
				
			||||||
						"samplingInterval": 30,
 | 
					 | 
				
			||||||
						"reportingIntervalSeconds": 60,
 | 
					 | 
				
			||||||
						"channelSurveyType": "ON_CHANNEL",
 | 
					 | 
				
			||||||
						"scanIntervalMillis": 0,
 | 
					 | 
				
			||||||
						"percentUtilizationThreshold": 10,
 | 
					 | 
				
			||||||
						"delayMillisecondsThreshold": 600,
 | 
					 | 
				
			||||||
						"radioType": "is5GHzU",
 | 
					 | 
				
			||||||
						"serviceMetricDataType": "ApNode",
 | 
					 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
					 | 
				
			||||||
					},
 | 
					 | 
				
			||||||
					{
 | 
					 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
					 | 
				
			||||||
						"samplingInterval": 30,
 | 
					 | 
				
			||||||
						"reportingIntervalSeconds": 60,
 | 
					 | 
				
			||||||
						"channelSurveyType": "ON_CHANNEL",
 | 
					 | 
				
			||||||
						"scanIntervalMillis": 0,
 | 
					 | 
				
			||||||
						"percentUtilizationThreshold": 10,
 | 
					 | 
				
			||||||
						"delayMillisecondsThreshold": 600,
 | 
					 | 
				
			||||||
						"radioType": "is2dot4GHz",
 | 
					 | 
				
			||||||
						"serviceMetricDataType": "ApNode",
 | 
					 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
					 | 
				
			||||||
					},
 | 
					 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
						"samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
@@ -92,16 +80,21 @@
 | 
				
			|||||||
						"radioType": "is5GHzL",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
						"serviceMetricDataType": "ApNode",
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
 | 
										},
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
											"samplingInterval": 30,
 | 
				
			||||||
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
				],
 | 
									],
 | 
				
			||||||
				"ApSsid": [
 | 
									"ApSsid": [
 | 
				
			||||||
					{
 | 
					 | 
				
			||||||
						"model_type": "ServiceMetricRadioConfigParameters",
 | 
					 | 
				
			||||||
						"samplingInterval": 30,
 | 
					 | 
				
			||||||
						"reportingIntervalSeconds": 60,
 | 
					 | 
				
			||||||
						"radioType": "is5GHzU",
 | 
					 | 
				
			||||||
						"serviceMetricDataType": "ApSsid"
 | 
					 | 
				
			||||||
					},
 | 
					 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
						"model_type": "ServiceMetricRadioConfigParameters",
 | 
											"model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
						"samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
@@ -115,6 +108,13 @@
 | 
				
			|||||||
						"reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
						"radioType": "is2dot4GHz",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
						"serviceMetricDataType": "ApSsid"
 | 
											"serviceMetricDataType": "ApSsid"
 | 
				
			||||||
 | 
										},
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											"model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
 | 
											"samplingInterval": 30,
 | 
				
			||||||
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
 | 
											"serviceMetricDataType": "ApSsid"
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
				],
 | 
									],
 | 
				
			||||||
				"Client": [
 | 
									"Client": [
 | 
				
			||||||
@@ -144,12 +144,12 @@
 | 
				
			|||||||
					{
 | 
										{
 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
						"samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
						"reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
						"channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
						"scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
						"percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
						"delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
						"radioType": "is5GHzL",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
						"serviceMetricDataType": "Channel",
 | 
											"serviceMetricDataType": "Channel",
 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
					},
 | 
										},
 | 
				
			||||||
@@ -168,12 +168,12 @@
 | 
				
			|||||||
					{
 | 
										{
 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
						"samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
						"reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
						"channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
						"scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
						"percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
						"delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
						"radioType": "is2dot4GHz",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
						"serviceMetricDataType": "Channel",
 | 
											"serviceMetricDataType": "Channel",
 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
					},
 | 
										},
 | 
				
			||||||
@@ -192,29 +192,41 @@
 | 
				
			|||||||
					{
 | 
										{
 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
						"samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
						"reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
						"channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
						"scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
						"percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
						"delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
						"radioType": "is2dot4GHz",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
						"serviceMetricDataType": "Channel",
 | 
											"serviceMetricDataType": "Channel",
 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
					},
 | 
										},
 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
						"samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
						"reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
						"channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
						"scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
						"percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
						"delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
						"radioType": "is5GHzL",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
						"serviceMetricDataType": "Channel",
 | 
											"serviceMetricDataType": "Channel",
 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
				],
 | 
									],
 | 
				
			||||||
				"Neighbour": [
 | 
									"Neighbour": [
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
											"samplingInterval": 30,
 | 
				
			||||||
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
 | 
											"serviceMetricDataType": "Neighbour",
 | 
				
			||||||
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
 | 
										},
 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
						"samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
@@ -239,6 +251,18 @@
 | 
				
			|||||||
						"serviceMetricDataType": "Neighbour",
 | 
											"serviceMetricDataType": "Neighbour",
 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
					},
 | 
										},
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
											"samplingInterval": 30,
 | 
				
			||||||
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
											"serviceMetricDataType": "Neighbour",
 | 
				
			||||||
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
 | 
										},
 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
						"samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
@@ -262,37 +286,13 @@
 | 
				
			|||||||
						"radioType": "is5GHzU",
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
						"serviceMetricDataType": "Neighbour",
 | 
											"serviceMetricDataType": "Neighbour",
 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
					},
 | 
					 | 
				
			||||||
					{
 | 
					 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
					 | 
				
			||||||
						"samplingInterval": 30,
 | 
					 | 
				
			||||||
						"reportingIntervalSeconds": 120,
 | 
					 | 
				
			||||||
						"channelSurveyType": "OFF_CHANNEL",
 | 
					 | 
				
			||||||
						"scanIntervalMillis": 0,
 | 
					 | 
				
			||||||
						"percentUtilizationThreshold": 10,
 | 
					 | 
				
			||||||
						"delayMillisecondsThreshold": 600,
 | 
					 | 
				
			||||||
						"radioType": "is5GHzL",
 | 
					 | 
				
			||||||
						"serviceMetricDataType": "Neighbour",
 | 
					 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
					 | 
				
			||||||
					},
 | 
					 | 
				
			||||||
					{
 | 
					 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
					 | 
				
			||||||
						"samplingInterval": 30,
 | 
					 | 
				
			||||||
						"reportingIntervalSeconds": 60,
 | 
					 | 
				
			||||||
						"channelSurveyType": "ON_CHANNEL",
 | 
					 | 
				
			||||||
						"scanIntervalMillis": 0,
 | 
					 | 
				
			||||||
						"percentUtilizationThreshold": 10,
 | 
					 | 
				
			||||||
						"delayMillisecondsThreshold": 600,
 | 
					 | 
				
			||||||
						"radioType": "is2dot4GHz",
 | 
					 | 
				
			||||||
						"serviceMetricDataType": "Neighbour",
 | 
					 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
					 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
				]
 | 
									]
 | 
				
			||||||
			},
 | 
								},
 | 
				
			||||||
			"profileType": "service_metrics_collection_config"
 | 
								"profileType": "service_metrics_collection_config"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		"createdTimestamp": 1606778369931,
 | 
							"createdTimestamp": 1605711195528,
 | 
				
			||||||
		"lastModifiedTimestamp": 1606778369931,
 | 
							"lastModifiedTimestamp": 1605711195528,
 | 
				
			||||||
		"childProfileIds": [
 | 
							"childProfileIds": [
 | 
				
			||||||
		]
 | 
							]
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,7 +4,7 @@
 | 
				
			|||||||
		"id": 17,
 | 
							"id": 17,
 | 
				
			||||||
		"customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
		"profileType": "passpoint_operator",
 | 
							"profileType": "passpoint_operator",
 | 
				
			||||||
		"name": "TipWlan-Passpoint-Operator",
 | 
							"name": "TipWlan-Hotspot20-Operator",
 | 
				
			||||||
		"details": {
 | 
							"details": {
 | 
				
			||||||
			"model_type": "PasspointOperatorProfile",
 | 
								"model_type": "PasspointOperatorProfile",
 | 
				
			||||||
			"serverOnlyAuthenticatedL2EncryptionNetwork": false,
 | 
								"serverOnlyAuthenticatedL2EncryptionNetwork": false,
 | 
				
			||||||
@@ -29,8 +29,8 @@
 | 
				
			|||||||
			],
 | 
								],
 | 
				
			||||||
			"profileType": "passpoint_operator"
 | 
								"profileType": "passpoint_operator"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		"createdTimestamp": 1606778369945,
 | 
							"createdTimestamp": 1605711164952,
 | 
				
			||||||
		"lastModifiedTimestamp": 1606778369945,
 | 
							"lastModifiedTimestamp": 1605711164952,
 | 
				
			||||||
		"childProfileIds": [
 | 
							"childProfileIds": [
 | 
				
			||||||
		]
 | 
							]
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,9 +1,9 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
	"model_type": "Profile",
 | 
						"model_type": "Profile",
 | 
				
			||||||
    "id": 11,
 | 
						"id": 21,
 | 
				
			||||||
	"customerId": 2,
 | 
						"customerId": 2,
 | 
				
			||||||
	"profileType": "rf",
 | 
						"profileType": "rf",
 | 
				
			||||||
    "name": "TipWlan-rf",
 | 
						"name": "TipWlan-rf-passpoint",
 | 
				
			||||||
	"details": {
 | 
						"details": {
 | 
				
			||||||
		"model_type": "RfConfiguration",
 | 
							"model_type": "RfConfiguration",
 | 
				
			||||||
		"rfConfigMap": {
 | 
							"rfConfigMap": {
 | 
				
			||||||
@@ -11,7 +11,7 @@
 | 
				
			|||||||
				"model_type": "RfElementConfiguration",
 | 
									"model_type": "RfElementConfiguration",
 | 
				
			||||||
				"radioType": "is5GHz",
 | 
									"radioType": "is5GHz",
 | 
				
			||||||
				"radioMode": "modeAC",
 | 
									"radioMode": "modeAC",
 | 
				
			||||||
                "rf": "TipWlan-rf",
 | 
									"rf": "TipWlan-rf-passpoint",
 | 
				
			||||||
				"beaconInterval": 100,
 | 
									"beaconInterval": 100,
 | 
				
			||||||
				"forceScanDuringVoice": "disabled",
 | 
									"forceScanDuringVoice": "disabled",
 | 
				
			||||||
				"rtsCtsThreshold": 65535,
 | 
									"rtsCtsThreshold": 65535,
 | 
				
			||||||
@@ -58,7 +58,7 @@
 | 
				
			|||||||
				"model_type": "RfElementConfiguration",
 | 
									"model_type": "RfElementConfiguration",
 | 
				
			||||||
				"radioType": "is2dot4GHz",
 | 
									"radioType": "is2dot4GHz",
 | 
				
			||||||
				"radioMode": "modeN",
 | 
									"radioMode": "modeN",
 | 
				
			||||||
                "rf": "TipWlan-rf",
 | 
									"rf": "TipWlan-rf-passpoint",
 | 
				
			||||||
				"beaconInterval": 100,
 | 
									"beaconInterval": 100,
 | 
				
			||||||
				"forceScanDuringVoice": "disabled",
 | 
									"forceScanDuringVoice": "disabled",
 | 
				
			||||||
				"rtsCtsThreshold": 65535,
 | 
									"rtsCtsThreshold": 65535,
 | 
				
			||||||
@@ -105,7 +105,7 @@
 | 
				
			|||||||
				"model_type": "RfElementConfiguration",
 | 
									"model_type": "RfElementConfiguration",
 | 
				
			||||||
				"radioType": "is5GHzU",
 | 
									"radioType": "is5GHzU",
 | 
				
			||||||
				"radioMode": "modeAC",
 | 
									"radioMode": "modeAC",
 | 
				
			||||||
                "rf": "TipWlan-rf",
 | 
									"rf": "TipWlan-rf-passpoint",
 | 
				
			||||||
				"beaconInterval": 100,
 | 
									"beaconInterval": 100,
 | 
				
			||||||
				"forceScanDuringVoice": "disabled",
 | 
									"forceScanDuringVoice": "disabled",
 | 
				
			||||||
				"rtsCtsThreshold": 65535,
 | 
									"rtsCtsThreshold": 65535,
 | 
				
			||||||
@@ -152,7 +152,7 @@
 | 
				
			|||||||
				"model_type": "RfElementConfiguration",
 | 
									"model_type": "RfElementConfiguration",
 | 
				
			||||||
				"radioType": "is5GHzL",
 | 
									"radioType": "is5GHzL",
 | 
				
			||||||
				"radioMode": "modeAC",
 | 
									"radioMode": "modeAC",
 | 
				
			||||||
                "rf": "TipWlan-rf",
 | 
									"rf": "TipWlan-rf-passpoint",
 | 
				
			||||||
				"beaconInterval": 100,
 | 
									"beaconInterval": 100,
 | 
				
			||||||
				"forceScanDuringVoice": "disabled",
 | 
									"forceScanDuringVoice": "disabled",
 | 
				
			||||||
				"rtsCtsThreshold": 65535,
 | 
									"rtsCtsThreshold": 65535,
 | 
				
			||||||
@@ -198,7 +198,8 @@
 | 
				
			|||||||
		},
 | 
							},
 | 
				
			||||||
		"profileType": "rf"
 | 
							"profileType": "rf"
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
    "createdTimestamp": 1606778369933,
 | 
						"createdTimestamp": 1605711191976,
 | 
				
			||||||
    "lastModifiedTimestamp": 1606778369933,
 | 
						"lastModifiedTimestamp": 1605711191976,
 | 
				
			||||||
    "childProfileIds": []
 | 
						"childProfileIds": [
 | 
				
			||||||
 | 
						]
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -1,80 +1,13 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		"model_type": "Profile",
 | 
					 | 
				
			||||||
		"id": 5,
 | 
					 | 
				
			||||||
		"customerId": 2,
 | 
					 | 
				
			||||||
		"profileType": "ssid",
 | 
					 | 
				
			||||||
		"name": "TipWlan-cloud-3-radios",
 | 
					 | 
				
			||||||
		"details": {
 | 
					 | 
				
			||||||
			"model_type": "SsidConfiguration",
 | 
					 | 
				
			||||||
			"ssid": "TipWlan-cloud-3-radios",
 | 
					 | 
				
			||||||
			"appliedRadios": [
 | 
					 | 
				
			||||||
				"is5GHzL",
 | 
					 | 
				
			||||||
				"is2dot4GHz",
 | 
					 | 
				
			||||||
				"is5GHzU"
 | 
					 | 
				
			||||||
			],
 | 
					 | 
				
			||||||
			"ssidAdminState": "enabled",
 | 
					 | 
				
			||||||
			"secureMode": "wpa2OnlyPSK",
 | 
					 | 
				
			||||||
			"vlanId": 1,
 | 
					 | 
				
			||||||
			"keyStr": "openwifi",
 | 
					 | 
				
			||||||
			"broadcastSsid": "enabled",
 | 
					 | 
				
			||||||
			"keyRefresh": 0,
 | 
					 | 
				
			||||||
			"noLocalSubnets": false,
 | 
					 | 
				
			||||||
			"radiusServiceName": null,
 | 
					 | 
				
			||||||
			"radiusAccountingServiceName": null,
 | 
					 | 
				
			||||||
			"radiusAcountingServiceInterval": null,
 | 
					 | 
				
			||||||
			"captivePortalId": null,
 | 
					 | 
				
			||||||
			"bandwidthLimitDown": 0,
 | 
					 | 
				
			||||||
			"bandwidthLimitUp": 0,
 | 
					 | 
				
			||||||
			"clientBandwidthLimitDown": 0,
 | 
					 | 
				
			||||||
			"clientBandwidthLimitUp": 0,
 | 
					 | 
				
			||||||
			"videoTrafficOnly": false,
 | 
					 | 
				
			||||||
			"radioBasedConfigs": {
 | 
					 | 
				
			||||||
				"is5GHzL": {
 | 
					 | 
				
			||||||
					"model_type": "RadioBasedSsidConfiguration",
 | 
					 | 
				
			||||||
					"enable80211r": null,
 | 
					 | 
				
			||||||
					"enable80211k": null,
 | 
					 | 
				
			||||||
					"enable80211v": null
 | 
					 | 
				
			||||||
				},
 | 
					 | 
				
			||||||
				"is2dot4GHz": {
 | 
					 | 
				
			||||||
					"model_type": "RadioBasedSsidConfiguration",
 | 
					 | 
				
			||||||
					"enable80211r": null,
 | 
					 | 
				
			||||||
					"enable80211k": null,
 | 
					 | 
				
			||||||
					"enable80211v": null
 | 
					 | 
				
			||||||
				},
 | 
					 | 
				
			||||||
				"is5GHz": {
 | 
					 | 
				
			||||||
					"model_type": "RadioBasedSsidConfiguration",
 | 
					 | 
				
			||||||
					"enable80211r": null,
 | 
					 | 
				
			||||||
					"enable80211k": null,
 | 
					 | 
				
			||||||
					"enable80211v": null
 | 
					 | 
				
			||||||
				},
 | 
					 | 
				
			||||||
				"is5GHzU": {
 | 
					 | 
				
			||||||
					"model_type": "RadioBasedSsidConfiguration",
 | 
					 | 
				
			||||||
					"enable80211r": null,
 | 
					 | 
				
			||||||
					"enable80211k": null,
 | 
					 | 
				
			||||||
					"enable80211v": null
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
			},
 | 
					 | 
				
			||||||
			"bonjourGatewayProfileId": null,
 | 
					 | 
				
			||||||
			"enable80211w": null,
 | 
					 | 
				
			||||||
			"wepConfig": null,
 | 
					 | 
				
			||||||
			"forwardMode": "BRIDGE",
 | 
					 | 
				
			||||||
			"profileType": "ssid"
 | 
					 | 
				
			||||||
		},
 | 
					 | 
				
			||||||
		"createdTimestamp": 1606778369598,
 | 
					 | 
				
			||||||
		"lastModifiedTimestamp": 1606778369598,
 | 
					 | 
				
			||||||
		"childProfileIds": [
 | 
					 | 
				
			||||||
		]
 | 
					 | 
				
			||||||
	},
 | 
					 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		"model_type": "Profile",
 | 
							"model_type": "Profile",
 | 
				
			||||||
		"id": 15,
 | 
							"id": 15,
 | 
				
			||||||
		"customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
		"profileType": "ssid",
 | 
							"profileType": "ssid",
 | 
				
			||||||
		"name": "TipWlan-cloud-passpoint-access",
 | 
							"name": "TipWlan-cloud-hotspot-access",
 | 
				
			||||||
		"details": {
 | 
							"details": {
 | 
				
			||||||
			"model_type": "SsidConfiguration",
 | 
								"model_type": "SsidConfiguration",
 | 
				
			||||||
			"ssid": "TipWlan-cloud-passpoint-access",
 | 
								"ssid": "TipWlan-cloud-hotspot-access",
 | 
				
			||||||
			"appliedRadios": [
 | 
								"appliedRadios": [
 | 
				
			||||||
				"is5GHzL",
 | 
									"is5GHzL",
 | 
				
			||||||
				"is5GHzU"
 | 
									"is5GHzU"
 | 
				
			||||||
@@ -88,7 +21,6 @@
 | 
				
			|||||||
			"noLocalSubnets": false,
 | 
								"noLocalSubnets": false,
 | 
				
			||||||
			"radiusServiceName": null,
 | 
								"radiusServiceName": null,
 | 
				
			||||||
			"radiusAccountingServiceName": null,
 | 
								"radiusAccountingServiceName": null,
 | 
				
			||||||
			"radiusAcountingServiceInterval": null,
 | 
					 | 
				
			||||||
			"captivePortalId": null,
 | 
								"captivePortalId": null,
 | 
				
			||||||
			"bandwidthLimitDown": 0,
 | 
								"bandwidthLimitDown": 0,
 | 
				
			||||||
			"bandwidthLimitUp": 0,
 | 
								"bandwidthLimitUp": 0,
 | 
				
			||||||
@@ -96,7 +28,7 @@
 | 
				
			|||||||
			"clientBandwidthLimitUp": 0,
 | 
								"clientBandwidthLimitUp": 0,
 | 
				
			||||||
			"videoTrafficOnly": false,
 | 
								"videoTrafficOnly": false,
 | 
				
			||||||
			"radioBasedConfigs": {
 | 
								"radioBasedConfigs": {
 | 
				
			||||||
				"is5GHzL": {
 | 
									"is5GHz": {
 | 
				
			||||||
					"model_type": "RadioBasedSsidConfiguration",
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
					"enable80211r": null,
 | 
										"enable80211r": null,
 | 
				
			||||||
					"enable80211k": null,
 | 
										"enable80211k": null,
 | 
				
			||||||
@@ -108,13 +40,13 @@
 | 
				
			|||||||
					"enable80211k": null,
 | 
										"enable80211k": null,
 | 
				
			||||||
					"enable80211v": null
 | 
										"enable80211v": null
 | 
				
			||||||
				},
 | 
									},
 | 
				
			||||||
				"is5GHz": {
 | 
									"is5GHzU": {
 | 
				
			||||||
					"model_type": "RadioBasedSsidConfiguration",
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
					"enable80211r": null,
 | 
										"enable80211r": null,
 | 
				
			||||||
					"enable80211k": null,
 | 
										"enable80211k": null,
 | 
				
			||||||
					"enable80211v": null
 | 
										"enable80211v": null
 | 
				
			||||||
				},
 | 
									},
 | 
				
			||||||
				"is5GHzU": {
 | 
									"is5GHzL": {
 | 
				
			||||||
					"model_type": "RadioBasedSsidConfiguration",
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
					"enable80211r": null,
 | 
										"enable80211r": null,
 | 
				
			||||||
					"enable80211k": null,
 | 
										"enable80211k": null,
 | 
				
			||||||
@@ -127,8 +59,8 @@
 | 
				
			|||||||
			"forwardMode": null,
 | 
								"forwardMode": null,
 | 
				
			||||||
			"profileType": "ssid"
 | 
								"profileType": "ssid"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		"createdTimestamp": 1606778369943,
 | 
							"createdTimestamp": 1605711164949,
 | 
				
			||||||
		"lastModifiedTimestamp": 1606778370811,
 | 
							"lastModifiedTimestamp": 1605711223372,
 | 
				
			||||||
		"childProfileIds": [
 | 
							"childProfileIds": [
 | 
				
			||||||
			24
 | 
								24
 | 
				
			||||||
		]
 | 
							]
 | 
				
			||||||
@@ -138,10 +70,10 @@
 | 
				
			|||||||
		"id": 16,
 | 
							"id": 16,
 | 
				
			||||||
		"customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
		"profileType": "ssid",
 | 
							"profileType": "ssid",
 | 
				
			||||||
		"name": "TipWlan-cloud-passpoint-osu",
 | 
							"name": "TipWlan-cloud-hotspot-osu",
 | 
				
			||||||
		"details": {
 | 
							"details": {
 | 
				
			||||||
			"model_type": "SsidConfiguration",
 | 
								"model_type": "SsidConfiguration",
 | 
				
			||||||
			"ssid": "TipWlan-cloud-passpoint-osu",
 | 
								"ssid": "TipWlan-cloud-hotspot-osu",
 | 
				
			||||||
			"appliedRadios": [
 | 
								"appliedRadios": [
 | 
				
			||||||
				"is2dot4GHz"
 | 
									"is2dot4GHz"
 | 
				
			||||||
			],
 | 
								],
 | 
				
			||||||
@@ -154,7 +86,6 @@
 | 
				
			|||||||
			"noLocalSubnets": false,
 | 
								"noLocalSubnets": false,
 | 
				
			||||||
			"radiusServiceName": null,
 | 
								"radiusServiceName": null,
 | 
				
			||||||
			"radiusAccountingServiceName": null,
 | 
								"radiusAccountingServiceName": null,
 | 
				
			||||||
			"radiusAcountingServiceInterval": null,
 | 
					 | 
				
			||||||
			"captivePortalId": null,
 | 
								"captivePortalId": null,
 | 
				
			||||||
			"bandwidthLimitDown": 0,
 | 
								"bandwidthLimitDown": 0,
 | 
				
			||||||
			"bandwidthLimitUp": 0,
 | 
								"bandwidthLimitUp": 0,
 | 
				
			||||||
@@ -162,7 +93,7 @@
 | 
				
			|||||||
			"clientBandwidthLimitUp": 0,
 | 
								"clientBandwidthLimitUp": 0,
 | 
				
			||||||
			"videoTrafficOnly": false,
 | 
								"videoTrafficOnly": false,
 | 
				
			||||||
			"radioBasedConfigs": {
 | 
								"radioBasedConfigs": {
 | 
				
			||||||
				"is5GHzL": {
 | 
									"is5GHz": {
 | 
				
			||||||
					"model_type": "RadioBasedSsidConfiguration",
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
					"enable80211r": null,
 | 
										"enable80211r": null,
 | 
				
			||||||
					"enable80211k": null,
 | 
										"enable80211k": null,
 | 
				
			||||||
@@ -174,13 +105,13 @@
 | 
				
			|||||||
					"enable80211k": null,
 | 
										"enable80211k": null,
 | 
				
			||||||
					"enable80211v": null
 | 
										"enable80211v": null
 | 
				
			||||||
				},
 | 
									},
 | 
				
			||||||
				"is5GHz": {
 | 
									"is5GHzU": {
 | 
				
			||||||
					"model_type": "RadioBasedSsidConfiguration",
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
					"enable80211r": null,
 | 
										"enable80211r": null,
 | 
				
			||||||
					"enable80211k": null,
 | 
										"enable80211k": null,
 | 
				
			||||||
					"enable80211v": null
 | 
										"enable80211v": null
 | 
				
			||||||
				},
 | 
									},
 | 
				
			||||||
				"is5GHzU": {
 | 
									"is5GHzL": {
 | 
				
			||||||
					"model_type": "RadioBasedSsidConfiguration",
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
					"enable80211r": null,
 | 
										"enable80211r": null,
 | 
				
			||||||
					"enable80211k": null,
 | 
										"enable80211k": null,
 | 
				
			||||||
@@ -193,8 +124,8 @@
 | 
				
			|||||||
			"forwardMode": null,
 | 
								"forwardMode": null,
 | 
				
			||||||
			"profileType": "ssid"
 | 
								"profileType": "ssid"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		"createdTimestamp": 1606778369944,
 | 
							"createdTimestamp": 1605711164950,
 | 
				
			||||||
		"lastModifiedTimestamp": 1606778370352,
 | 
							"lastModifiedTimestamp": 1605711171732,
 | 
				
			||||||
		"childProfileIds": [
 | 
							"childProfileIds": [
 | 
				
			||||||
			19,
 | 
								19,
 | 
				
			||||||
			20
 | 
								20
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,7 +4,7 @@
 | 
				
			|||||||
		"id": 18,
 | 
							"id": 18,
 | 
				
			||||||
		"customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
		"profileType": "passpoint_venue",
 | 
							"profileType": "passpoint_venue",
 | 
				
			||||||
		"name": "TipWlan-Passpoint-Venue",
 | 
							"name": "TipWlan-Hotspot20-Venue",
 | 
				
			||||||
		"details": {
 | 
							"details": {
 | 
				
			||||||
			"model_type": "PasspointVenueProfile",
 | 
								"model_type": "PasspointVenueProfile",
 | 
				
			||||||
			"venueNameSet": [
 | 
								"venueNameSet": [
 | 
				
			||||||
@@ -28,15 +28,15 @@
 | 
				
			|||||||
				}
 | 
									}
 | 
				
			||||||
			],
 | 
								],
 | 
				
			||||||
			"venueTypeAssignment": {
 | 
								"venueTypeAssignment": {
 | 
				
			||||||
				"model_type": "PasspointVenueTypeAssignment",
 | 
									"model_type": "ProfileVenueTypeAssignment",
 | 
				
			||||||
				"venueDescription": "Research and Development Facility",
 | 
									"venueDescription": "Research and Development Facility",
 | 
				
			||||||
				"venueGroupId": 2,
 | 
									"venueGroupId": 2,
 | 
				
			||||||
				"venueTypeId": 8
 | 
									"venueTypeId": 8
 | 
				
			||||||
			},
 | 
								},
 | 
				
			||||||
			"profileType": "passpoint_venue"
 | 
								"profileType": "passpoint_venue"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		"createdTimestamp": 1606778369950,
 | 
							"createdTimestamp": 1605711164956,
 | 
				
			||||||
		"lastModifiedTimestamp": 1606778369950,
 | 
							"lastModifiedTimestamp": 1605711164956,
 | 
				
			||||||
		"childProfileIds": [
 | 
							"childProfileIds": [
 | 
				
			||||||
		]
 | 
							]
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,7 +2,7 @@
 | 
				
			|||||||
  "model_type": "Equipment",
 | 
					  "model_type": "Equipment",
 | 
				
			||||||
  "id": 51,
 | 
					  "id": 51,
 | 
				
			||||||
  "customerId": 2,
 | 
					  "customerId": 2,
 | 
				
			||||||
  "profileId": 12,
 | 
					  "profileId": 5,
 | 
				
			||||||
  "locationId": 8,
 | 
					  "locationId": 8,
 | 
				
			||||||
  "equipmentType": "AP",
 | 
					  "equipmentType": "AP",
 | 
				
			||||||
  "inventoryId": "Test_Client_21P10C68818122",
 | 
					  "inventoryId": "Test_Client_21P10C68818122",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,9 +1,9 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
	"model_type": "Profile",
 | 
						"model_type": "Profile",
 | 
				
			||||||
    "id": 12,
 | 
						"id": 23,
 | 
				
			||||||
	"customerId": 2,
 | 
						"customerId": 2,
 | 
				
			||||||
	"profileType": "equipment_ap",
 | 
						"profileType": "equipment_ap",
 | 
				
			||||||
    "name": "ApProfile-3-radios",
 | 
						"name": "ApProfile-3-radios-passpoint",
 | 
				
			||||||
	"details": {
 | 
						"details": {
 | 
				
			||||||
		"model_type": "ApNetworkConfiguration",
 | 
							"model_type": "ApNetworkConfiguration",
 | 
				
			||||||
		"networkConfigVersion": "AP-1",
 | 
							"networkConfigVersion": "AP-1",
 | 
				
			||||||
@@ -44,13 +44,12 @@
 | 
				
			|||||||
		},
 | 
							},
 | 
				
			||||||
		"profileType": "equipment_ap"
 | 
							"profileType": "equipment_ap"
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
    "createdTimestamp": 1606778369934,
 | 
						"createdTimestamp": 1605711197140,
 | 
				
			||||||
    "lastModifiedTimestamp": 1606778443413,
 | 
						"lastModifiedTimestamp": 1605711197140,
 | 
				
			||||||
	"childProfileIds": [
 | 
						"childProfileIds": [
 | 
				
			||||||
		16,
 | 
							16,
 | 
				
			||||||
        5,
 | 
							21,
 | 
				
			||||||
        10,
 | 
							22,
 | 
				
			||||||
        11,
 | 
					 | 
				
			||||||
		15
 | 
							15
 | 
				
			||||||
	]
 | 
						]
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -1,16 +1,14 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
	{
 | 
					{
 | 
				
			||||||
        "model_type": "Profile",
 | 
					        "model_type": "Profile",
 | 
				
			||||||
        "id": 24,
 | 
					        "id": 24,
 | 
				
			||||||
        "customerId": 2,
 | 
					        "customerId": 2,
 | 
				
			||||||
        "profileType": "passpoint",
 | 
					        "profileType": "passpoint",
 | 
				
			||||||
		"name": "TipWlan-Passpoint-Config",
 | 
					        "name": "TipWlan-Hotspot20-Config",
 | 
				
			||||||
        "details": {
 | 
					        "details": {
 | 
				
			||||||
            "model_type": "PasspointProfile",
 | 
					            "model_type": "PasspointProfile",
 | 
				
			||||||
            "enableInterworkingAndHs20": true,
 | 
					            "enableInterworkingAndHs20": true,
 | 
				
			||||||
            "hessid": null,
 | 
					            "hessid": null,
 | 
				
			||||||
			"passpointAccessNetworkType": "free_public_network",
 | 
					 | 
				
			||||||
			"passpointNetworkAuthenticationType": "acceptance_of_terms_and_conditions",
 | 
					 | 
				
			||||||
            "additionalStepsRequiredForAccess": 0,
 | 
					            "additionalStepsRequiredForAccess": 0,
 | 
				
			||||||
            "deauthRequestTimeout": 0,
 | 
					            "deauthRequestTimeout": 0,
 | 
				
			||||||
            "operatingClass": 0,
 | 
					            "operatingClass": 0,
 | 
				
			||||||
@@ -31,8 +29,8 @@
 | 
				
			|||||||
                {
 | 
					                {
 | 
				
			||||||
                    "model_type": "PasspointConnectionCapability",
 | 
					                    "model_type": "PasspointConnectionCapability",
 | 
				
			||||||
                    "connectionCapabilitiesPortNumber": 8888,
 | 
					                    "connectionCapabilitiesPortNumber": 8888,
 | 
				
			||||||
					"connectionCapabilitiesStatus": "open",
 | 
					                    "connectionCapabilitiesIpProtocol": "TCP",
 | 
				
			||||||
					"connectionCapabilitiesIpProtocol": "TCP"
 | 
					                    "connectionCapabilitiesStatus": "open"
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            "ipAddressTypeAvailability": "public_IPv4_address_available",
 | 
					            "ipAddressTypeAvailability": "public_IPv4_address_available",
 | 
				
			||||||
@@ -45,22 +43,25 @@
 | 
				
			|||||||
            "disableDownstreamGroupAddressedForwarding": false,
 | 
					            "disableDownstreamGroupAddressedForwarding": false,
 | 
				
			||||||
            "enable2pt4GHz": true,
 | 
					            "enable2pt4GHz": true,
 | 
				
			||||||
            "enable5GHz": true,
 | 
					            "enable5GHz": true,
 | 
				
			||||||
			"associatedAccessSsidProfileIds": [
 | 
					            "associatedAccessSsidNames": [
 | 
				
			||||||
				15
 | 
					                "TipWlan-cloud-hotspot-access"
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
			"osuSsidProfileId": 16,
 | 
					            "osuSsidName": "TipWlan-cloud-hotspot-osu",
 | 
				
			||||||
			"passpointOperatorProfileId": 17,
 | 
					            "operatorProfileName": "TipWlan-Hotspot20-Operator",
 | 
				
			||||||
			"passpointVenueProfileId": 18,
 | 
					            "venueProfileName": "TipWlan-Hotspot20-Venue",
 | 
				
			||||||
			"passpointOsuProviderProfileIds": [
 | 
					            "idProviderProfileNames": [
 | 
				
			||||||
				19,
 | 
					                "TipWlan-Hotspot20-OSU-Provider-2",
 | 
				
			||||||
				20
 | 
					                "TipWlan-Hotspot20-OSU-Provider"
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            "accessNetworkType": "free_public_network",
 | 
					            "accessNetworkType": "free_public_network",
 | 
				
			||||||
            "networkAuthenticationType": "acceptance_of_terms_and_conditions",
 | 
					            "networkAuthenticationType": "acceptance_of_terms_and_conditions",
 | 
				
			||||||
 | 
					            "associatedSsids": [
 | 
				
			||||||
 | 
					                "TipWlan-cloud-hotspot-access"
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
            "profileType": "passpoint"
 | 
					            "profileType": "passpoint"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
		"createdTimestamp": 1606778370807,
 | 
					        "createdTimestamp": 1605711223339,
 | 
				
			||||||
		"lastModifiedTimestamp": 1606778370807,
 | 
					        "lastModifiedTimestamp": 1605711223339,
 | 
				
			||||||
        "childProfileIds": [
 | 
					        "childProfileIds": [
 | 
				
			||||||
            17,
 | 
					            17,
 | 
				
			||||||
            18,
 | 
					            18,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,7 +4,7 @@
 | 
				
			|||||||
		"id": 19,
 | 
							"id": 19,
 | 
				
			||||||
		"customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
		"profileType": "passpoint_osu_id_provider",
 | 
							"profileType": "passpoint_osu_id_provider",
 | 
				
			||||||
		"name": "TipWlan-Passpoint-OSU-Provider",
 | 
							"name": "TipWlan-Hotspot20-OSU-Provider",
 | 
				
			||||||
		"details": {
 | 
							"details": {
 | 
				
			||||||
			"model_type": "PasspointOsuProviderProfile",
 | 
								"model_type": "PasspointOsuProviderProfile",
 | 
				
			||||||
			"domainName": "rogers.com",
 | 
								"domainName": "rogers.com",
 | 
				
			||||||
@@ -128,8 +128,8 @@
 | 
				
			|||||||
			],
 | 
								],
 | 
				
			||||||
			"profileType": "passpoint_osu_id_provider"
 | 
								"profileType": "passpoint_osu_id_provider"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		"createdTimestamp": 1606778370345,
 | 
							"createdTimestamp": 1605711165325,
 | 
				
			||||||
		"lastModifiedTimestamp": 1606778370345,
 | 
							"lastModifiedTimestamp": 1605711165325,
 | 
				
			||||||
		"childProfileIds": [
 | 
							"childProfileIds": [
 | 
				
			||||||
		]
 | 
							]
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
@@ -138,7 +138,7 @@
 | 
				
			|||||||
		"id": 20,
 | 
							"id": 20,
 | 
				
			||||||
		"customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
		"profileType": "passpoint_osu_id_provider",
 | 
							"profileType": "passpoint_osu_id_provider",
 | 
				
			||||||
		"name": "TipWlan-Passpoint-OSU-Provider-2",
 | 
							"name": "TipWlan-Hotspot20-OSU-Provider-2",
 | 
				
			||||||
		"details": {
 | 
							"details": {
 | 
				
			||||||
			"model_type": "PasspointOsuProviderProfile",
 | 
								"model_type": "PasspointOsuProviderProfile",
 | 
				
			||||||
			"domainName": "telus.com",
 | 
								"domainName": "telus.com",
 | 
				
			||||||
@@ -262,8 +262,8 @@
 | 
				
			|||||||
			],
 | 
								],
 | 
				
			||||||
			"profileType": "passpoint_osu_id_provider"
 | 
								"profileType": "passpoint_osu_id_provider"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		"createdTimestamp": 1606778370351,
 | 
							"createdTimestamp": 1605711165330,
 | 
				
			||||||
		"lastModifiedTimestamp": 1606778370351,
 | 
							"lastModifiedTimestamp": 1605711165330,
 | 
				
			||||||
		"childProfileIds": [
 | 
							"childProfileIds": [
 | 
				
			||||||
		]
 | 
							]
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,10 +1,10 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		"model_type": "Profile",
 | 
							"model_type": "Profile",
 | 
				
			||||||
		"id": 10,
 | 
							"id": 22,
 | 
				
			||||||
		"customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
		"profileType": "service_metrics_collection_config",
 | 
							"profileType": "service_metrics_collection_config",
 | 
				
			||||||
		"name": "Metrics-Profile-3-Radios",
 | 
							"name": "Metrics-Profile-Passpoint",
 | 
				
			||||||
		"details": {
 | 
							"details": {
 | 
				
			||||||
			"model_type": "ServiceMetricsCollectionConfigProfile",
 | 
								"model_type": "ServiceMetricsCollectionConfigProfile",
 | 
				
			||||||
			"radioTypes": [
 | 
								"radioTypes": [
 | 
				
			||||||
@@ -21,6 +21,30 @@
 | 
				
			|||||||
			],
 | 
								],
 | 
				
			||||||
			"metricConfigParameterMap": {
 | 
								"metricConfigParameterMap": {
 | 
				
			||||||
				"ApNode": [
 | 
									"ApNode": [
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
											"samplingInterval": 30,
 | 
				
			||||||
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
 | 
										},
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
											"samplingInterval": 30,
 | 
				
			||||||
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
 | 
										},
 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
						"samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
@@ -45,42 +69,6 @@
 | 
				
			|||||||
						"serviceMetricDataType": "ApNode",
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
					},
 | 
										},
 | 
				
			||||||
					{
 | 
					 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
					 | 
				
			||||||
						"samplingInterval": 30,
 | 
					 | 
				
			||||||
						"reportingIntervalSeconds": 120,
 | 
					 | 
				
			||||||
						"channelSurveyType": "OFF_CHANNEL",
 | 
					 | 
				
			||||||
						"scanIntervalMillis": 0,
 | 
					 | 
				
			||||||
						"percentUtilizationThreshold": 10,
 | 
					 | 
				
			||||||
						"delayMillisecondsThreshold": 600,
 | 
					 | 
				
			||||||
						"radioType": "is2dot4GHz",
 | 
					 | 
				
			||||||
						"serviceMetricDataType": "ApNode",
 | 
					 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
					 | 
				
			||||||
					},
 | 
					 | 
				
			||||||
					{
 | 
					 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
					 | 
				
			||||||
						"samplingInterval": 30,
 | 
					 | 
				
			||||||
						"reportingIntervalSeconds": 60,
 | 
					 | 
				
			||||||
						"channelSurveyType": "ON_CHANNEL",
 | 
					 | 
				
			||||||
						"scanIntervalMillis": 0,
 | 
					 | 
				
			||||||
						"percentUtilizationThreshold": 10,
 | 
					 | 
				
			||||||
						"delayMillisecondsThreshold": 600,
 | 
					 | 
				
			||||||
						"radioType": "is5GHzU",
 | 
					 | 
				
			||||||
						"serviceMetricDataType": "ApNode",
 | 
					 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
					 | 
				
			||||||
					},
 | 
					 | 
				
			||||||
					{
 | 
					 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
					 | 
				
			||||||
						"samplingInterval": 30,
 | 
					 | 
				
			||||||
						"reportingIntervalSeconds": 60,
 | 
					 | 
				
			||||||
						"channelSurveyType": "ON_CHANNEL",
 | 
					 | 
				
			||||||
						"scanIntervalMillis": 0,
 | 
					 | 
				
			||||||
						"percentUtilizationThreshold": 10,
 | 
					 | 
				
			||||||
						"delayMillisecondsThreshold": 600,
 | 
					 | 
				
			||||||
						"radioType": "is2dot4GHz",
 | 
					 | 
				
			||||||
						"serviceMetricDataType": "ApNode",
 | 
					 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
					 | 
				
			||||||
					},
 | 
					 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
						"samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
@@ -92,16 +80,21 @@
 | 
				
			|||||||
						"radioType": "is5GHzL",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
						"serviceMetricDataType": "ApNode",
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
 | 
										},
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
											"samplingInterval": 30,
 | 
				
			||||||
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
				],
 | 
									],
 | 
				
			||||||
				"ApSsid": [
 | 
									"ApSsid": [
 | 
				
			||||||
					{
 | 
					 | 
				
			||||||
						"model_type": "ServiceMetricRadioConfigParameters",
 | 
					 | 
				
			||||||
						"samplingInterval": 30,
 | 
					 | 
				
			||||||
						"reportingIntervalSeconds": 60,
 | 
					 | 
				
			||||||
						"radioType": "is5GHzU",
 | 
					 | 
				
			||||||
						"serviceMetricDataType": "ApSsid"
 | 
					 | 
				
			||||||
					},
 | 
					 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
						"model_type": "ServiceMetricRadioConfigParameters",
 | 
											"model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
						"samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
@@ -115,6 +108,13 @@
 | 
				
			|||||||
						"reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
						"radioType": "is2dot4GHz",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
						"serviceMetricDataType": "ApSsid"
 | 
											"serviceMetricDataType": "ApSsid"
 | 
				
			||||||
 | 
										},
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											"model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
 | 
											"samplingInterval": 30,
 | 
				
			||||||
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
 | 
											"serviceMetricDataType": "ApSsid"
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
				],
 | 
									],
 | 
				
			||||||
				"Client": [
 | 
									"Client": [
 | 
				
			||||||
@@ -144,12 +144,12 @@
 | 
				
			|||||||
					{
 | 
										{
 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
						"samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
						"reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
						"channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
						"scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
						"percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
						"delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
						"radioType": "is5GHzL",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
						"serviceMetricDataType": "Channel",
 | 
											"serviceMetricDataType": "Channel",
 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
					},
 | 
										},
 | 
				
			||||||
@@ -168,12 +168,12 @@
 | 
				
			|||||||
					{
 | 
										{
 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
						"samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
						"reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
						"channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
						"scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
						"percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
						"delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
						"radioType": "is2dot4GHz",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
						"serviceMetricDataType": "Channel",
 | 
											"serviceMetricDataType": "Channel",
 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
					},
 | 
										},
 | 
				
			||||||
@@ -192,29 +192,41 @@
 | 
				
			|||||||
					{
 | 
										{
 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
						"samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
						"reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
						"channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
						"scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
						"percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
						"delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
						"radioType": "is2dot4GHz",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
						"serviceMetricDataType": "Channel",
 | 
											"serviceMetricDataType": "Channel",
 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
					},
 | 
										},
 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
						"samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
						"reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
						"channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
						"scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
						"percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
						"delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
						"radioType": "is5GHzL",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
						"serviceMetricDataType": "Channel",
 | 
											"serviceMetricDataType": "Channel",
 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
				],
 | 
									],
 | 
				
			||||||
				"Neighbour": [
 | 
									"Neighbour": [
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
											"samplingInterval": 30,
 | 
				
			||||||
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
 | 
											"serviceMetricDataType": "Neighbour",
 | 
				
			||||||
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
 | 
										},
 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
						"samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
@@ -239,6 +251,18 @@
 | 
				
			|||||||
						"serviceMetricDataType": "Neighbour",
 | 
											"serviceMetricDataType": "Neighbour",
 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
					},
 | 
										},
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
											"samplingInterval": 30,
 | 
				
			||||||
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
											"serviceMetricDataType": "Neighbour",
 | 
				
			||||||
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
 | 
										},
 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
						"samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
@@ -262,37 +286,13 @@
 | 
				
			|||||||
						"radioType": "is5GHzU",
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
						"serviceMetricDataType": "Neighbour",
 | 
											"serviceMetricDataType": "Neighbour",
 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
					},
 | 
					 | 
				
			||||||
					{
 | 
					 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
					 | 
				
			||||||
						"samplingInterval": 30,
 | 
					 | 
				
			||||||
						"reportingIntervalSeconds": 120,
 | 
					 | 
				
			||||||
						"channelSurveyType": "OFF_CHANNEL",
 | 
					 | 
				
			||||||
						"scanIntervalMillis": 0,
 | 
					 | 
				
			||||||
						"percentUtilizationThreshold": 10,
 | 
					 | 
				
			||||||
						"delayMillisecondsThreshold": 600,
 | 
					 | 
				
			||||||
						"radioType": "is5GHzL",
 | 
					 | 
				
			||||||
						"serviceMetricDataType": "Neighbour",
 | 
					 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
					 | 
				
			||||||
					},
 | 
					 | 
				
			||||||
					{
 | 
					 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
					 | 
				
			||||||
						"samplingInterval": 30,
 | 
					 | 
				
			||||||
						"reportingIntervalSeconds": 60,
 | 
					 | 
				
			||||||
						"channelSurveyType": "ON_CHANNEL",
 | 
					 | 
				
			||||||
						"scanIntervalMillis": 0,
 | 
					 | 
				
			||||||
						"percentUtilizationThreshold": 10,
 | 
					 | 
				
			||||||
						"delayMillisecondsThreshold": 600,
 | 
					 | 
				
			||||||
						"radioType": "is2dot4GHz",
 | 
					 | 
				
			||||||
						"serviceMetricDataType": "Neighbour",
 | 
					 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
					 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
				]
 | 
									]
 | 
				
			||||||
			},
 | 
								},
 | 
				
			||||||
			"profileType": "service_metrics_collection_config"
 | 
								"profileType": "service_metrics_collection_config"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		"createdTimestamp": 1606778369931,
 | 
							"createdTimestamp": 1605711195528,
 | 
				
			||||||
		"lastModifiedTimestamp": 1606778369931,
 | 
							"lastModifiedTimestamp": 1605711195528,
 | 
				
			||||||
		"childProfileIds": [
 | 
							"childProfileIds": [
 | 
				
			||||||
		]
 | 
							]
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,7 +4,7 @@
 | 
				
			|||||||
		"id": 17,
 | 
							"id": 17,
 | 
				
			||||||
		"customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
		"profileType": "passpoint_operator",
 | 
							"profileType": "passpoint_operator",
 | 
				
			||||||
		"name": "TipWlan-Passpoint-Operator",
 | 
							"name": "TipWlan-Hotspot20-Operator",
 | 
				
			||||||
		"details": {
 | 
							"details": {
 | 
				
			||||||
			"model_type": "PasspointOperatorProfile",
 | 
								"model_type": "PasspointOperatorProfile",
 | 
				
			||||||
			"serverOnlyAuthenticatedL2EncryptionNetwork": false,
 | 
								"serverOnlyAuthenticatedL2EncryptionNetwork": false,
 | 
				
			||||||
@@ -29,8 +29,8 @@
 | 
				
			|||||||
			],
 | 
								],
 | 
				
			||||||
			"profileType": "passpoint_operator"
 | 
								"profileType": "passpoint_operator"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		"createdTimestamp": 1606778369945,
 | 
							"createdTimestamp": 1605711164952,
 | 
				
			||||||
		"lastModifiedTimestamp": 1606778369945,
 | 
							"lastModifiedTimestamp": 1605711164952,
 | 
				
			||||||
		"childProfileIds": [
 | 
							"childProfileIds": [
 | 
				
			||||||
		]
 | 
							]
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,9 +1,9 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
	"model_type": "Profile",
 | 
						"model_type": "Profile",
 | 
				
			||||||
    "id": 11,
 | 
						"id": 21,
 | 
				
			||||||
	"customerId": 2,
 | 
						"customerId": 2,
 | 
				
			||||||
	"profileType": "rf",
 | 
						"profileType": "rf",
 | 
				
			||||||
    "name": "TipWlan-rf",
 | 
						"name": "TipWlan-rf-passpoint",
 | 
				
			||||||
	"details": {
 | 
						"details": {
 | 
				
			||||||
		"model_type": "RfConfiguration",
 | 
							"model_type": "RfConfiguration",
 | 
				
			||||||
		"rfConfigMap": {
 | 
							"rfConfigMap": {
 | 
				
			||||||
@@ -11,7 +11,7 @@
 | 
				
			|||||||
				"model_type": "RfElementConfiguration",
 | 
									"model_type": "RfElementConfiguration",
 | 
				
			||||||
				"radioType": "is5GHz",
 | 
									"radioType": "is5GHz",
 | 
				
			||||||
				"radioMode": "modeAC",
 | 
									"radioMode": "modeAC",
 | 
				
			||||||
                "rf": "TipWlan-rf",
 | 
									"rf": "TipWlan-rf-passpoint",
 | 
				
			||||||
				"beaconInterval": 100,
 | 
									"beaconInterval": 100,
 | 
				
			||||||
				"forceScanDuringVoice": "disabled",
 | 
									"forceScanDuringVoice": "disabled",
 | 
				
			||||||
				"rtsCtsThreshold": 65535,
 | 
									"rtsCtsThreshold": 65535,
 | 
				
			||||||
@@ -58,7 +58,7 @@
 | 
				
			|||||||
				"model_type": "RfElementConfiguration",
 | 
									"model_type": "RfElementConfiguration",
 | 
				
			||||||
				"radioType": "is2dot4GHz",
 | 
									"radioType": "is2dot4GHz",
 | 
				
			||||||
				"radioMode": "modeN",
 | 
									"radioMode": "modeN",
 | 
				
			||||||
                "rf": "TipWlan-rf",
 | 
									"rf": "TipWlan-rf-passpoint",
 | 
				
			||||||
				"beaconInterval": 100,
 | 
									"beaconInterval": 100,
 | 
				
			||||||
				"forceScanDuringVoice": "disabled",
 | 
									"forceScanDuringVoice": "disabled",
 | 
				
			||||||
				"rtsCtsThreshold": 65535,
 | 
									"rtsCtsThreshold": 65535,
 | 
				
			||||||
@@ -105,7 +105,7 @@
 | 
				
			|||||||
				"model_type": "RfElementConfiguration",
 | 
									"model_type": "RfElementConfiguration",
 | 
				
			||||||
				"radioType": "is5GHzU",
 | 
									"radioType": "is5GHzU",
 | 
				
			||||||
				"radioMode": "modeAC",
 | 
									"radioMode": "modeAC",
 | 
				
			||||||
                "rf": "TipWlan-rf",
 | 
									"rf": "TipWlan-rf-passpoint",
 | 
				
			||||||
				"beaconInterval": 100,
 | 
									"beaconInterval": 100,
 | 
				
			||||||
				"forceScanDuringVoice": "disabled",
 | 
									"forceScanDuringVoice": "disabled",
 | 
				
			||||||
				"rtsCtsThreshold": 65535,
 | 
									"rtsCtsThreshold": 65535,
 | 
				
			||||||
@@ -152,7 +152,7 @@
 | 
				
			|||||||
				"model_type": "RfElementConfiguration",
 | 
									"model_type": "RfElementConfiguration",
 | 
				
			||||||
				"radioType": "is5GHzL",
 | 
									"radioType": "is5GHzL",
 | 
				
			||||||
				"radioMode": "modeAC",
 | 
									"radioMode": "modeAC",
 | 
				
			||||||
                "rf": "TipWlan-rf",
 | 
									"rf": "TipWlan-rf-passpoint",
 | 
				
			||||||
				"beaconInterval": 100,
 | 
									"beaconInterval": 100,
 | 
				
			||||||
				"forceScanDuringVoice": "disabled",
 | 
									"forceScanDuringVoice": "disabled",
 | 
				
			||||||
				"rtsCtsThreshold": 65535,
 | 
									"rtsCtsThreshold": 65535,
 | 
				
			||||||
@@ -198,7 +198,8 @@
 | 
				
			|||||||
		},
 | 
							},
 | 
				
			||||||
		"profileType": "rf"
 | 
							"profileType": "rf"
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
    "createdTimestamp": 1606778369933,
 | 
						"createdTimestamp": 1605711191976,
 | 
				
			||||||
    "lastModifiedTimestamp": 1606778369933,
 | 
						"lastModifiedTimestamp": 1605711191976,
 | 
				
			||||||
    "childProfileIds": []
 | 
						"childProfileIds": [
 | 
				
			||||||
 | 
						]
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -1,80 +1,13 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		"model_type": "Profile",
 | 
					 | 
				
			||||||
		"id": 5,
 | 
					 | 
				
			||||||
		"customerId": 2,
 | 
					 | 
				
			||||||
		"profileType": "ssid",
 | 
					 | 
				
			||||||
		"name": "TipWlan-cloud-3-radios",
 | 
					 | 
				
			||||||
		"details": {
 | 
					 | 
				
			||||||
			"model_type": "SsidConfiguration",
 | 
					 | 
				
			||||||
			"ssid": "TipWlan-cloud-3-radios",
 | 
					 | 
				
			||||||
			"appliedRadios": [
 | 
					 | 
				
			||||||
				"is5GHzL",
 | 
					 | 
				
			||||||
				"is2dot4GHz",
 | 
					 | 
				
			||||||
				"is5GHzU"
 | 
					 | 
				
			||||||
			],
 | 
					 | 
				
			||||||
			"ssidAdminState": "enabled",
 | 
					 | 
				
			||||||
			"secureMode": "wpa2OnlyPSK",
 | 
					 | 
				
			||||||
			"vlanId": 1,
 | 
					 | 
				
			||||||
			"keyStr": "openwifi",
 | 
					 | 
				
			||||||
			"broadcastSsid": "enabled",
 | 
					 | 
				
			||||||
			"keyRefresh": 0,
 | 
					 | 
				
			||||||
			"noLocalSubnets": false,
 | 
					 | 
				
			||||||
			"radiusServiceName": null,
 | 
					 | 
				
			||||||
			"radiusAccountingServiceName": null,
 | 
					 | 
				
			||||||
			"radiusAcountingServiceInterval": null,
 | 
					 | 
				
			||||||
			"captivePortalId": null,
 | 
					 | 
				
			||||||
			"bandwidthLimitDown": 0,
 | 
					 | 
				
			||||||
			"bandwidthLimitUp": 0,
 | 
					 | 
				
			||||||
			"clientBandwidthLimitDown": 0,
 | 
					 | 
				
			||||||
			"clientBandwidthLimitUp": 0,
 | 
					 | 
				
			||||||
			"videoTrafficOnly": false,
 | 
					 | 
				
			||||||
			"radioBasedConfigs": {
 | 
					 | 
				
			||||||
				"is5GHzL": {
 | 
					 | 
				
			||||||
					"model_type": "RadioBasedSsidConfiguration",
 | 
					 | 
				
			||||||
					"enable80211r": null,
 | 
					 | 
				
			||||||
					"enable80211k": null,
 | 
					 | 
				
			||||||
					"enable80211v": null
 | 
					 | 
				
			||||||
				},
 | 
					 | 
				
			||||||
				"is2dot4GHz": {
 | 
					 | 
				
			||||||
					"model_type": "RadioBasedSsidConfiguration",
 | 
					 | 
				
			||||||
					"enable80211r": null,
 | 
					 | 
				
			||||||
					"enable80211k": null,
 | 
					 | 
				
			||||||
					"enable80211v": null
 | 
					 | 
				
			||||||
				},
 | 
					 | 
				
			||||||
				"is5GHz": {
 | 
					 | 
				
			||||||
					"model_type": "RadioBasedSsidConfiguration",
 | 
					 | 
				
			||||||
					"enable80211r": null,
 | 
					 | 
				
			||||||
					"enable80211k": null,
 | 
					 | 
				
			||||||
					"enable80211v": null
 | 
					 | 
				
			||||||
				},
 | 
					 | 
				
			||||||
				"is5GHzU": {
 | 
					 | 
				
			||||||
					"model_type": "RadioBasedSsidConfiguration",
 | 
					 | 
				
			||||||
					"enable80211r": null,
 | 
					 | 
				
			||||||
					"enable80211k": null,
 | 
					 | 
				
			||||||
					"enable80211v": null
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
			},
 | 
					 | 
				
			||||||
			"bonjourGatewayProfileId": null,
 | 
					 | 
				
			||||||
			"enable80211w": null,
 | 
					 | 
				
			||||||
			"wepConfig": null,
 | 
					 | 
				
			||||||
			"forwardMode": "BRIDGE",
 | 
					 | 
				
			||||||
			"profileType": "ssid"
 | 
					 | 
				
			||||||
		},
 | 
					 | 
				
			||||||
		"createdTimestamp": 1606778369598,
 | 
					 | 
				
			||||||
		"lastModifiedTimestamp": 1606778369598,
 | 
					 | 
				
			||||||
		"childProfileIds": [
 | 
					 | 
				
			||||||
		]
 | 
					 | 
				
			||||||
	},
 | 
					 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		"model_type": "Profile",
 | 
							"model_type": "Profile",
 | 
				
			||||||
		"id": 15,
 | 
							"id": 15,
 | 
				
			||||||
		"customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
		"profileType": "ssid",
 | 
							"profileType": "ssid",
 | 
				
			||||||
		"name": "TipWlan-cloud-passpoint-access",
 | 
							"name": "TipWlan-cloud-hotspot-access",
 | 
				
			||||||
		"details": {
 | 
							"details": {
 | 
				
			||||||
			"model_type": "SsidConfiguration",
 | 
								"model_type": "SsidConfiguration",
 | 
				
			||||||
			"ssid": "TipWlan-cloud-passpoint-access",
 | 
								"ssid": "TipWlan-cloud-hotspot-access",
 | 
				
			||||||
			"appliedRadios": [
 | 
								"appliedRadios": [
 | 
				
			||||||
				"is5GHzL",
 | 
									"is5GHzL",
 | 
				
			||||||
				"is5GHzU"
 | 
									"is5GHzU"
 | 
				
			||||||
@@ -88,7 +21,6 @@
 | 
				
			|||||||
			"noLocalSubnets": false,
 | 
								"noLocalSubnets": false,
 | 
				
			||||||
			"radiusServiceName": null,
 | 
								"radiusServiceName": null,
 | 
				
			||||||
			"radiusAccountingServiceName": null,
 | 
								"radiusAccountingServiceName": null,
 | 
				
			||||||
			"radiusAcountingServiceInterval": null,
 | 
					 | 
				
			||||||
			"captivePortalId": null,
 | 
								"captivePortalId": null,
 | 
				
			||||||
			"bandwidthLimitDown": 0,
 | 
								"bandwidthLimitDown": 0,
 | 
				
			||||||
			"bandwidthLimitUp": 0,
 | 
								"bandwidthLimitUp": 0,
 | 
				
			||||||
@@ -96,7 +28,7 @@
 | 
				
			|||||||
			"clientBandwidthLimitUp": 0,
 | 
								"clientBandwidthLimitUp": 0,
 | 
				
			||||||
			"videoTrafficOnly": false,
 | 
								"videoTrafficOnly": false,
 | 
				
			||||||
			"radioBasedConfigs": {
 | 
								"radioBasedConfigs": {
 | 
				
			||||||
				"is5GHzL": {
 | 
									"is5GHz": {
 | 
				
			||||||
					"model_type": "RadioBasedSsidConfiguration",
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
					"enable80211r": null,
 | 
										"enable80211r": null,
 | 
				
			||||||
					"enable80211k": null,
 | 
										"enable80211k": null,
 | 
				
			||||||
@@ -108,13 +40,13 @@
 | 
				
			|||||||
					"enable80211k": null,
 | 
										"enable80211k": null,
 | 
				
			||||||
					"enable80211v": null
 | 
										"enable80211v": null
 | 
				
			||||||
				},
 | 
									},
 | 
				
			||||||
				"is5GHz": {
 | 
									"is5GHzU": {
 | 
				
			||||||
					"model_type": "RadioBasedSsidConfiguration",
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
					"enable80211r": null,
 | 
										"enable80211r": null,
 | 
				
			||||||
					"enable80211k": null,
 | 
										"enable80211k": null,
 | 
				
			||||||
					"enable80211v": null
 | 
										"enable80211v": null
 | 
				
			||||||
				},
 | 
									},
 | 
				
			||||||
				"is5GHzU": {
 | 
									"is5GHzL": {
 | 
				
			||||||
					"model_type": "RadioBasedSsidConfiguration",
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
					"enable80211r": null,
 | 
										"enable80211r": null,
 | 
				
			||||||
					"enable80211k": null,
 | 
										"enable80211k": null,
 | 
				
			||||||
@@ -127,8 +59,8 @@
 | 
				
			|||||||
			"forwardMode": null,
 | 
								"forwardMode": null,
 | 
				
			||||||
			"profileType": "ssid"
 | 
								"profileType": "ssid"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		"createdTimestamp": 1606778369943,
 | 
							"createdTimestamp": 1605711164949,
 | 
				
			||||||
		"lastModifiedTimestamp": 1606778370811,
 | 
							"lastModifiedTimestamp": 1605711223372,
 | 
				
			||||||
		"childProfileIds": [
 | 
							"childProfileIds": [
 | 
				
			||||||
			24
 | 
								24
 | 
				
			||||||
		]
 | 
							]
 | 
				
			||||||
@@ -138,10 +70,10 @@
 | 
				
			|||||||
		"id": 16,
 | 
							"id": 16,
 | 
				
			||||||
		"customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
		"profileType": "ssid",
 | 
							"profileType": "ssid",
 | 
				
			||||||
		"name": "TipWlan-cloud-passpoint-osu",
 | 
							"name": "TipWlan-cloud-hotspot-osu",
 | 
				
			||||||
		"details": {
 | 
							"details": {
 | 
				
			||||||
			"model_type": "SsidConfiguration",
 | 
								"model_type": "SsidConfiguration",
 | 
				
			||||||
			"ssid": "TipWlan-cloud-passpoint-osu",
 | 
								"ssid": "TipWlan-cloud-hotspot-osu",
 | 
				
			||||||
			"appliedRadios": [
 | 
								"appliedRadios": [
 | 
				
			||||||
				"is2dot4GHz"
 | 
									"is2dot4GHz"
 | 
				
			||||||
			],
 | 
								],
 | 
				
			||||||
@@ -154,7 +86,6 @@
 | 
				
			|||||||
			"noLocalSubnets": false,
 | 
								"noLocalSubnets": false,
 | 
				
			||||||
			"radiusServiceName": null,
 | 
								"radiusServiceName": null,
 | 
				
			||||||
			"radiusAccountingServiceName": null,
 | 
								"radiusAccountingServiceName": null,
 | 
				
			||||||
			"radiusAcountingServiceInterval": null,
 | 
					 | 
				
			||||||
			"captivePortalId": null,
 | 
								"captivePortalId": null,
 | 
				
			||||||
			"bandwidthLimitDown": 0,
 | 
								"bandwidthLimitDown": 0,
 | 
				
			||||||
			"bandwidthLimitUp": 0,
 | 
								"bandwidthLimitUp": 0,
 | 
				
			||||||
@@ -162,7 +93,7 @@
 | 
				
			|||||||
			"clientBandwidthLimitUp": 0,
 | 
								"clientBandwidthLimitUp": 0,
 | 
				
			||||||
			"videoTrafficOnly": false,
 | 
								"videoTrafficOnly": false,
 | 
				
			||||||
			"radioBasedConfigs": {
 | 
								"radioBasedConfigs": {
 | 
				
			||||||
				"is5GHzL": {
 | 
									"is5GHz": {
 | 
				
			||||||
					"model_type": "RadioBasedSsidConfiguration",
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
					"enable80211r": null,
 | 
										"enable80211r": null,
 | 
				
			||||||
					"enable80211k": null,
 | 
										"enable80211k": null,
 | 
				
			||||||
@@ -174,13 +105,13 @@
 | 
				
			|||||||
					"enable80211k": null,
 | 
										"enable80211k": null,
 | 
				
			||||||
					"enable80211v": null
 | 
										"enable80211v": null
 | 
				
			||||||
				},
 | 
									},
 | 
				
			||||||
				"is5GHz": {
 | 
									"is5GHzU": {
 | 
				
			||||||
					"model_type": "RadioBasedSsidConfiguration",
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
					"enable80211r": null,
 | 
										"enable80211r": null,
 | 
				
			||||||
					"enable80211k": null,
 | 
										"enable80211k": null,
 | 
				
			||||||
					"enable80211v": null
 | 
										"enable80211v": null
 | 
				
			||||||
				},
 | 
									},
 | 
				
			||||||
				"is5GHzU": {
 | 
									"is5GHzL": {
 | 
				
			||||||
					"model_type": "RadioBasedSsidConfiguration",
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
					"enable80211r": null,
 | 
										"enable80211r": null,
 | 
				
			||||||
					"enable80211k": null,
 | 
										"enable80211k": null,
 | 
				
			||||||
@@ -193,8 +124,8 @@
 | 
				
			|||||||
			"forwardMode": null,
 | 
								"forwardMode": null,
 | 
				
			||||||
			"profileType": "ssid"
 | 
								"profileType": "ssid"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		"createdTimestamp": 1606778369944,
 | 
							"createdTimestamp": 1605711164950,
 | 
				
			||||||
		"lastModifiedTimestamp": 1606778370352,
 | 
							"lastModifiedTimestamp": 1605711171732,
 | 
				
			||||||
		"childProfileIds": [
 | 
							"childProfileIds": [
 | 
				
			||||||
			19,
 | 
								19,
 | 
				
			||||||
			20
 | 
								20
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,7 +4,7 @@
 | 
				
			|||||||
		"id": 18,
 | 
							"id": 18,
 | 
				
			||||||
		"customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
		"profileType": "passpoint_venue",
 | 
							"profileType": "passpoint_venue",
 | 
				
			||||||
		"name": "TipWlan-Passpoint-Venue",
 | 
							"name": "TipWlan-Hotspot20-Venue",
 | 
				
			||||||
		"details": {
 | 
							"details": {
 | 
				
			||||||
			"model_type": "PasspointVenueProfile",
 | 
								"model_type": "PasspointVenueProfile",
 | 
				
			||||||
			"venueNameSet": [
 | 
								"venueNameSet": [
 | 
				
			||||||
@@ -28,15 +28,15 @@
 | 
				
			|||||||
				}
 | 
									}
 | 
				
			||||||
			],
 | 
								],
 | 
				
			||||||
			"venueTypeAssignment": {
 | 
								"venueTypeAssignment": {
 | 
				
			||||||
				"model_type": "PasspointVenueTypeAssignment",
 | 
									"model_type": "ProfileVenueTypeAssignment",
 | 
				
			||||||
				"venueDescription": "Research and Development Facility",
 | 
									"venueDescription": "Research and Development Facility",
 | 
				
			||||||
				"venueGroupId": 2,
 | 
									"venueGroupId": 2,
 | 
				
			||||||
				"venueTypeId": 8
 | 
									"venueTypeId": 8
 | 
				
			||||||
			},
 | 
								},
 | 
				
			||||||
			"profileType": "passpoint_venue"
 | 
								"profileType": "passpoint_venue"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		"createdTimestamp": 1606778369950,
 | 
							"createdTimestamp": 1605711164956,
 | 
				
			||||||
		"lastModifiedTimestamp": 1606778369950,
 | 
							"lastModifiedTimestamp": 1605711164956,
 | 
				
			||||||
		"childProfileIds": [
 | 
							"childProfileIds": [
 | 
				
			||||||
		]
 | 
							]
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,7 +2,7 @@
 | 
				
			|||||||
  "model_type": "Equipment",
 | 
					  "model_type": "Equipment",
 | 
				
			||||||
  "id": 51,
 | 
					  "id": 51,
 | 
				
			||||||
  "customerId": 2,
 | 
					  "customerId": 2,
 | 
				
			||||||
  "profileId": 12,
 | 
					  "profileId": 5,
 | 
				
			||||||
  "locationId": 8,
 | 
					  "locationId": 8,
 | 
				
			||||||
  "equipmentType": "AP",
 | 
					  "equipmentType": "AP",
 | 
				
			||||||
  "inventoryId": "Test_Client_21P10C68818122",
 | 
					  "inventoryId": "Test_Client_21P10C68818122",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,9 +1,9 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
	"model_type": "Profile",
 | 
						"model_type": "Profile",
 | 
				
			||||||
    "id": 12,
 | 
						"id": 23,
 | 
				
			||||||
	"customerId": 2,
 | 
						"customerId": 2,
 | 
				
			||||||
	"profileType": "equipment_ap",
 | 
						"profileType": "equipment_ap",
 | 
				
			||||||
    "name": "ApProfile-3-radios",
 | 
						"name": "ApProfile-3-radios-passpoint",
 | 
				
			||||||
	"details": {
 | 
						"details": {
 | 
				
			||||||
		"model_type": "ApNetworkConfiguration",
 | 
							"model_type": "ApNetworkConfiguration",
 | 
				
			||||||
		"networkConfigVersion": "AP-1",
 | 
							"networkConfigVersion": "AP-1",
 | 
				
			||||||
@@ -44,13 +44,12 @@
 | 
				
			|||||||
		},
 | 
							},
 | 
				
			||||||
		"profileType": "equipment_ap"
 | 
							"profileType": "equipment_ap"
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
    "createdTimestamp": 1606778369934,
 | 
						"createdTimestamp": 1605711197140,
 | 
				
			||||||
    "lastModifiedTimestamp": 1606778443413,
 | 
						"lastModifiedTimestamp": 1605711197140,
 | 
				
			||||||
	"childProfileIds": [
 | 
						"childProfileIds": [
 | 
				
			||||||
		16,
 | 
							16,
 | 
				
			||||||
        5,
 | 
							21,
 | 
				
			||||||
        10,
 | 
							22,
 | 
				
			||||||
        11,
 | 
					 | 
				
			||||||
		15
 | 
							15
 | 
				
			||||||
	]
 | 
						]
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -1,16 +1,14 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
	{
 | 
					{
 | 
				
			||||||
        "model_type": "Profile",
 | 
					        "model_type": "Profile",
 | 
				
			||||||
        "id": 24,
 | 
					        "id": 24,
 | 
				
			||||||
        "customerId": 2,
 | 
					        "customerId": 2,
 | 
				
			||||||
        "profileType": "passpoint",
 | 
					        "profileType": "passpoint",
 | 
				
			||||||
		"name": "TipWlan-Passpoint-Config",
 | 
					        "name": "TipWlan-Hotspot20-Config",
 | 
				
			||||||
        "details": {
 | 
					        "details": {
 | 
				
			||||||
            "model_type": "PasspointProfile",
 | 
					            "model_type": "PasspointProfile",
 | 
				
			||||||
            "enableInterworkingAndHs20": true,
 | 
					            "enableInterworkingAndHs20": true,
 | 
				
			||||||
            "hessid": null,
 | 
					            "hessid": null,
 | 
				
			||||||
			"passpointAccessNetworkType": "free_public_network",
 | 
					 | 
				
			||||||
			"passpointNetworkAuthenticationType": "acceptance_of_terms_and_conditions",
 | 
					 | 
				
			||||||
            "additionalStepsRequiredForAccess": 0,
 | 
					            "additionalStepsRequiredForAccess": 0,
 | 
				
			||||||
            "deauthRequestTimeout": 0,
 | 
					            "deauthRequestTimeout": 0,
 | 
				
			||||||
            "operatingClass": 0,
 | 
					            "operatingClass": 0,
 | 
				
			||||||
@@ -31,8 +29,8 @@
 | 
				
			|||||||
                {
 | 
					                {
 | 
				
			||||||
                    "model_type": "PasspointConnectionCapability",
 | 
					                    "model_type": "PasspointConnectionCapability",
 | 
				
			||||||
                    "connectionCapabilitiesPortNumber": 8888,
 | 
					                    "connectionCapabilitiesPortNumber": 8888,
 | 
				
			||||||
					"connectionCapabilitiesStatus": "open",
 | 
					                    "connectionCapabilitiesIpProtocol": "TCP",
 | 
				
			||||||
					"connectionCapabilitiesIpProtocol": "TCP"
 | 
					                    "connectionCapabilitiesStatus": "open"
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            "ipAddressTypeAvailability": "public_IPv4_address_available",
 | 
					            "ipAddressTypeAvailability": "public_IPv4_address_available",
 | 
				
			||||||
@@ -45,22 +43,25 @@
 | 
				
			|||||||
            "disableDownstreamGroupAddressedForwarding": false,
 | 
					            "disableDownstreamGroupAddressedForwarding": false,
 | 
				
			||||||
            "enable2pt4GHz": true,
 | 
					            "enable2pt4GHz": true,
 | 
				
			||||||
            "enable5GHz": true,
 | 
					            "enable5GHz": true,
 | 
				
			||||||
			"associatedAccessSsidProfileIds": [
 | 
					            "associatedAccessSsidNames": [
 | 
				
			||||||
				15
 | 
					                "TipWlan-cloud-hotspot-access"
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
			"osuSsidProfileId": 16,
 | 
					            "osuSsidName": "TipWlan-cloud-hotspot-osu",
 | 
				
			||||||
			"passpointOperatorProfileId": 17,
 | 
					            "operatorProfileName": "TipWlan-Hotspot20-Operator",
 | 
				
			||||||
			"passpointVenueProfileId": 18,
 | 
					            "venueProfileName": "TipWlan-Hotspot20-Venue",
 | 
				
			||||||
			"passpointOsuProviderProfileIds": [
 | 
					            "idProviderProfileNames": [
 | 
				
			||||||
				19,
 | 
					                "TipWlan-Hotspot20-OSU-Provider-2",
 | 
				
			||||||
				20
 | 
					                "TipWlan-Hotspot20-OSU-Provider"
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            "accessNetworkType": "free_public_network",
 | 
					            "accessNetworkType": "free_public_network",
 | 
				
			||||||
            "networkAuthenticationType": "acceptance_of_terms_and_conditions",
 | 
					            "networkAuthenticationType": "acceptance_of_terms_and_conditions",
 | 
				
			||||||
 | 
					            "associatedSsids": [
 | 
				
			||||||
 | 
					                "TipWlan-cloud-hotspot-access"
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
            "profileType": "passpoint"
 | 
					            "profileType": "passpoint"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
		"createdTimestamp": 1606778370807,
 | 
					        "createdTimestamp": 1605711223339,
 | 
				
			||||||
		"lastModifiedTimestamp": 1606778370807,
 | 
					        "lastModifiedTimestamp": 1605711223339,
 | 
				
			||||||
        "childProfileIds": [
 | 
					        "childProfileIds": [
 | 
				
			||||||
            17,
 | 
					            17,
 | 
				
			||||||
            18,
 | 
					            18,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,7 +4,7 @@
 | 
				
			|||||||
		"id": 19,
 | 
							"id": 19,
 | 
				
			||||||
		"customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
		"profileType": "passpoint_osu_id_provider",
 | 
							"profileType": "passpoint_osu_id_provider",
 | 
				
			||||||
		"name": "TipWlan-Passpoint-OSU-Provider",
 | 
							"name": "TipWlan-Hotspot20-OSU-Provider",
 | 
				
			||||||
		"details": {
 | 
							"details": {
 | 
				
			||||||
			"model_type": "PasspointOsuProviderProfile",
 | 
								"model_type": "PasspointOsuProviderProfile",
 | 
				
			||||||
			"domainName": "rogers.com",
 | 
								"domainName": "rogers.com",
 | 
				
			||||||
@@ -128,8 +128,8 @@
 | 
				
			|||||||
			],
 | 
								],
 | 
				
			||||||
			"profileType": "passpoint_osu_id_provider"
 | 
								"profileType": "passpoint_osu_id_provider"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		"createdTimestamp": 1606778370345,
 | 
							"createdTimestamp": 1605711165325,
 | 
				
			||||||
		"lastModifiedTimestamp": 1606778370345,
 | 
							"lastModifiedTimestamp": 1605711165325,
 | 
				
			||||||
		"childProfileIds": [
 | 
							"childProfileIds": [
 | 
				
			||||||
		]
 | 
							]
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
@@ -138,7 +138,7 @@
 | 
				
			|||||||
		"id": 20,
 | 
							"id": 20,
 | 
				
			||||||
		"customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
		"profileType": "passpoint_osu_id_provider",
 | 
							"profileType": "passpoint_osu_id_provider",
 | 
				
			||||||
		"name": "TipWlan-Passpoint-OSU-Provider-2",
 | 
							"name": "TipWlan-Hotspot20-OSU-Provider-2",
 | 
				
			||||||
		"details": {
 | 
							"details": {
 | 
				
			||||||
			"model_type": "PasspointOsuProviderProfile",
 | 
								"model_type": "PasspointOsuProviderProfile",
 | 
				
			||||||
			"domainName": "telus.com",
 | 
								"domainName": "telus.com",
 | 
				
			||||||
@@ -262,8 +262,8 @@
 | 
				
			|||||||
			],
 | 
								],
 | 
				
			||||||
			"profileType": "passpoint_osu_id_provider"
 | 
								"profileType": "passpoint_osu_id_provider"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		"createdTimestamp": 1606778370351,
 | 
							"createdTimestamp": 1605711165330,
 | 
				
			||||||
		"lastModifiedTimestamp": 1606778370351,
 | 
							"lastModifiedTimestamp": 1605711165330,
 | 
				
			||||||
		"childProfileIds": [
 | 
							"childProfileIds": [
 | 
				
			||||||
		]
 | 
							]
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,10 +1,10 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		"model_type": "Profile",
 | 
							"model_type": "Profile",
 | 
				
			||||||
		"id": 10,
 | 
							"id": 22,
 | 
				
			||||||
		"customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
		"profileType": "service_metrics_collection_config",
 | 
							"profileType": "service_metrics_collection_config",
 | 
				
			||||||
		"name": "Metrics-Profile-3-Radios",
 | 
							"name": "Metrics-Profile-Passpoint",
 | 
				
			||||||
		"details": {
 | 
							"details": {
 | 
				
			||||||
			"model_type": "ServiceMetricsCollectionConfigProfile",
 | 
								"model_type": "ServiceMetricsCollectionConfigProfile",
 | 
				
			||||||
			"radioTypes": [
 | 
								"radioTypes": [
 | 
				
			||||||
@@ -21,6 +21,30 @@
 | 
				
			|||||||
			],
 | 
								],
 | 
				
			||||||
			"metricConfigParameterMap": {
 | 
								"metricConfigParameterMap": {
 | 
				
			||||||
				"ApNode": [
 | 
									"ApNode": [
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
											"samplingInterval": 30,
 | 
				
			||||||
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
 | 
										},
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
											"samplingInterval": 30,
 | 
				
			||||||
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
 | 
										},
 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
						"samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
@@ -45,42 +69,6 @@
 | 
				
			|||||||
						"serviceMetricDataType": "ApNode",
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
					},
 | 
										},
 | 
				
			||||||
					{
 | 
					 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
					 | 
				
			||||||
						"samplingInterval": 30,
 | 
					 | 
				
			||||||
						"reportingIntervalSeconds": 120,
 | 
					 | 
				
			||||||
						"channelSurveyType": "OFF_CHANNEL",
 | 
					 | 
				
			||||||
						"scanIntervalMillis": 0,
 | 
					 | 
				
			||||||
						"percentUtilizationThreshold": 10,
 | 
					 | 
				
			||||||
						"delayMillisecondsThreshold": 600,
 | 
					 | 
				
			||||||
						"radioType": "is2dot4GHz",
 | 
					 | 
				
			||||||
						"serviceMetricDataType": "ApNode",
 | 
					 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
					 | 
				
			||||||
					},
 | 
					 | 
				
			||||||
					{
 | 
					 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
					 | 
				
			||||||
						"samplingInterval": 30,
 | 
					 | 
				
			||||||
						"reportingIntervalSeconds": 60,
 | 
					 | 
				
			||||||
						"channelSurveyType": "ON_CHANNEL",
 | 
					 | 
				
			||||||
						"scanIntervalMillis": 0,
 | 
					 | 
				
			||||||
						"percentUtilizationThreshold": 10,
 | 
					 | 
				
			||||||
						"delayMillisecondsThreshold": 600,
 | 
					 | 
				
			||||||
						"radioType": "is5GHzU",
 | 
					 | 
				
			||||||
						"serviceMetricDataType": "ApNode",
 | 
					 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
					 | 
				
			||||||
					},
 | 
					 | 
				
			||||||
					{
 | 
					 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
					 | 
				
			||||||
						"samplingInterval": 30,
 | 
					 | 
				
			||||||
						"reportingIntervalSeconds": 60,
 | 
					 | 
				
			||||||
						"channelSurveyType": "ON_CHANNEL",
 | 
					 | 
				
			||||||
						"scanIntervalMillis": 0,
 | 
					 | 
				
			||||||
						"percentUtilizationThreshold": 10,
 | 
					 | 
				
			||||||
						"delayMillisecondsThreshold": 600,
 | 
					 | 
				
			||||||
						"radioType": "is2dot4GHz",
 | 
					 | 
				
			||||||
						"serviceMetricDataType": "ApNode",
 | 
					 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
					 | 
				
			||||||
					},
 | 
					 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
						"samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
@@ -92,16 +80,21 @@
 | 
				
			|||||||
						"radioType": "is5GHzL",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
						"serviceMetricDataType": "ApNode",
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
 | 
										},
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
											"samplingInterval": 30,
 | 
				
			||||||
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
											"serviceMetricDataType": "ApNode",
 | 
				
			||||||
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
				],
 | 
									],
 | 
				
			||||||
				"ApSsid": [
 | 
									"ApSsid": [
 | 
				
			||||||
					{
 | 
					 | 
				
			||||||
						"model_type": "ServiceMetricRadioConfigParameters",
 | 
					 | 
				
			||||||
						"samplingInterval": 30,
 | 
					 | 
				
			||||||
						"reportingIntervalSeconds": 60,
 | 
					 | 
				
			||||||
						"radioType": "is5GHzU",
 | 
					 | 
				
			||||||
						"serviceMetricDataType": "ApSsid"
 | 
					 | 
				
			||||||
					},
 | 
					 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
						"model_type": "ServiceMetricRadioConfigParameters",
 | 
											"model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
						"samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
@@ -115,6 +108,13 @@
 | 
				
			|||||||
						"reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
						"radioType": "is2dot4GHz",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
						"serviceMetricDataType": "ApSsid"
 | 
											"serviceMetricDataType": "ApSsid"
 | 
				
			||||||
 | 
										},
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											"model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
 | 
											"samplingInterval": 30,
 | 
				
			||||||
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
 | 
											"serviceMetricDataType": "ApSsid"
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
				],
 | 
									],
 | 
				
			||||||
				"Client": [
 | 
									"Client": [
 | 
				
			||||||
@@ -144,12 +144,12 @@
 | 
				
			|||||||
					{
 | 
										{
 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
						"samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
						"reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
						"channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
						"scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
						"percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
						"delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
						"radioType": "is5GHzL",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
						"serviceMetricDataType": "Channel",
 | 
											"serviceMetricDataType": "Channel",
 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
					},
 | 
										},
 | 
				
			||||||
@@ -168,12 +168,12 @@
 | 
				
			|||||||
					{
 | 
										{
 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
						"samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
						"reportingIntervalSeconds": 120,
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
						"channelSurveyType": "OFF_CHANNEL",
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
						"scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
						"percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
						"delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
						"radioType": "is2dot4GHz",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
						"serviceMetricDataType": "Channel",
 | 
											"serviceMetricDataType": "Channel",
 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
					},
 | 
										},
 | 
				
			||||||
@@ -192,29 +192,41 @@
 | 
				
			|||||||
					{
 | 
										{
 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
						"samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
						"reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
						"channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
						"scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
						"percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
						"delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
						"radioType": "is2dot4GHz",
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
						"serviceMetricDataType": "Channel",
 | 
											"serviceMetricDataType": "Channel",
 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
					},
 | 
										},
 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
						"samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
						"reportingIntervalSeconds": 60,
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
						"channelSurveyType": "ON_CHANNEL",
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
						"scanIntervalMillis": 0,
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
						"percentUtilizationThreshold": 10,
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
						"delayMillisecondsThreshold": 600,
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
						"radioType": "is5GHzL",
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
						"serviceMetricDataType": "Channel",
 | 
											"serviceMetricDataType": "Channel",
 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
				],
 | 
									],
 | 
				
			||||||
				"Neighbour": [
 | 
									"Neighbour": [
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
											"samplingInterval": 30,
 | 
				
			||||||
 | 
											"reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
											"channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
											"radioType": "is5GHzL",
 | 
				
			||||||
 | 
											"serviceMetricDataType": "Neighbour",
 | 
				
			||||||
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
 | 
										},
 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
						"samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
@@ -239,6 +251,18 @@
 | 
				
			|||||||
						"serviceMetricDataType": "Neighbour",
 | 
											"serviceMetricDataType": "Neighbour",
 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
					},
 | 
										},
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
											"samplingInterval": 30,
 | 
				
			||||||
 | 
											"reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
											"channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
											"scanIntervalMillis": 0,
 | 
				
			||||||
 | 
											"percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
											"delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
											"radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
											"serviceMetricDataType": "Neighbour",
 | 
				
			||||||
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
 | 
										},
 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
											"model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
						"samplingInterval": 30,
 | 
											"samplingInterval": 30,
 | 
				
			||||||
@@ -262,37 +286,13 @@
 | 
				
			|||||||
						"radioType": "is5GHzU",
 | 
											"radioType": "is5GHzU",
 | 
				
			||||||
						"serviceMetricDataType": "Neighbour",
 | 
											"serviceMetricDataType": "Neighbour",
 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
											"statsReportFormat": "RAW"
 | 
				
			||||||
					},
 | 
					 | 
				
			||||||
					{
 | 
					 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
					 | 
				
			||||||
						"samplingInterval": 30,
 | 
					 | 
				
			||||||
						"reportingIntervalSeconds": 120,
 | 
					 | 
				
			||||||
						"channelSurveyType": "OFF_CHANNEL",
 | 
					 | 
				
			||||||
						"scanIntervalMillis": 0,
 | 
					 | 
				
			||||||
						"percentUtilizationThreshold": 10,
 | 
					 | 
				
			||||||
						"delayMillisecondsThreshold": 600,
 | 
					 | 
				
			||||||
						"radioType": "is5GHzL",
 | 
					 | 
				
			||||||
						"serviceMetricDataType": "Neighbour",
 | 
					 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
					 | 
				
			||||||
					},
 | 
					 | 
				
			||||||
					{
 | 
					 | 
				
			||||||
						"model_type": "ServiceMetricSurveyConfigParameters",
 | 
					 | 
				
			||||||
						"samplingInterval": 30,
 | 
					 | 
				
			||||||
						"reportingIntervalSeconds": 60,
 | 
					 | 
				
			||||||
						"channelSurveyType": "ON_CHANNEL",
 | 
					 | 
				
			||||||
						"scanIntervalMillis": 0,
 | 
					 | 
				
			||||||
						"percentUtilizationThreshold": 10,
 | 
					 | 
				
			||||||
						"delayMillisecondsThreshold": 600,
 | 
					 | 
				
			||||||
						"radioType": "is2dot4GHz",
 | 
					 | 
				
			||||||
						"serviceMetricDataType": "Neighbour",
 | 
					 | 
				
			||||||
						"statsReportFormat": "RAW"
 | 
					 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
				]
 | 
									]
 | 
				
			||||||
			},
 | 
								},
 | 
				
			||||||
			"profileType": "service_metrics_collection_config"
 | 
								"profileType": "service_metrics_collection_config"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		"createdTimestamp": 1606778369931,
 | 
							"createdTimestamp": 1605711195528,
 | 
				
			||||||
		"lastModifiedTimestamp": 1606778369931,
 | 
							"lastModifiedTimestamp": 1605711195528,
 | 
				
			||||||
		"childProfileIds": [
 | 
							"childProfileIds": [
 | 
				
			||||||
		]
 | 
							]
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,7 +4,7 @@
 | 
				
			|||||||
		"id": 17,
 | 
							"id": 17,
 | 
				
			||||||
		"customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
		"profileType": "passpoint_operator",
 | 
							"profileType": "passpoint_operator",
 | 
				
			||||||
		"name": "TipWlan-Passpoint-Operator",
 | 
							"name": "TipWlan-Hotspot20-Operator",
 | 
				
			||||||
		"details": {
 | 
							"details": {
 | 
				
			||||||
			"model_type": "PasspointOperatorProfile",
 | 
								"model_type": "PasspointOperatorProfile",
 | 
				
			||||||
			"serverOnlyAuthenticatedL2EncryptionNetwork": false,
 | 
								"serverOnlyAuthenticatedL2EncryptionNetwork": false,
 | 
				
			||||||
@@ -29,8 +29,8 @@
 | 
				
			|||||||
			],
 | 
								],
 | 
				
			||||||
			"profileType": "passpoint_operator"
 | 
								"profileType": "passpoint_operator"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		"createdTimestamp": 1606778369945,
 | 
							"createdTimestamp": 1605711164952,
 | 
				
			||||||
		"lastModifiedTimestamp": 1606778369945,
 | 
							"lastModifiedTimestamp": 1605711164952,
 | 
				
			||||||
		"childProfileIds": [
 | 
							"childProfileIds": [
 | 
				
			||||||
		]
 | 
							]
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,9 +1,9 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
	"model_type": "Profile",
 | 
						"model_type": "Profile",
 | 
				
			||||||
    "id": 11,
 | 
						"id": 21,
 | 
				
			||||||
	"customerId": 2,
 | 
						"customerId": 2,
 | 
				
			||||||
	"profileType": "rf",
 | 
						"profileType": "rf",
 | 
				
			||||||
    "name": "TipWlan-rf",
 | 
						"name": "TipWlan-rf-passpoint",
 | 
				
			||||||
	"details": {
 | 
						"details": {
 | 
				
			||||||
		"model_type": "RfConfiguration",
 | 
							"model_type": "RfConfiguration",
 | 
				
			||||||
		"rfConfigMap": {
 | 
							"rfConfigMap": {
 | 
				
			||||||
@@ -11,7 +11,7 @@
 | 
				
			|||||||
				"model_type": "RfElementConfiguration",
 | 
									"model_type": "RfElementConfiguration",
 | 
				
			||||||
				"radioType": "is5GHz",
 | 
									"radioType": "is5GHz",
 | 
				
			||||||
				"radioMode": "modeAC",
 | 
									"radioMode": "modeAC",
 | 
				
			||||||
                "rf": "TipWlan-rf",
 | 
									"rf": "TipWlan-rf-passpoint",
 | 
				
			||||||
				"beaconInterval": 100,
 | 
									"beaconInterval": 100,
 | 
				
			||||||
				"forceScanDuringVoice": "disabled",
 | 
									"forceScanDuringVoice": "disabled",
 | 
				
			||||||
				"rtsCtsThreshold": 65535,
 | 
									"rtsCtsThreshold": 65535,
 | 
				
			||||||
@@ -58,7 +58,7 @@
 | 
				
			|||||||
				"model_type": "RfElementConfiguration",
 | 
									"model_type": "RfElementConfiguration",
 | 
				
			||||||
				"radioType": "is2dot4GHz",
 | 
									"radioType": "is2dot4GHz",
 | 
				
			||||||
				"radioMode": "modeN",
 | 
									"radioMode": "modeN",
 | 
				
			||||||
                "rf": "TipWlan-rf",
 | 
									"rf": "TipWlan-rf-passpoint",
 | 
				
			||||||
				"beaconInterval": 100,
 | 
									"beaconInterval": 100,
 | 
				
			||||||
				"forceScanDuringVoice": "disabled",
 | 
									"forceScanDuringVoice": "disabled",
 | 
				
			||||||
				"rtsCtsThreshold": 65535,
 | 
									"rtsCtsThreshold": 65535,
 | 
				
			||||||
@@ -105,7 +105,7 @@
 | 
				
			|||||||
				"model_type": "RfElementConfiguration",
 | 
									"model_type": "RfElementConfiguration",
 | 
				
			||||||
				"radioType": "is5GHzU",
 | 
									"radioType": "is5GHzU",
 | 
				
			||||||
				"radioMode": "modeAC",
 | 
									"radioMode": "modeAC",
 | 
				
			||||||
                "rf": "TipWlan-rf",
 | 
									"rf": "TipWlan-rf-passpoint",
 | 
				
			||||||
				"beaconInterval": 100,
 | 
									"beaconInterval": 100,
 | 
				
			||||||
				"forceScanDuringVoice": "disabled",
 | 
									"forceScanDuringVoice": "disabled",
 | 
				
			||||||
				"rtsCtsThreshold": 65535,
 | 
									"rtsCtsThreshold": 65535,
 | 
				
			||||||
@@ -152,7 +152,7 @@
 | 
				
			|||||||
				"model_type": "RfElementConfiguration",
 | 
									"model_type": "RfElementConfiguration",
 | 
				
			||||||
				"radioType": "is5GHzL",
 | 
									"radioType": "is5GHzL",
 | 
				
			||||||
				"radioMode": "modeAC",
 | 
									"radioMode": "modeAC",
 | 
				
			||||||
                "rf": "TipWlan-rf",
 | 
									"rf": "TipWlan-rf-passpoint",
 | 
				
			||||||
				"beaconInterval": 100,
 | 
									"beaconInterval": 100,
 | 
				
			||||||
				"forceScanDuringVoice": "disabled",
 | 
									"forceScanDuringVoice": "disabled",
 | 
				
			||||||
				"rtsCtsThreshold": 65535,
 | 
									"rtsCtsThreshold": 65535,
 | 
				
			||||||
@@ -198,7 +198,8 @@
 | 
				
			|||||||
		},
 | 
							},
 | 
				
			||||||
		"profileType": "rf"
 | 
							"profileType": "rf"
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
    "createdTimestamp": 1606778369933,
 | 
						"createdTimestamp": 1605711191976,
 | 
				
			||||||
    "lastModifiedTimestamp": 1606778369933,
 | 
						"lastModifiedTimestamp": 1605711191976,
 | 
				
			||||||
    "childProfileIds": []
 | 
						"childProfileIds": [
 | 
				
			||||||
 | 
						]
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -1,80 +1,13 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		"model_type": "Profile",
 | 
					 | 
				
			||||||
		"id": 5,
 | 
					 | 
				
			||||||
		"customerId": 2,
 | 
					 | 
				
			||||||
		"profileType": "ssid",
 | 
					 | 
				
			||||||
		"name": "TipWlan-cloud-3-radios",
 | 
					 | 
				
			||||||
		"details": {
 | 
					 | 
				
			||||||
			"model_type": "SsidConfiguration",
 | 
					 | 
				
			||||||
			"ssid": "TipWlan-cloud-3-radios",
 | 
					 | 
				
			||||||
			"appliedRadios": [
 | 
					 | 
				
			||||||
				"is5GHzL",
 | 
					 | 
				
			||||||
				"is2dot4GHz",
 | 
					 | 
				
			||||||
				"is5GHzU"
 | 
					 | 
				
			||||||
			],
 | 
					 | 
				
			||||||
			"ssidAdminState": "enabled",
 | 
					 | 
				
			||||||
			"secureMode": "wpa2OnlyPSK",
 | 
					 | 
				
			||||||
			"vlanId": 1,
 | 
					 | 
				
			||||||
			"keyStr": "openwifi",
 | 
					 | 
				
			||||||
			"broadcastSsid": "enabled",
 | 
					 | 
				
			||||||
			"keyRefresh": 0,
 | 
					 | 
				
			||||||
			"noLocalSubnets": false,
 | 
					 | 
				
			||||||
			"radiusServiceName": null,
 | 
					 | 
				
			||||||
			"radiusAccountingServiceName": null,
 | 
					 | 
				
			||||||
			"radiusAcountingServiceInterval": null,
 | 
					 | 
				
			||||||
			"captivePortalId": null,
 | 
					 | 
				
			||||||
			"bandwidthLimitDown": 0,
 | 
					 | 
				
			||||||
			"bandwidthLimitUp": 0,
 | 
					 | 
				
			||||||
			"clientBandwidthLimitDown": 0,
 | 
					 | 
				
			||||||
			"clientBandwidthLimitUp": 0,
 | 
					 | 
				
			||||||
			"videoTrafficOnly": false,
 | 
					 | 
				
			||||||
			"radioBasedConfigs": {
 | 
					 | 
				
			||||||
				"is5GHzL": {
 | 
					 | 
				
			||||||
					"model_type": "RadioBasedSsidConfiguration",
 | 
					 | 
				
			||||||
					"enable80211r": null,
 | 
					 | 
				
			||||||
					"enable80211k": null,
 | 
					 | 
				
			||||||
					"enable80211v": null
 | 
					 | 
				
			||||||
				},
 | 
					 | 
				
			||||||
				"is2dot4GHz": {
 | 
					 | 
				
			||||||
					"model_type": "RadioBasedSsidConfiguration",
 | 
					 | 
				
			||||||
					"enable80211r": null,
 | 
					 | 
				
			||||||
					"enable80211k": null,
 | 
					 | 
				
			||||||
					"enable80211v": null
 | 
					 | 
				
			||||||
				},
 | 
					 | 
				
			||||||
				"is5GHz": {
 | 
					 | 
				
			||||||
					"model_type": "RadioBasedSsidConfiguration",
 | 
					 | 
				
			||||||
					"enable80211r": null,
 | 
					 | 
				
			||||||
					"enable80211k": null,
 | 
					 | 
				
			||||||
					"enable80211v": null
 | 
					 | 
				
			||||||
				},
 | 
					 | 
				
			||||||
				"is5GHzU": {
 | 
					 | 
				
			||||||
					"model_type": "RadioBasedSsidConfiguration",
 | 
					 | 
				
			||||||
					"enable80211r": null,
 | 
					 | 
				
			||||||
					"enable80211k": null,
 | 
					 | 
				
			||||||
					"enable80211v": null
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
			},
 | 
					 | 
				
			||||||
			"bonjourGatewayProfileId": null,
 | 
					 | 
				
			||||||
			"enable80211w": null,
 | 
					 | 
				
			||||||
			"wepConfig": null,
 | 
					 | 
				
			||||||
			"forwardMode": "BRIDGE",
 | 
					 | 
				
			||||||
			"profileType": "ssid"
 | 
					 | 
				
			||||||
		},
 | 
					 | 
				
			||||||
		"createdTimestamp": 1606778369598,
 | 
					 | 
				
			||||||
		"lastModifiedTimestamp": 1606778369598,
 | 
					 | 
				
			||||||
		"childProfileIds": [
 | 
					 | 
				
			||||||
		]
 | 
					 | 
				
			||||||
	},
 | 
					 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		"model_type": "Profile",
 | 
							"model_type": "Profile",
 | 
				
			||||||
		"id": 15,
 | 
							"id": 15,
 | 
				
			||||||
		"customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
		"profileType": "ssid",
 | 
							"profileType": "ssid",
 | 
				
			||||||
		"name": "TipWlan-cloud-passpoint-access",
 | 
							"name": "TipWlan-cloud-hotspot-access",
 | 
				
			||||||
		"details": {
 | 
							"details": {
 | 
				
			||||||
			"model_type": "SsidConfiguration",
 | 
								"model_type": "SsidConfiguration",
 | 
				
			||||||
			"ssid": "TipWlan-cloud-passpoint-access",
 | 
								"ssid": "TipWlan-cloud-hotspot-access",
 | 
				
			||||||
			"appliedRadios": [
 | 
								"appliedRadios": [
 | 
				
			||||||
				"is5GHzL",
 | 
									"is5GHzL",
 | 
				
			||||||
				"is5GHzU"
 | 
									"is5GHzU"
 | 
				
			||||||
@@ -88,7 +21,6 @@
 | 
				
			|||||||
			"noLocalSubnets": false,
 | 
								"noLocalSubnets": false,
 | 
				
			||||||
			"radiusServiceName": null,
 | 
								"radiusServiceName": null,
 | 
				
			||||||
			"radiusAccountingServiceName": null,
 | 
								"radiusAccountingServiceName": null,
 | 
				
			||||||
			"radiusAcountingServiceInterval": null,
 | 
					 | 
				
			||||||
			"captivePortalId": null,
 | 
								"captivePortalId": null,
 | 
				
			||||||
			"bandwidthLimitDown": 0,
 | 
								"bandwidthLimitDown": 0,
 | 
				
			||||||
			"bandwidthLimitUp": 0,
 | 
								"bandwidthLimitUp": 0,
 | 
				
			||||||
@@ -96,7 +28,7 @@
 | 
				
			|||||||
			"clientBandwidthLimitUp": 0,
 | 
								"clientBandwidthLimitUp": 0,
 | 
				
			||||||
			"videoTrafficOnly": false,
 | 
								"videoTrafficOnly": false,
 | 
				
			||||||
			"radioBasedConfigs": {
 | 
								"radioBasedConfigs": {
 | 
				
			||||||
				"is5GHzL": {
 | 
									"is5GHz": {
 | 
				
			||||||
					"model_type": "RadioBasedSsidConfiguration",
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
					"enable80211r": null,
 | 
										"enable80211r": null,
 | 
				
			||||||
					"enable80211k": null,
 | 
										"enable80211k": null,
 | 
				
			||||||
@@ -108,13 +40,13 @@
 | 
				
			|||||||
					"enable80211k": null,
 | 
										"enable80211k": null,
 | 
				
			||||||
					"enable80211v": null
 | 
										"enable80211v": null
 | 
				
			||||||
				},
 | 
									},
 | 
				
			||||||
				"is5GHz": {
 | 
									"is5GHzU": {
 | 
				
			||||||
					"model_type": "RadioBasedSsidConfiguration",
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
					"enable80211r": null,
 | 
										"enable80211r": null,
 | 
				
			||||||
					"enable80211k": null,
 | 
										"enable80211k": null,
 | 
				
			||||||
					"enable80211v": null
 | 
										"enable80211v": null
 | 
				
			||||||
				},
 | 
									},
 | 
				
			||||||
				"is5GHzU": {
 | 
									"is5GHzL": {
 | 
				
			||||||
					"model_type": "RadioBasedSsidConfiguration",
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
					"enable80211r": null,
 | 
										"enable80211r": null,
 | 
				
			||||||
					"enable80211k": null,
 | 
										"enable80211k": null,
 | 
				
			||||||
@@ -127,8 +59,8 @@
 | 
				
			|||||||
			"forwardMode": null,
 | 
								"forwardMode": null,
 | 
				
			||||||
			"profileType": "ssid"
 | 
								"profileType": "ssid"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		"createdTimestamp": 1606778369943,
 | 
							"createdTimestamp": 1605711164949,
 | 
				
			||||||
		"lastModifiedTimestamp": 1606778370811,
 | 
							"lastModifiedTimestamp": 1605711223372,
 | 
				
			||||||
		"childProfileIds": [
 | 
							"childProfileIds": [
 | 
				
			||||||
			24
 | 
								24
 | 
				
			||||||
		]
 | 
							]
 | 
				
			||||||
@@ -138,10 +70,10 @@
 | 
				
			|||||||
		"id": 16,
 | 
							"id": 16,
 | 
				
			||||||
		"customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
		"profileType": "ssid",
 | 
							"profileType": "ssid",
 | 
				
			||||||
		"name": "TipWlan-cloud-passpoint-osu",
 | 
							"name": "TipWlan-cloud-hotspot-osu",
 | 
				
			||||||
		"details": {
 | 
							"details": {
 | 
				
			||||||
			"model_type": "SsidConfiguration",
 | 
								"model_type": "SsidConfiguration",
 | 
				
			||||||
			"ssid": "TipWlan-cloud-passpoint-osu",
 | 
								"ssid": "TipWlan-cloud-hotspot-osu",
 | 
				
			||||||
			"appliedRadios": [
 | 
								"appliedRadios": [
 | 
				
			||||||
				"is2dot4GHz"
 | 
									"is2dot4GHz"
 | 
				
			||||||
			],
 | 
								],
 | 
				
			||||||
@@ -154,7 +86,6 @@
 | 
				
			|||||||
			"noLocalSubnets": false,
 | 
								"noLocalSubnets": false,
 | 
				
			||||||
			"radiusServiceName": null,
 | 
								"radiusServiceName": null,
 | 
				
			||||||
			"radiusAccountingServiceName": null,
 | 
								"radiusAccountingServiceName": null,
 | 
				
			||||||
			"radiusAcountingServiceInterval": null,
 | 
					 | 
				
			||||||
			"captivePortalId": null,
 | 
								"captivePortalId": null,
 | 
				
			||||||
			"bandwidthLimitDown": 0,
 | 
								"bandwidthLimitDown": 0,
 | 
				
			||||||
			"bandwidthLimitUp": 0,
 | 
								"bandwidthLimitUp": 0,
 | 
				
			||||||
@@ -162,7 +93,7 @@
 | 
				
			|||||||
			"clientBandwidthLimitUp": 0,
 | 
								"clientBandwidthLimitUp": 0,
 | 
				
			||||||
			"videoTrafficOnly": false,
 | 
								"videoTrafficOnly": false,
 | 
				
			||||||
			"radioBasedConfigs": {
 | 
								"radioBasedConfigs": {
 | 
				
			||||||
				"is5GHzL": {
 | 
									"is5GHz": {
 | 
				
			||||||
					"model_type": "RadioBasedSsidConfiguration",
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
					"enable80211r": null,
 | 
										"enable80211r": null,
 | 
				
			||||||
					"enable80211k": null,
 | 
										"enable80211k": null,
 | 
				
			||||||
@@ -174,13 +105,13 @@
 | 
				
			|||||||
					"enable80211k": null,
 | 
										"enable80211k": null,
 | 
				
			||||||
					"enable80211v": null
 | 
										"enable80211v": null
 | 
				
			||||||
				},
 | 
									},
 | 
				
			||||||
				"is5GHz": {
 | 
									"is5GHzU": {
 | 
				
			||||||
					"model_type": "RadioBasedSsidConfiguration",
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
					"enable80211r": null,
 | 
										"enable80211r": null,
 | 
				
			||||||
					"enable80211k": null,
 | 
										"enable80211k": null,
 | 
				
			||||||
					"enable80211v": null
 | 
										"enable80211v": null
 | 
				
			||||||
				},
 | 
									},
 | 
				
			||||||
				"is5GHzU": {
 | 
									"is5GHzL": {
 | 
				
			||||||
					"model_type": "RadioBasedSsidConfiguration",
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
					"enable80211r": null,
 | 
										"enable80211r": null,
 | 
				
			||||||
					"enable80211k": null,
 | 
										"enable80211k": null,
 | 
				
			||||||
@@ -193,8 +124,8 @@
 | 
				
			|||||||
			"forwardMode": null,
 | 
								"forwardMode": null,
 | 
				
			||||||
			"profileType": "ssid"
 | 
								"profileType": "ssid"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		"createdTimestamp": 1606778369944,
 | 
							"createdTimestamp": 1605711164950,
 | 
				
			||||||
		"lastModifiedTimestamp": 1606778370352,
 | 
							"lastModifiedTimestamp": 1605711171732,
 | 
				
			||||||
		"childProfileIds": [
 | 
							"childProfileIds": [
 | 
				
			||||||
			19,
 | 
								19,
 | 
				
			||||||
			20
 | 
								20
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,7 +4,7 @@
 | 
				
			|||||||
		"id": 18,
 | 
							"id": 18,
 | 
				
			||||||
		"customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
		"profileType": "passpoint_venue",
 | 
							"profileType": "passpoint_venue",
 | 
				
			||||||
		"name": "TipWlan-Passpoint-Venue",
 | 
							"name": "TipWlan-Hotspot20-Venue",
 | 
				
			||||||
		"details": {
 | 
							"details": {
 | 
				
			||||||
			"model_type": "PasspointVenueProfile",
 | 
								"model_type": "PasspointVenueProfile",
 | 
				
			||||||
			"venueNameSet": [
 | 
								"venueNameSet": [
 | 
				
			||||||
@@ -28,15 +28,15 @@
 | 
				
			|||||||
				}
 | 
									}
 | 
				
			||||||
			],
 | 
								],
 | 
				
			||||||
			"venueTypeAssignment": {
 | 
								"venueTypeAssignment": {
 | 
				
			||||||
				"model_type": "PasspointVenueTypeAssignment",
 | 
									"model_type": "ProfileVenueTypeAssignment",
 | 
				
			||||||
				"venueDescription": "Research and Development Facility",
 | 
									"venueDescription": "Research and Development Facility",
 | 
				
			||||||
				"venueGroupId": 2,
 | 
									"venueGroupId": 2,
 | 
				
			||||||
				"venueTypeId": 8
 | 
									"venueTypeId": 8
 | 
				
			||||||
			},
 | 
								},
 | 
				
			||||||
			"profileType": "passpoint_venue"
 | 
								"profileType": "passpoint_venue"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		"createdTimestamp": 1606778369950,
 | 
							"createdTimestamp": 1605711164956,
 | 
				
			||||||
		"lastModifiedTimestamp": 1606778369950,
 | 
							"lastModifiedTimestamp": 1605711164956,
 | 
				
			||||||
		"childProfileIds": [
 | 
							"childProfileIds": [
 | 
				
			||||||
		]
 | 
							]
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7,7 +7,6 @@
 | 
				
			|||||||
        <listEntry value="1"/>
 | 
					        <listEntry value="1"/>
 | 
				
			||||||
    </listAttribute>
 | 
					    </listAttribute>
 | 
				
			||||||
    <booleanAttribute key="org.eclipse.jdt.launching.ATTR_EXCLUDE_TEST_CODE" value="true"/>
 | 
					    <booleanAttribute key="org.eclipse.jdt.launching.ATTR_EXCLUDE_TEST_CODE" value="true"/>
 | 
				
			||||||
    <booleanAttribute key="org.eclipse.jdt.launching.ATTR_SHOW_CODEDETAILS_IN_EXCEPTION_MESSAGES" value="true"/>
 | 
					 | 
				
			||||||
    <booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_CLASSPATH_ONLY_JAR" value="false"/>
 | 
					    <booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_CLASSPATH_ONLY_JAR" value="false"/>
 | 
				
			||||||
    <booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
 | 
					    <booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
 | 
				
			||||||
    <stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
 | 
					    <stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -30,7 +30,7 @@ import com.telecominfraproject.wlan.opensync.external.integration.models.Opensyn
 | 
				
			|||||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPVIFState;
 | 
					import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPVIFState;
 | 
				
			||||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncWifiAssociatedClients;
 | 
					import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncWifiAssociatedClients;
 | 
				
			||||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.OvsdbDao;
 | 
					import com.telecominfraproject.wlan.opensync.ovsdb.dao.OvsdbDao;
 | 
				
			||||||
import com.telecominfraproject.wlan.opensync.util.OvsdbStringConstants;
 | 
					import com.telecominfraproject.wlan.opensync.ovsdb.dao.utilities.OvsdbStringConstants;
 | 
				
			||||||
import com.telecominfraproject.wlan.opensync.util.SslUtil;
 | 
					import com.telecominfraproject.wlan.opensync.util.SslUtil;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.network.models.ApNetworkConfiguration;
 | 
					import com.telecominfraproject.wlan.profile.network.models.ApNetworkConfiguration;
 | 
				
			||||||
import com.vmware.ovsdb.callback.ConnectionCallback;
 | 
					import com.vmware.ovsdb.callback.ConnectionCallback;
 | 
				
			||||||
@@ -193,36 +193,40 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        LOG.debug("Client {} connect for AP {}", clientCn, apId);
 | 
					        LOG.debug("Client {} connect for AP {}", clientCn, apId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        ovsdbDao.removeAllPasspointConfigs(ovsdbClient);
 | 
					 | 
				
			||||||
        ovsdbDao.removeAllSsids(ovsdbClient); // always    
 | 
					 | 
				
			||||||
        ovsdbDao.removeAllInetConfigs(ovsdbClient);       
 | 
					 | 
				
			||||||
        ovsdbDao.removeWifiRrm(ovsdbClient);
 | 
					 | 
				
			||||||
        ovsdbDao.removeAllStatsConfigs(ovsdbClient); // always
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        OpensyncAPConfig opensyncAPConfig = extIntegrationInterface.getApConfig(apId);
 | 
					        OpensyncAPConfig opensyncAPConfig = extIntegrationInterface.getApConfig(apId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (opensyncAPConfig != null) {
 | 
					        if (opensyncAPConfig != null) {
 | 
				
			||||||
            
 | 
					            // cleanup existing
 | 
				
			||||||
 | 
					            ovsdbDao.removeAllStatsConfigs(ovsdbClient); // always
 | 
				
			||||||
 | 
					            ovsdbDao.removeAllPasspointConfigs(ovsdbClient);
 | 
				
			||||||
 | 
					            ovsdbDao.removeWifiRrm(ovsdbClient);
 | 
				
			||||||
 | 
					            ovsdbDao.removeAllSsids(ovsdbClient, opensyncAPConfig); // always
 | 
				
			||||||
 | 
					            ovsdbDao.removeAllGreTunnels(ovsdbClient, opensyncAPConfig);
 | 
				
			||||||
 | 
					            // reconfigure
 | 
				
			||||||
            ovsdbDao.configureWifiRadios(ovsdbClient, opensyncAPConfig);
 | 
					            ovsdbDao.configureWifiRadios(ovsdbClient, opensyncAPConfig);
 | 
				
			||||||
            ovsdbDao.configureWifiRrm(ovsdbClient, opensyncAPConfig);
 | 
					            ovsdbDao.configureInterfaces(ovsdbClient);
 | 
				
			||||||
            ovsdbDao.configureGreTunnels(ovsdbClient, opensyncAPConfig);
 | 
					            ovsdbDao.configureGreTunnels(ovsdbClient, opensyncAPConfig);
 | 
				
			||||||
            ovsdbDao.createVlanNetworkInterfaces(ovsdbClient, opensyncAPConfig);
 | 
					 | 
				
			||||||
            
 | 
					 | 
				
			||||||
            ovsdbDao.configureSsids(ovsdbClient, opensyncAPConfig);
 | 
					            ovsdbDao.configureSsids(ovsdbClient, opensyncAPConfig);
 | 
				
			||||||
 | 
					            ovsdbDao.configureWifiRrm(ovsdbClient, opensyncAPConfig);
 | 
				
			||||||
            if (opensyncAPConfig.getHotspotConfig() != null) {
 | 
					            if (opensyncAPConfig.getHotspotConfig() != null) {
 | 
				
			||||||
                ovsdbDao.configureHotspots(ovsdbClient, opensyncAPConfig);
 | 
					                ovsdbDao.configureHotspots(ovsdbClient, opensyncAPConfig);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            
 | 
					 | 
				
			||||||
            ovsdbDao.configureInterfaces(ovsdbClient);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            ovsdbDao.configureStatsFromProfile(ovsdbClient, opensyncAPConfig);
 | 
					            ovsdbDao.configureStatsFromProfile(ovsdbClient, opensyncAPConfig);
 | 
				
			||||||
 | 
					            if (((ApNetworkConfiguration) opensyncAPConfig.getApProfile().getDetails()).getSyntheticClientEnabled()) {
 | 
				
			||||||
 | 
					                ovsdbDao.enableNetworkProbeForSyntheticClient(ovsdbClient);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            ovsdbDao.removeAllPasspointConfigs(ovsdbClient);
 | 
				
			||||||
 | 
					            ovsdbDao.removeAllStatsConfigs(ovsdbClient); // always
 | 
				
			||||||
 | 
					            ovsdbDao.removeWifiRrm(ovsdbClient);
 | 
				
			||||||
 | 
					            ovsdbDao.removeAllSsids(ovsdbClient); // always
 | 
				
			||||||
 | 
					            ovsdbDao.removeAllGreTunnels(ovsdbClient, null);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (ovsdbDao.getDeviceStatsReportingInterval(ovsdbClient) != collectionIntervalSecDeviceStats) {
 | 
					        if (ovsdbDao.getDeviceStatsReportingInterval(ovsdbClient) != collectionIntervalSecDeviceStats) {
 | 
				
			||||||
            ovsdbDao.updateDeviceStatsReportingInterval(ovsdbClient, collectionIntervalSecDeviceStats);
 | 
					            ovsdbDao.updateDeviceStatsReportingInterval(ovsdbClient, collectionIntervalSecDeviceStats);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        } else {
 | 
					 | 
				
			||||||
            LOG.info("No Configuration available for {}", apId);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        LOG.debug("Client connect Done");
 | 
					        LOG.debug("Client connect Done");
 | 
				
			||||||
        return connectNodeInfo;
 | 
					        return connectNodeInfo;
 | 
				
			||||||
@@ -266,25 +270,20 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
 | 
				
			|||||||
            LOG.warn("AP with id " + apId + " does not have a config to apply.");
 | 
					            LOG.warn("AP with id " + apId + " does not have a config to apply.");
 | 
				
			||||||
            return;
 | 
					            return;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        ovsdbDao.removeAllPasspointConfigs(ovsdbClient);
 | 
					 | 
				
			||||||
        ovsdbDao.removeAllSsids(ovsdbClient); // always    
 | 
					 | 
				
			||||||
        ovsdbDao.removeAllInetConfigs(ovsdbClient);       
 | 
					 | 
				
			||||||
        ovsdbDao.removeWifiRrm(ovsdbClient);
 | 
					 | 
				
			||||||
        ovsdbDao.removeAllStatsConfigs(ovsdbClient); // always
 | 
					        ovsdbDao.removeAllStatsConfigs(ovsdbClient); // always
 | 
				
			||||||
 | 
					        ovsdbDao.removeAllPasspointConfigs(ovsdbClient);
 | 
				
			||||||
 | 
					        ovsdbDao.removeWifiRrm(ovsdbClient);
 | 
				
			||||||
 | 
					        ovsdbDao.removeAllSsids(ovsdbClient, opensyncAPConfig); // always
 | 
				
			||||||
 | 
					        ovsdbDao.removeAllGreTunnels(ovsdbClient, opensyncAPConfig);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        ovsdbDao.configureWifiRadios(ovsdbClient, opensyncAPConfig);
 | 
					        ovsdbDao.configureWifiRadios(ovsdbClient, opensyncAPConfig);
 | 
				
			||||||
        ovsdbDao.configureWifiRrm(ovsdbClient, opensyncAPConfig);
 | 
					        ovsdbDao.configureInterfaces(ovsdbClient);
 | 
				
			||||||
        ovsdbDao.configureGreTunnels(ovsdbClient, opensyncAPConfig);
 | 
					        ovsdbDao.configureGreTunnels(ovsdbClient, opensyncAPConfig);
 | 
				
			||||||
        ovsdbDao.createVlanNetworkInterfaces(ovsdbClient, opensyncAPConfig);
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        ovsdbDao.configureSsids(ovsdbClient, opensyncAPConfig);
 | 
					        ovsdbDao.configureSsids(ovsdbClient, opensyncAPConfig);
 | 
				
			||||||
 | 
					        ovsdbDao.configureWifiRrm(ovsdbClient, opensyncAPConfig);
 | 
				
			||||||
        if (opensyncAPConfig.getHotspotConfig() != null) {
 | 
					        if (opensyncAPConfig.getHotspotConfig() != null) {
 | 
				
			||||||
            ovsdbDao.configureHotspots(ovsdbClient, opensyncAPConfig);
 | 
					            ovsdbDao.configureHotspots(ovsdbClient, opensyncAPConfig);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        ovsdbDao.configureInterfaces(ovsdbClient);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        ovsdbDao.configureStatsFromProfile(ovsdbClient, opensyncAPConfig);
 | 
					        ovsdbDao.configureStatsFromProfile(ovsdbClient, opensyncAPConfig);
 | 
				
			||||||
        if (ovsdbDao.getDeviceStatsReportingInterval(ovsdbClient) != collectionIntervalSecDeviceStats) {
 | 
					        if (ovsdbDao.getDeviceStatsReportingInterval(ovsdbClient) != collectionIntervalSecDeviceStats) {
 | 
				
			||||||
            ovsdbDao.updateDeviceStatsReportingInterval(ovsdbClient, collectionIntervalSecDeviceStats);
 | 
					            ovsdbDao.updateDeviceStatsReportingInterval(ovsdbClient, collectionIntervalSecDeviceStats);
 | 
				
			||||||
@@ -374,7 +373,6 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                    @Override
 | 
					                    @Override
 | 
				
			||||||
                    public void update(TableUpdates tableUpdates) {
 | 
					                    public void update(TableUpdates tableUpdates) {
 | 
				
			||||||
                        try {
 | 
					 | 
				
			||||||
                        LOG.info(OvsdbDao.dhcpLeasedIpDbTable + "_" + key + " monitor callback received {}",
 | 
					                        LOG.info(OvsdbDao.dhcpLeasedIpDbTable + "_" + key + " monitor callback received {}",
 | 
				
			||||||
                                tableUpdates);
 | 
					                                tableUpdates);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -432,9 +430,6 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
 | 
				
			|||||||
                            extIntegrationInterface.dhcpLeasedIpDbTableUpdate(update, key, RowUpdateOperation.MODIFY);
 | 
					                            extIntegrationInterface.dhcpLeasedIpDbTableUpdate(update, key, RowUpdateOperation.MODIFY);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        } catch (Exception e) {
 | 
					 | 
				
			||||||
                            LOG.error("dhcpLeasedIpDbTableUpdate failed", e);
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -453,7 +448,6 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                    @Override
 | 
					                    @Override
 | 
				
			||||||
                    public void update(TableUpdates tableUpdates) {
 | 
					                    public void update(TableUpdates tableUpdates) {
 | 
				
			||||||
                        try {
 | 
					 | 
				
			||||||
                        LOG.info(OvsdbDao.commandStateDbTable + "_" + key + " monitor callback received {}",
 | 
					                        LOG.info(OvsdbDao.commandStateDbTable + "_" + key + " monitor callback received {}",
 | 
				
			||||||
                                tableUpdates);
 | 
					                                tableUpdates);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -511,9 +505,6 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
 | 
				
			|||||||
                            extIntegrationInterface.commandStateDbTableUpdate(update, key, RowUpdateOperation.MODIFY);
 | 
					                            extIntegrationInterface.commandStateDbTableUpdate(update, key, RowUpdateOperation.MODIFY);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        } catch (Exception e) {
 | 
					 | 
				
			||||||
                            LOG.error("commandStateDbTableUpdate failed", e);
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -531,14 +522,10 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                    @Override
 | 
					                    @Override
 | 
				
			||||||
                    public void update(TableUpdates tableUpdates) {
 | 
					                    public void update(TableUpdates tableUpdates) {
 | 
				
			||||||
                        try {
 | 
					 | 
				
			||||||
                        LOG.info(OvsdbDao.awlanNodeDbTable + "_" + key + " monitor callback received {}", tableUpdates);
 | 
					                        LOG.info(OvsdbDao.awlanNodeDbTable + "_" + key + " monitor callback received {}", tableUpdates);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        extIntegrationInterface.awlanNodeDbTableUpdate(
 | 
					                        extIntegrationInterface.awlanNodeDbTableUpdate(
 | 
				
			||||||
                                ovsdbDao.getOpensyncAWLANNode(tableUpdates, key, ovsdbClient), key);
 | 
					                                ovsdbDao.getOpensyncAWLANNode(tableUpdates, key, ovsdbClient), key);
 | 
				
			||||||
                        } catch (Exception e) {
 | 
					 | 
				
			||||||
                            LOG.error("awlanNodeDbTableUpdate failed",e);
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
@@ -556,7 +543,6 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
 | 
				
			|||||||
                    @Override
 | 
					                    @Override
 | 
				
			||||||
                    public void update(TableUpdates tableUpdates) {
 | 
					                    public void update(TableUpdates tableUpdates) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        try {
 | 
					 | 
				
			||||||
                        LOG.info(OvsdbDao.wifiAssociatedClientsDbTable + "_" + key + " monitor callback received {}",
 | 
					                        LOG.info(OvsdbDao.wifiAssociatedClientsDbTable + "_" + key + " monitor callback received {}",
 | 
				
			||||||
                                tableUpdates);
 | 
					                                tableUpdates);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -582,9 +568,6 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                        // now address the update/add
 | 
					                        // now address the update/add
 | 
				
			||||||
                        extIntegrationInterface.wifiAssociatedClientsDbTableUpdate(associatedClients, key);
 | 
					                        extIntegrationInterface.wifiAssociatedClientsDbTableUpdate(associatedClients, key);
 | 
				
			||||||
                        } catch (Exception e) {
 | 
					 | 
				
			||||||
                           LOG.error("wifiAssociatedClientsDbTableUpdate failed", e);
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -603,7 +586,6 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                    @Override
 | 
					                    @Override
 | 
				
			||||||
                    public void update(TableUpdates tableUpdates) {
 | 
					                    public void update(TableUpdates tableUpdates) {
 | 
				
			||||||
                        try {
 | 
					 | 
				
			||||||
                        LOG.info(OvsdbDao.ovsdbName,
 | 
					                        LOG.info(OvsdbDao.ovsdbName,
 | 
				
			||||||
                                OvsdbDao.wifiInetStateDbTable + "_" + key + " monitor callback received {}",
 | 
					                                OvsdbDao.wifiInetStateDbTable + "_" + key + " monitor callback received {}",
 | 
				
			||||||
                                tableUpdates);
 | 
					                                tableUpdates);
 | 
				
			||||||
@@ -631,9 +613,6 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                        // now process updates and mutations
 | 
					                        // now process updates and mutations
 | 
				
			||||||
                        extIntegrationInterface.wifiInetStateDbTableUpdate(inetStateInsertOrUpdate, key);
 | 
					                        extIntegrationInterface.wifiInetStateDbTableUpdate(inetStateInsertOrUpdate, key);
 | 
				
			||||||
                        } catch (Exception e) {
 | 
					 | 
				
			||||||
                            LOG.error("wifiInetStateDbTableUpdate failed",e);
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -651,15 +630,11 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                    @Override
 | 
					                    @Override
 | 
				
			||||||
                    public void update(TableUpdates tableUpdates) {
 | 
					                    public void update(TableUpdates tableUpdates) {
 | 
				
			||||||
                        try {
 | 
					 | 
				
			||||||
                        LOG.info(OvsdbDao.wifiRadioStateDbTable + "_" + key + " monitor callback received {}",
 | 
					                        LOG.info(OvsdbDao.wifiRadioStateDbTable + "_" + key + " monitor callback received {}",
 | 
				
			||||||
                                tableUpdates);
 | 
					                                tableUpdates);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        extIntegrationInterface.wifiRadioStatusDbTableUpdate(
 | 
					                        extIntegrationInterface.wifiRadioStatusDbTableUpdate(
 | 
				
			||||||
                                ovsdbDao.getOpensyncAPRadioState(tableUpdates, key, ovsdbClient), key);
 | 
					                                ovsdbDao.getOpensyncAPRadioState(tableUpdates, key, ovsdbClient), key);
 | 
				
			||||||
                        } catch (Exception e) {
 | 
					 | 
				
			||||||
                            LOG.error("wifiRadioStatusDbTableUpdate failed",e);
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
@@ -676,7 +651,6 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                    @Override
 | 
					                    @Override
 | 
				
			||||||
                    public void update(TableUpdates tableUpdates) {
 | 
					                    public void update(TableUpdates tableUpdates) {
 | 
				
			||||||
                        try {
 | 
					 | 
				
			||||||
                        LOG.info(OvsdbDao.wifiVifStateDbTable + "_" + key + " monitor callback received {}",
 | 
					                        LOG.info(OvsdbDao.wifiVifStateDbTable + "_" + key + " monitor callback received {}",
 | 
				
			||||||
                                tableUpdates);
 | 
					                                tableUpdates);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -710,9 +684,6 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
 | 
				
			|||||||
                            }
 | 
					                            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        } catch (Exception e) {
 | 
					 | 
				
			||||||
                            LOG.error("wifiVIFStateDbTableUpdate failed", e);
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -1,4 +1,4 @@
 | 
				
			|||||||
package com.telecominfraproject.wlan.opensync.util;
 | 
					package com.telecominfraproject.wlan.opensync.ovsdb.dao.utilities;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class OvsdbStringConstants {
 | 
					public class OvsdbStringConstants {
 | 
				
			||||||
@@ -1,4 +1,4 @@
 | 
				
			|||||||
package com.telecominfraproject.wlan.opensync.util;
 | 
					package com.telecominfraproject.wlan.opensync.ovsdb.dao.utilities;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.telecominfraproject.wlan.client.models.ClientType;
 | 
					import com.telecominfraproject.wlan.client.models.ClientType;
 | 
				
			||||||
import com.telecominfraproject.wlan.core.model.equipment.RadioType;
 | 
					import com.telecominfraproject.wlan.core.model.equipment.RadioType;
 | 
				
			||||||
@@ -126,7 +126,7 @@ public class OpensyncGatewayTipWlanOvsdbClientTest {
 | 
				
			|||||||
        Mockito.verify(ovsdbSessionMapInterface).getSession("Test_Client_21P10C68818122");
 | 
					        Mockito.verify(ovsdbSessionMapInterface).getSession("Test_Client_21P10C68818122");
 | 
				
			||||||
        Mockito.verify(ovsdbSession).getOvsdbClient();
 | 
					        Mockito.verify(ovsdbSession).getOvsdbClient();
 | 
				
			||||||
        Mockito.verify(opensyncExternalIntegrationInterface).getApConfig("Test_Client_21P10C68818122");
 | 
					        Mockito.verify(opensyncExternalIntegrationInterface).getApConfig("Test_Client_21P10C68818122");
 | 
				
			||||||
        Mockito.verify(ovsdbDao).removeAllSsids(ovsdbClient);
 | 
					        Mockito.verify(ovsdbDao).removeAllSsids(ovsdbClient, apConfig);
 | 
				
			||||||
        Mockito.verify(ovsdbDao).removeAllStatsConfigs(ovsdbClient);
 | 
					        Mockito.verify(ovsdbDao).removeAllStatsConfigs(ovsdbClient);
 | 
				
			||||||
        Mockito.verify(ovsdbDao).configureWifiRadios(ovsdbClient, apConfig);
 | 
					        Mockito.verify(ovsdbDao).configureWifiRadios(ovsdbClient, apConfig);
 | 
				
			||||||
        Mockito.verify(ovsdbDao).configureSsids(ovsdbClient, apConfig);
 | 
					        Mockito.verify(ovsdbDao).configureSsids(ovsdbClient, apConfig);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -142,6 +142,48 @@ public class OvsdbDaoTest {
 | 
				
			|||||||
        mockito.finishMocking();
 | 
					        mockito.finishMocking();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    public void testRemoveAllGreTunnels() throws Exception {
 | 
				
			||||||
 | 
					        List<Row> rows = new ArrayList<>();
 | 
				
			||||||
 | 
					        OperationResult[] operationResult = new OperationResult[] { new SelectResult(rows) };
 | 
				
			||||||
 | 
					        Mockito.when(ovsdbClient.transact(Mockito.eq(OvsdbDao.ovsdbName), Mockito.anyList()))
 | 
				
			||||||
 | 
					                .thenReturn(selectionFutureResult);
 | 
				
			||||||
 | 
					        Mockito.when(selectionFutureResult.get(30, TimeUnit.SECONDS)).thenReturn(operationResult);
 | 
				
			||||||
 | 
					        Profile apProfile = new Profile();
 | 
				
			||||||
 | 
					        apProfile.setCustomerId(2);
 | 
				
			||||||
 | 
					        apProfile.setId(1L);
 | 
				
			||||||
 | 
					        apProfile.setName("ApProfile");
 | 
				
			||||||
 | 
					        apProfile.setProfileType(ProfileType.equipment_ap);
 | 
				
			||||||
 | 
					        ApNetworkConfiguration tunnelProfileDetails = ApNetworkConfiguration.createWithDefaults();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        tunnelProfileDetails.setGreLocalInetAddr(InetAddress.getByName("10.0.10.10"));
 | 
				
			||||||
 | 
					        tunnelProfileDetails.setGreRemoteInetAddr(InetAddress.getByName("192.168.0.10"));
 | 
				
			||||||
 | 
					        tunnelProfileDetails.setGreTunnelName("gre1");
 | 
				
			||||||
 | 
					        tunnelProfileDetails.setGreParentIfName("wan");
 | 
				
			||||||
 | 
					        apProfile.setDetails(tunnelProfileDetails);
 | 
				
			||||||
 | 
					        OpensyncAPConfig apConfig = Mockito.mock(OpensyncAPConfig.class);
 | 
				
			||||||
 | 
					        Mockito.when(apConfig.getApProfile()).thenReturn(apProfile);
 | 
				
			||||||
 | 
					        ovsdbDao.removeAllGreTunnels(ovsdbClient, apConfig);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.verify(apConfig, Mockito.times(2)).getApProfile();
 | 
				
			||||||
 | 
					        Mockito.verify(ovsdbClient, Mockito.times(1)).transact(Mockito.eq(OvsdbDao.ovsdbName), Mockito.anyList());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    public void testRemoveAllGreTunnelsNoProfile() throws Exception {
 | 
				
			||||||
 | 
					        List<Row> rows = new ArrayList<>();
 | 
				
			||||||
 | 
					        OperationResult[] operationResult = new OperationResult[] { new SelectResult(rows) };
 | 
				
			||||||
 | 
					        Mockito.when(ovsdbClient.transact(Mockito.eq(OvsdbDao.ovsdbName), Mockito.anyList()))
 | 
				
			||||||
 | 
					                .thenReturn(selectionFutureResult);
 | 
				
			||||||
 | 
					        Mockito.when(selectionFutureResult.get(30, TimeUnit.SECONDS)).thenReturn(operationResult);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        ovsdbDao.removeAllGreTunnels(ovsdbClient, null);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.verify(ovsdbClient, Mockito.times(1)).transact(Mockito.eq(OvsdbDao.ovsdbName), Mockito.anyList());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    public void testConfigureGreTunnels() throws Exception {
 | 
					    public void testConfigureGreTunnels() throws Exception {
 | 
				
			||||||
        List<Row> rows = new ArrayList<>();
 | 
					        List<Row> rows = new ArrayList<>();
 | 
				
			||||||
@@ -297,7 +339,7 @@ public class OvsdbDaoTest {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        ovsdbDao.configureHotspots(ovsdbClient, apConfig);
 | 
					        ovsdbDao.configureHotspots(ovsdbClient, apConfig);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Mockito.verify(futureResult, Mockito.times(13)).get(Mockito.anyLong(), Mockito.eq(TimeUnit.SECONDS));
 | 
					        Mockito.verify(futureResult, Mockito.times(11)).get(Mockito.anyLong(), Mockito.eq(TimeUnit.SECONDS));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -12,6 +12,7 @@ import java.util.Set;
 | 
				
			|||||||
import java.util.UUID;
 | 
					import java.util.UUID;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.telecominfraproject.wlan.core.model.equipment.RadioType;
 | 
					import com.telecominfraproject.wlan.core.model.equipment.RadioType;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.customer.models.Customer;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.models.Profile;
 | 
					import com.telecominfraproject.wlan.profile.models.Profile;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.models.ProfileType;
 | 
					import com.telecominfraproject.wlan.profile.models.ProfileType;
 | 
				
			||||||
import com.telecominfraproject.wlan.profile.network.models.ApNetworkConfiguration;
 | 
					import com.telecominfraproject.wlan.profile.network.models.ApNetworkConfiguration;
 | 
				
			||||||
@@ -40,37 +41,35 @@ import com.vmware.ovsdb.protocol.operation.result.UpdateResult;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
public class OvsdbDaoTestUtilities {
 | 
					public class OvsdbDaoTestUtilities {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Static creation of Profiles and Results to use with the OvsdbDao JUnit
 | 
					
 | 
				
			||||||
    // tests.
 | 
					    // Static creation of Profiles and Results to use with the OvsdbDao JUnit tests.
 | 
				
			||||||
    static void createPasspointHotspot(int customerId, Profile passpointHotspotConfig, Profile passpointOperatorProfile,
 | 
					    static void createPasspointHotspot(int customerId, Profile passpointHotspotConfig,
 | 
				
			||||||
            Profile passpointVenueProfile, Profile hotspot20IdProviderProfile, Profile hotspot20IdProviderProfile2,
 | 
					            Profile passpointOperatorProfile, Profile passpointVenueProfile, Profile hotspot20IdProviderProfile,
 | 
				
			||||||
            Profile profileSsidPsk, Profile profileSsidOsu, Profile hotspotProfileAp) {
 | 
					            Profile hotspot20IdProviderProfile2, Profile profileSsidPsk, Profile profileSsidOsu,
 | 
				
			||||||
 | 
					            Profile hotspotProfileAp) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        profileSsidPsk = createPasspointAccessSsid(customerId);
 | 
					        profileSsidPsk = createPasspointAccessSsid(customerId);
 | 
				
			||||||
        profileSsidPsk.setId(1L);
 | 
					 | 
				
			||||||
        profileSsidOsu = createPasspointOsuSsid(customerId);
 | 
					        profileSsidOsu = createPasspointOsuSsid(customerId);
 | 
				
			||||||
        profileSsidOsu.setId(2L);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        passpointOperatorProfile = createPasspointOperatorProfile(customerId);
 | 
					        passpointOperatorProfile = createPasspointOperatorProfile(customerId);
 | 
				
			||||||
        passpointOperatorProfile.setId(3L);
 | 
					
 | 
				
			||||||
        passpointVenueProfile = createPasspointVenueProfile(customerId);
 | 
					        passpointVenueProfile = createPasspointVenueProfile(customerId);
 | 
				
			||||||
        passpointVenueProfile.setId(4L);
 | 
					
 | 
				
			||||||
        hotspot20IdProviderProfile = createPasspointIdProviderProfile(customerId, hotspot20IdProviderProfile,
 | 
					        hotspot20IdProviderProfile = createPasspointIdProviderProfile(customerId, hotspot20IdProviderProfile,
 | 
				
			||||||
                "TipWlan-Hotspot20-OSU-Provider", "Rogers AT&T Wireless", "Canada", "ca", 302, 720, "rogers.com", 1);
 | 
					                "TipWlan-Hotspot20-OSU-Provider", "Rogers AT&T Wireless", "Canada", "ca", 302, 720, "rogers.com", 1);
 | 
				
			||||||
        hotspot20IdProviderProfile.setId(5L);
 | 
					
 | 
				
			||||||
        hotspot20IdProviderProfile2 = createPasspointIdProviderProfile(customerId, hotspot20IdProviderProfile2,
 | 
					        hotspot20IdProviderProfile2 = createPasspointIdProviderProfile(customerId, hotspot20IdProviderProfile2,
 | 
				
			||||||
                "TipWlan-Hotspot20-OSU-Provider-2", "Telus Mobility", "Canada", "ca", 302, 220, "telus.com", 1);
 | 
					                "TipWlan-Hotspot20-OSU-Provider-2", "Telus Mobility", "Canada", "ca", 302, 220, "telus.com", 1);
 | 
				
			||||||
        hotspot20IdProviderProfile2.setId(6L);
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        profileSsidOsu.getChildProfileIds().add(hotspot20IdProviderProfile.getId());
 | 
					        profileSsidOsu.getChildProfileIds().add(hotspot20IdProviderProfile.getId());
 | 
				
			||||||
        profileSsidOsu.getChildProfileIds().add(hotspot20IdProviderProfile2.getId());
 | 
					        profileSsidOsu.getChildProfileIds().add(hotspot20IdProviderProfile2.getId());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        passpointHotspotConfig = createPasspointHotspotConfig(customerId, hotspot20IdProviderProfile2,
 | 
					        passpointHotspotConfig = createPasspointHotspotConfig(customerId, hotspot20IdProviderProfile2,
 | 
				
			||||||
                hotspot20IdProviderProfile, passpointOperatorProfile, passpointVenueProfile, profileSsidPsk,
 | 
					                hotspot20IdProviderProfile, passpointOperatorProfile, passpointVenueProfile, profileSsidPsk,
 | 
				
			||||||
                profileSsidOsu);
 | 
					                profileSsidOsu);
 | 
				
			||||||
        passpointHotspotConfig.setId(7L);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        hotspotProfileAp = createPasspointApProfile(customerId, profileSsidPsk, profileSsidOsu);
 | 
					        hotspotProfileAp = createPasspointApProfile(customerId, profileSsidPsk, profileSsidOsu);
 | 
				
			||||||
        hotspotProfileAp.setId(8L);
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    static Profile createPasspointHotspotConfig(int customerId, Profile hotspot20IdProviderProfile2,
 | 
					    static Profile createPasspointHotspotConfig(int customerId, Profile hotspot20IdProviderProfile2,
 | 
				
			||||||
@@ -88,18 +87,15 @@ public class OvsdbDaoTestUtilities {
 | 
				
			|||||||
        passpointHotspotConfigChildIds.add(hotspot20IdProviderProfile2.getId());
 | 
					        passpointHotspotConfigChildIds.add(hotspot20IdProviderProfile2.getId());
 | 
				
			||||||
        passpointHotspotConfig.setChildProfileIds(passpointHotspotConfigChildIds);
 | 
					        passpointHotspotConfig.setChildProfileIds(passpointHotspotConfigChildIds);
 | 
				
			||||||
        passpointHotspotConfig.setDetails(PasspointProfile.createWithDefaults());
 | 
					        passpointHotspotConfig.setDetails(PasspointProfile.createWithDefaults());
 | 
				
			||||||
        Set<Long> providerIds = new HashSet<>();
 | 
					        Set<String> providerNames = new HashSet<>();
 | 
				
			||||||
        providerIds.add(hotspot20IdProviderProfile.getId());
 | 
					        providerNames.add(hotspot20IdProviderProfile.getName());
 | 
				
			||||||
        providerIds.add(hotspot20IdProviderProfile2.getId());
 | 
					        providerNames.add(hotspot20IdProviderProfile2.getName());
 | 
				
			||||||
        ((PasspointProfile) passpointHotspotConfig.getDetails()).setPasspointOsuProviderProfileIds(providerIds);
 | 
					        ((PasspointProfile) passpointHotspotConfig.getDetails()).setIdProviderProfileNames(providerNames);
 | 
				
			||||||
        ((PasspointProfile) passpointHotspotConfig.getDetails())
 | 
					        ((PasspointProfile) passpointHotspotConfig.getDetails())
 | 
				
			||||||
                .setPasspointOperatorProfileId(passpointOperatorProfile.getId());
 | 
					                .setOperatorProfileName(passpointOperatorProfile.getName());
 | 
				
			||||||
        ((PasspointProfile) passpointHotspotConfig.getDetails())
 | 
					        ((PasspointProfile) passpointHotspotConfig.getDetails()).setVenueProfileName(passpointVenueProfile.getName());
 | 
				
			||||||
                .setPasspointVenueProfileId(passpointVenueProfile.getId());
 | 
					        ((PasspointProfile) passpointHotspotConfig.getDetails()).setOsuSsidName(profileSsidOpen.getName());
 | 
				
			||||||
        ((PasspointProfile) passpointHotspotConfig.getDetails()).setOsuSsidProfileId(profileSsidOpen.getId());
 | 
					 | 
				
			||||||
        profileSsidPsk.getChildProfileIds().add(passpointHotspotConfig.getId());
 | 
					        profileSsidPsk.getChildProfileIds().add(passpointHotspotConfig.getId());
 | 
				
			||||||
        ((PasspointProfile) passpointHotspotConfig.getDetails())
 | 
					 | 
				
			||||||
                .setAssociatedAccessSsidProfileIds(List.of(profileSsidPsk.getId()));
 | 
					 | 
				
			||||||
        return passpointHotspotConfig;
 | 
					        return passpointHotspotConfig;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -121,13 +117,14 @@ public class OvsdbDaoTestUtilities {
 | 
				
			|||||||
        mccMncList.add(passpointMccMnc);
 | 
					        mccMncList.add(passpointMccMnc);
 | 
				
			||||||
        Set<String> naiRealms = new HashSet<>();
 | 
					        Set<String> naiRealms = new HashSet<>();
 | 
				
			||||||
        naiRealms.add(naiRealm);
 | 
					        naiRealms.add(naiRealm);
 | 
				
			||||||
 | 
					        naiRealm.split(".");
 | 
				
			||||||
        List<Byte> roamingOi = new ArrayList<>();
 | 
					        List<Byte> roamingOi = new ArrayList<>();
 | 
				
			||||||
        roamingOi.add(Byte.valueOf("1"));
 | 
					        roamingOi.add(Byte.valueOf("1"));
 | 
				
			||||||
        roamingOi.add(Byte.valueOf("2"));
 | 
					        roamingOi.add(Byte.valueOf("2"));
 | 
				
			||||||
        roamingOi.add(Byte.valueOf("3"));
 | 
					        roamingOi.add(Byte.valueOf("3"));
 | 
				
			||||||
        roamingOi.add(Byte.valueOf("4"));
 | 
					        roamingOi.add(Byte.valueOf("4"));
 | 
				
			||||||
        hotspot20IdProviderProfile = createOsuProviderProfile(customerId, hotspot20IdProviderProfile, mccMncList,
 | 
					        hotspot20IdProviderProfile = createOsuProviderProfile(customerId, hotspot20IdProviderProfile, mccMncList,
 | 
				
			||||||
                naiRealms, "https://example.com/osu/" + naiRealm.split("/.com")[0], naiRealm.split(".com")[0], naiRealm,
 | 
					                naiRealms, "https://example.com/osu/" + naiRealm.split(".com")[0], naiRealm.split(".com")[0], naiRealm,
 | 
				
			||||||
                roamingOi);
 | 
					                roamingOi);
 | 
				
			||||||
        return hotspot20IdProviderProfile;
 | 
					        return hotspot20IdProviderProfile;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -308,8 +305,7 @@ public class OvsdbDaoTestUtilities {
 | 
				
			|||||||
        columns.put("network_auth_type", new Atom<>("00"));
 | 
					        columns.put("network_auth_type", new Atom<>("00"));
 | 
				
			||||||
        columns.put("operating_class", new Atom<>(0));
 | 
					        columns.put("operating_class", new Atom<>(0));
 | 
				
			||||||
        columns.put("operator_friendly_name",
 | 
					        columns.put("operator_friendly_name",
 | 
				
			||||||
                com.vmware.ovsdb.protocol.operation.notation.Set.of(
 | 
					                com.vmware.ovsdb.protocol.operation.notation.Set.of(new Atom<>("eng:Default friendly passpoint_operator name"),
 | 
				
			||||||
                        new Atom<>("eng:Default friendly passpoint_operator name"),
 | 
					 | 
				
			||||||
                        new Atom<>("fra:Nom de l'opérateur convivial par défaut")));
 | 
					                        new Atom<>("fra:Nom de l'opérateur convivial par défaut")));
 | 
				
			||||||
        columns.put("operator_icons",
 | 
					        columns.put("operator_icons",
 | 
				
			||||||
                com.vmware.ovsdb.protocol.operation.notation.Set.of(
 | 
					                com.vmware.ovsdb.protocol.operation.notation.Set.of(
 | 
				
			||||||
@@ -326,8 +322,8 @@ public class OvsdbDaoTestUtilities {
 | 
				
			|||||||
                com.vmware.ovsdb.protocol.operation.notation.Set.of(new Atom<>("11223344"), new Atom<>("234433")));
 | 
					                com.vmware.ovsdb.protocol.operation.notation.Set.of(new Atom<>("11223344"), new Atom<>("234433")));
 | 
				
			||||||
        columns.put("tos", new Atom<>("https://localhost:9091/filestore/termsAndConditions"));
 | 
					        columns.put("tos", new Atom<>("https://localhost:9091/filestore/termsAndConditions"));
 | 
				
			||||||
        columns.put("venue_group_type", new Atom<>("2:8"));
 | 
					        columns.put("venue_group_type", new Atom<>("2:8"));
 | 
				
			||||||
        columns.put("venue_name", com.vmware.ovsdb.protocol.operation.notation.Set
 | 
					        columns.put("venue_name", com.vmware.ovsdb.protocol.operation.notation.Set.of(new Atom<>("eng:Example passpoint_venue"),
 | 
				
			||||||
                .of(new Atom<>("eng:Example passpoint_venue"), new Atom<>("fra:Exemple de lieu")));
 | 
					                new Atom<>("fra:Exemple de lieu")));
 | 
				
			||||||
        columns.put("venue_url", com.vmware.ovsdb.protocol.operation.notation.Set
 | 
					        columns.put("venue_url", com.vmware.ovsdb.protocol.operation.notation.Set
 | 
				
			||||||
                .of(new Atom<>("1:http://www.example.com/info-fra"), new Atom<>("2:http://www.example.com/info-eng")));
 | 
					                .of(new Atom<>("1:http://www.example.com/info-fra"), new Atom<>("2:http://www.example.com/info-eng")));
 | 
				
			||||||
        columns.put("vif_config",
 | 
					        columns.put("vif_config",
 | 
				
			||||||
@@ -412,6 +408,7 @@ public class OvsdbDaoTestUtilities {
 | 
				
			|||||||
        return operationResult;
 | 
					        return operationResult;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    static OperationResult[] hs20IconRows() {
 | 
					    static OperationResult[] hs20IconRows() {
 | 
				
			||||||
        List<Row> ret = new ArrayList<>();
 | 
					        List<Row> ret = new ArrayList<>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -517,6 +514,7 @@ public class OvsdbDaoTestUtilities {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        SelectResult selectResult = new SelectResult(ret);
 | 
					        SelectResult selectResult = new SelectResult(ret);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        OperationResult[] operationResult = new OperationResult[1];
 | 
					        OperationResult[] operationResult = new OperationResult[1];
 | 
				
			||||||
        operationResult[0].equals(selectResult);
 | 
					        operationResult[0].equals(selectResult);
 | 
				
			||||||
        return operationResult;
 | 
					        return operationResult;
 | 
				
			||||||
@@ -545,4 +543,5 @@ public class OvsdbDaoTestUtilities {
 | 
				
			|||||||
        return profileRadius;
 | 
					        return profileRadius;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user