mirror of
				https://github.com/Telecominfraproject/wlan-cloud-opensync-controller.git
				synced 2025-11-03 20:17:53 +00:00 
			
		
		
		
	Retrieve Radio State information on initial AP connect
This commit is contained in:
		@@ -9,7 +9,6 @@ import java.util.List;
 | 
				
			|||||||
import java.util.Map;
 | 
					import java.util.Map;
 | 
				
			||||||
import java.util.Set;
 | 
					import java.util.Set;
 | 
				
			||||||
import java.util.concurrent.Callable;
 | 
					import java.util.concurrent.Callable;
 | 
				
			||||||
import java.util.function.Consumer;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
import javax.annotation.PostConstruct;
 | 
					import javax.annotation.PostConstruct;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -40,6 +39,7 @@ import com.telecominfraproject.wlan.core.model.equipment.RadioType;
 | 
				
			|||||||
import com.telecominfraproject.wlan.customer.models.Customer;
 | 
					import com.telecominfraproject.wlan.customer.models.Customer;
 | 
				
			||||||
import com.telecominfraproject.wlan.customer.service.CustomerServiceInterface;
 | 
					import com.telecominfraproject.wlan.customer.service.CustomerServiceInterface;
 | 
				
			||||||
import com.telecominfraproject.wlan.datastore.exceptions.DsConcurrentModificationException;
 | 
					import com.telecominfraproject.wlan.datastore.exceptions.DsConcurrentModificationException;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.datastore.exceptions.DsEntityNotFoundException;
 | 
				
			||||||
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.ApElementConfiguration;
 | 
				
			||||||
import com.telecominfraproject.wlan.equipment.models.Equipment;
 | 
					import com.telecominfraproject.wlan.equipment.models.Equipment;
 | 
				
			||||||
@@ -48,6 +48,7 @@ import com.telecominfraproject.wlan.firmware.FirmwareServiceInterface;
 | 
				
			|||||||
import com.telecominfraproject.wlan.firmware.models.CustomerFirmwareTrackRecord;
 | 
					import com.telecominfraproject.wlan.firmware.models.CustomerFirmwareTrackRecord;
 | 
				
			||||||
import com.telecominfraproject.wlan.firmware.models.CustomerFirmwareTrackSettings;
 | 
					import com.telecominfraproject.wlan.firmware.models.CustomerFirmwareTrackSettings;
 | 
				
			||||||
import com.telecominfraproject.wlan.firmware.models.CustomerFirmwareTrackSettings.TrackFlag;
 | 
					import com.telecominfraproject.wlan.firmware.models.CustomerFirmwareTrackSettings.TrackFlag;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.firmware.models.FirmwareVersion;
 | 
				
			||||||
import com.telecominfraproject.wlan.location.models.Location;
 | 
					import com.telecominfraproject.wlan.location.models.Location;
 | 
				
			||||||
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;
 | 
				
			||||||
@@ -114,6 +115,10 @@ import sts.OpensyncStats.Neighbor;
 | 
				
			|||||||
import sts.OpensyncStats.Neighbor.NeighborBss;
 | 
					import sts.OpensyncStats.Neighbor.NeighborBss;
 | 
				
			||||||
import sts.OpensyncStats.RadioBandType;
 | 
					import sts.OpensyncStats.RadioBandType;
 | 
				
			||||||
import sts.OpensyncStats.Report;
 | 
					import sts.OpensyncStats.Report;
 | 
				
			||||||
 | 
					import sts.OpensyncStats.RssiPeer;
 | 
				
			||||||
 | 
					import sts.OpensyncStats.RssiPeer.RssiSample;
 | 
				
			||||||
 | 
					import sts.OpensyncStats.RssiPeer.RssiSource;
 | 
				
			||||||
 | 
					import sts.OpensyncStats.RssiReport;
 | 
				
			||||||
import sts.OpensyncStats.Survey;
 | 
					import sts.OpensyncStats.Survey;
 | 
				
			||||||
import sts.OpensyncStats.Survey.SurveySample;
 | 
					import sts.OpensyncStats.Survey.SurveySample;
 | 
				
			||||||
import sts.OpensyncStats.SurveyType;
 | 
					import sts.OpensyncStats.SurveyType;
 | 
				
			||||||
@@ -124,7 +129,7 @@ import wc.stats.IpDnsTelemetry.WCStatsReport;
 | 
				
			|||||||
@Component
 | 
					@Component
 | 
				
			||||||
public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegrationInterface {
 | 
					public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegrationInterface {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private static Logger LOG = LoggerFactory.getLogger(OpensyncExternalIntegrationCloud.class);
 | 
					    private static final Logger LOG = LoggerFactory.getLogger(OpensyncExternalIntegrationCloud.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Autowired
 | 
					    @Autowired
 | 
				
			||||||
    private AlarmServiceInterface alarmServiceInterface;
 | 
					    private AlarmServiceInterface alarmServiceInterface;
 | 
				
			||||||
@@ -192,41 +197,6 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
        return ce;
 | 
					        return ce;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private RadioType opensyncFreqBandToRadioType(String osFreqBand) {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        switch (osFreqBand) {
 | 
					 | 
				
			||||||
        case "2.4G":
 | 
					 | 
				
			||||||
            return RadioType.is2dot4GHz;
 | 
					 | 
				
			||||||
        case "5G":
 | 
					 | 
				
			||||||
            return RadioType.is5GHz;
 | 
					 | 
				
			||||||
        case "5GL":
 | 
					 | 
				
			||||||
            return RadioType.is5GHzL;
 | 
					 | 
				
			||||||
        case "5GU":
 | 
					 | 
				
			||||||
            return RadioType.is5GHzU;
 | 
					 | 
				
			||||||
        default:
 | 
					 | 
				
			||||||
            return RadioType.UNSUPPORTED;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private String radioTypeToOpensyncFrequencyBand(RadioType radioType) {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        switch (radioType) {
 | 
					 | 
				
			||||||
        case is2dot4GHz:
 | 
					 | 
				
			||||||
            return "2.4G";
 | 
					 | 
				
			||||||
        case is5GHz:
 | 
					 | 
				
			||||||
            return "5G";
 | 
					 | 
				
			||||||
        case is5GHzL:
 | 
					 | 
				
			||||||
            return "5GL";
 | 
					 | 
				
			||||||
        case is5GHzU:
 | 
					 | 
				
			||||||
            return "5GU";
 | 
					 | 
				
			||||||
        default:
 | 
					 | 
				
			||||||
            return null;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public void apConnected(String apId, ConnectNodeInfo connectNodeInfo) {
 | 
					    public void apConnected(String apId, ConnectNodeInfo connectNodeInfo) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -238,10 +208,9 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
            CustomerFirmwareTrackRecord custFwTrackRecord = firmwareServiceInterface
 | 
					            CustomerFirmwareTrackRecord custFwTrackRecord = firmwareServiceInterface
 | 
				
			||||||
                    .getCustomerFirmwareTrackRecord(autoProvisionedCustomerId);
 | 
					                    .getCustomerFirmwareTrackRecord(autoProvisionedCustomerId);
 | 
				
			||||||
            if (custFwTrackRecord != null) {
 | 
					            if (custFwTrackRecord != null) {
 | 
				
			||||||
                trackSettings = CustomerFirmwareTrackSettings.combine(custFwTrackRecord.getSettings(), trackSettings);
 | 
					                trackSettings = custFwTrackRecord.getSettings();
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            // determine if AP requires FW upgrade before cloud
 | 
					            // determine if AP requires FW upgrade before cloud connection/provision
 | 
				
			||||||
            // connection/provision
 | 
					 | 
				
			||||||
            if (trackSettings.getAutoUpgradeDeprecatedOnBind().equals(TrackFlag.ALWAYS)
 | 
					            if (trackSettings.getAutoUpgradeDeprecatedOnBind().equals(TrackFlag.ALWAYS)
 | 
				
			||||||
                    || trackSettings.getAutoUpgradeUnknownOnBind().equals(TrackFlag.ALWAYS)) {
 | 
					                    || trackSettings.getAutoUpgradeUnknownOnBind().equals(TrackFlag.ALWAYS)) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -263,69 +232,90 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
            try {
 | 
					            try {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (ce == null) {
 | 
					                if (ce == null) {
 | 
				
			||||||
 | 
					 | 
				
			||||||
                    Customer customer = customerServiceInterface.getOrNull(autoProvisionedCustomerId);
 | 
					 | 
				
			||||||
                    if (customer == null) {
 | 
					 | 
				
			||||||
                        customer = new Customer();
 | 
					 | 
				
			||||||
                        customer.setName("DefaultCustomer");
 | 
					 | 
				
			||||||
                        customer.setEmail("DefaulCustomer@DefaultEmail.com");
 | 
					 | 
				
			||||||
                        customer = customerServiceInterface.create(customer);
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    ce = new Equipment();
 | 
					                    ce = new Equipment();
 | 
				
			||||||
                    ce.setEquipmentType(EquipmentType.AP);
 | 
					                    ce.setEquipmentType(EquipmentType.AP);
 | 
				
			||||||
                    ce.setCustomerId(customer.getId());
 | 
					 | 
				
			||||||
                    ce.setInventoryId(apId);
 | 
					                    ce.setInventoryId(apId);
 | 
				
			||||||
                    ce.setSerial(connectNodeInfo.serialNumber);
 | 
					                    ce.setSerial(connectNodeInfo.serialNumber);
 | 
				
			||||||
                    ce.setDetails(ApElementConfiguration.createWithDefaults());
 | 
					                    ce.setDetails(ApElementConfiguration.createWithDefaults());
 | 
				
			||||||
                    ce.setName(apId);
 | 
					 | 
				
			||||||
                    ce.setLocationId(autoProvisionedLocationId);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    ce = equipmentServiceInterface.create(ce);
 | 
					                    ce = equipmentServiceInterface.create(ce);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    ce.setCustomerId(autoProvisionedCustomerId);
 | 
					                    ce.setCustomerId(autoProvisionedCustomerId);
 | 
				
			||||||
 | 
					                    ce.setName(apId);
 | 
				
			||||||
 | 
					                    ce.setLocationId(autoProvisionedLocationId);
 | 
				
			||||||
                    ApElementConfiguration apElementConfig = (ApElementConfiguration) ce.getDetails();
 | 
					                    ApElementConfiguration apElementConfig = (ApElementConfiguration) ce.getDetails();
 | 
				
			||||||
                    for (RadioType key : apElementConfig.getRadioMap().keySet()) {
 | 
					                    apElementConfig.setEquipmentModel(connectNodeInfo.model);
 | 
				
			||||||
                        String ovsdbKey = radioTypeToOpensyncFrequencyBand(key);
 | 
					                    apElementConfig.getAdvancedRadioMap().get(RadioType.is2dot4GHz)
 | 
				
			||||||
                        if (connectNodeInfo.wifiRadioStates.containsKey(ovsdbKey)) {
 | 
					 | 
				
			||||||
                            apElementConfig.getAdvancedRadioMap().get(key)
 | 
					 | 
				
			||||||
                            .setAutoChannelSelection(StateSetting.disabled);
 | 
					                            .setAutoChannelSelection(StateSetting.disabled);
 | 
				
			||||||
                            apElementConfig.getRadioMap().get(key).setAutoChannelSelection(false);
 | 
					                    apElementConfig.getAdvancedRadioMap().get(RadioType.is5GHzL)
 | 
				
			||||||
                        } else {
 | 
					                            .setAutoChannelSelection(StateSetting.disabled);
 | 
				
			||||||
                            apElementConfig.getAdvancedRadioMap().remove(key);
 | 
					                    apElementConfig.getAdvancedRadioMap().get(RadioType.is5GHzU)
 | 
				
			||||||
                            apElementConfig.getRadioMap().remove(key);
 | 
					                            .setAutoChannelSelection(StateSetting.disabled);
 | 
				
			||||||
                        }
 | 
					
 | 
				
			||||||
                    }
 | 
					                    apElementConfig.getRadioMap().get(RadioType.is2dot4GHz).setAutoChannelSelection(false);
 | 
				
			||||||
 | 
					                    apElementConfig.getRadioMap().get(RadioType.is5GHzL).setAutoChannelSelection(false);
 | 
				
			||||||
 | 
					                    apElementConfig.getRadioMap().get(RadioType.is5GHzU).setAutoChannelSelection(false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    ce.setDetails(apElementConfig);
 | 
					                    ce.setDetails(apElementConfig);
 | 
				
			||||||
                    ce = equipmentServiceInterface.update(ce);
 | 
					                    ce = equipmentServiceInterface.update(ce);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    Profile ssidProfile = new Profile();
 | 
					 | 
				
			||||||
                    ssidProfile.setCustomerId(ce.getCustomerId());
 | 
					 | 
				
			||||||
                    ssidProfile.setName("DefaultSsidApConnected");
 | 
					 | 
				
			||||||
                    SsidConfiguration ssidConfig = SsidConfiguration.createWithDefaults();
 | 
					 | 
				
			||||||
                    ssidConfig.setSsid("DefaultSsidApConnected");
 | 
					 | 
				
			||||||
                    ssidConfig.setSecureMode(SecureMode.wpa2PSK);
 | 
					 | 
				
			||||||
                    ssidConfig.setKeyStr("12345678");
 | 
					 | 
				
			||||||
                    Set<RadioType> appliedRadios = new HashSet<>();
 | 
					 | 
				
			||||||
                    appliedRadios.addAll(((ApElementConfiguration) ce.getDetails()).getRadioMap().keySet());
 | 
					 | 
				
			||||||
                    ssidConfig.setAppliedRadios(appliedRadios);
 | 
					 | 
				
			||||||
                    ssidProfile.setDetails(ssidConfig);
 | 
					 | 
				
			||||||
                    ssidProfile = profileServiceInterface.create(ssidProfile);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    Profile apProfile = new Profile();
 | 
					                    Profile apProfile = new Profile();
 | 
				
			||||||
                    apProfile.setCustomerId(ce.getCustomerId());
 | 
					                    apProfile.setCustomerId(ce.getCustomerId());
 | 
				
			||||||
                    apProfile.setName("DefaultApProfile");
 | 
					                    apProfile.setName("DefaultApProfile");
 | 
				
			||||||
                    apProfile.setDetails(ApNetworkConfiguration.createWithDefaults());
 | 
					                    apProfile.setDetails(ApNetworkConfiguration.createWithDefaults());
 | 
				
			||||||
 | 
					                    apProfile = profileServiceInterface.create(apProfile);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    Profile ssidProfile = new Profile();
 | 
				
			||||||
 | 
					                    ssidProfile.setCustomerId(ce.getCustomerId());
 | 
				
			||||||
 | 
					                    ssidProfile.setName("DefaultSsid-2g");
 | 
				
			||||||
 | 
					                    SsidConfiguration ssidConfig = SsidConfiguration.createWithDefaults();
 | 
				
			||||||
 | 
					                    ssidConfig.setSsid("DefaultSsid-2g");
 | 
				
			||||||
 | 
					                    ssidConfig.setSecureMode(SecureMode.wpa2PSK);
 | 
				
			||||||
 | 
					                    ssidConfig.setKeyStr("12345678");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    Set<RadioType> appliedRadios = new HashSet<>();
 | 
				
			||||||
 | 
					                    appliedRadios.add(RadioType.is2dot4GHz);
 | 
				
			||||||
 | 
					                    // ssidConfig.getRadioBasedConfigs().get(RadioType.is2dot4GHz).setEnable80211r(true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    ssidConfig.setAppliedRadios(appliedRadios);
 | 
				
			||||||
 | 
					                    ssidProfile.setDetails(ssidConfig);
 | 
				
			||||||
 | 
					                    ssidProfile = profileServiceInterface.create(ssidProfile);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    Profile ssidProfile5g = new Profile();
 | 
				
			||||||
 | 
					                    ssidProfile5g.setCustomerId(ce.getCustomerId());
 | 
				
			||||||
 | 
					                    ssidProfile5g.setName("DefaultSsid-5g");
 | 
				
			||||||
 | 
					                    SsidConfiguration ssidConfig5g = SsidConfiguration.createWithDefaults();
 | 
				
			||||||
 | 
					                    ssidConfig5g.setSecureMode(SecureMode.wpa2PSK);
 | 
				
			||||||
 | 
					                    ssidConfig5g.setSsid("DefaultSsid-5g");
 | 
				
			||||||
 | 
					                    ssidConfig5g.setKeyStr("12345678");
 | 
				
			||||||
 | 
					                    Set<RadioType> appliedRadios5g = new HashSet<>();
 | 
				
			||||||
 | 
					                    appliedRadios5g.add(RadioType.is5GHzL);
 | 
				
			||||||
 | 
					                    appliedRadios5g.add(RadioType.is5GHzU);
 | 
				
			||||||
 | 
					                    ssidConfig5g.setAppliedRadios(appliedRadios5g);
 | 
				
			||||||
 | 
					                    // ssidConfig5g.getRadioBasedConfigs().get(RadioType.is5GHzL).setEnable80211r(true);
 | 
				
			||||||
 | 
					                    // ssidConfig5g.getRadioBasedConfigs().get(RadioType.is5GHzU).setEnable80211r(true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    ssidProfile5g.setDetails(ssidConfig5g);
 | 
				
			||||||
 | 
					                    ssidProfile5g = profileServiceInterface.create(ssidProfile5g);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    Set<Long> childProfileIds = new HashSet<>();
 | 
					                    Set<Long> childProfileIds = new HashSet<>();
 | 
				
			||||||
                    childProfileIds.add(ssidProfile.getId());
 | 
					                    childProfileIds.add(ssidProfile.getId());
 | 
				
			||||||
                    apProfile.setChildProfileIds(childProfileIds);
 | 
					                    childProfileIds.add(ssidProfile5g.getId());
 | 
				
			||||||
                    apProfile = profileServiceInterface.create(apProfile);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    apProfile.setChildProfileIds(childProfileIds);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    apProfile = profileServiceInterface.update(apProfile);
 | 
				
			||||||
                    ce.setProfileId(apProfile.getId());
 | 
					                    ce.setProfileId(apProfile.getId());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    ce = equipmentServiceInterface.update(ce);
 | 
					                    ce = equipmentServiceInterface.update(ce);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    Customer customer = customerServiceInterface.getOrNull(ce.getCustomerId());
 | 
				
			||||||
 | 
					                    if (customer == null) {
 | 
				
			||||||
 | 
					                        customer = new Customer();
 | 
				
			||||||
 | 
					                        customer.setId(autoProvisionedCustomerId);
 | 
				
			||||||
 | 
					                        customerServiceInterface.create(customer);
 | 
				
			||||||
 | 
					                        ce.setCustomerId(customer.getId());
 | 
				
			||||||
 | 
					                        equipmentServiceInterface.update(ce);
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                EquipmentRoutingRecord equipmentRoutingRecord = gatewayController
 | 
					                EquipmentRoutingRecord equipmentRoutingRecord = gatewayController
 | 
				
			||||||
@@ -415,7 +405,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
            } catch (UnknownHostException e) {
 | 
					            } catch (UnknownHostException e) {
 | 
				
			||||||
                // do nothing here
 | 
					                // do nothing here
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            if ((connectNodeInfo.macAddress != null) && (MacAddress.valueOf(connectNodeInfo.macAddress) != null)) {
 | 
					            if (connectNodeInfo.macAddress != null && MacAddress.valueOf(connectNodeInfo.macAddress) != null) {
 | 
				
			||||||
                protocolStatusData.setReportedMacAddr(MacAddress.valueOf(connectNodeInfo.macAddress));
 | 
					                protocolStatusData.setReportedMacAddr(MacAddress.valueOf(connectNodeInfo.macAddress));
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            protocolStatusData.setReportedSku(connectNodeInfo.skuNumber);
 | 
					            protocolStatusData.setReportedSku(connectNodeInfo.skuNumber);
 | 
				
			||||||
@@ -643,7 +633,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
        int customerId = extractCustomerIdFromTopic(topic);
 | 
					        int customerId = extractCustomerIdFromTopic(topic);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        long equipmentId = extractEquipmentIdFromTopic(topic);
 | 
					        long equipmentId = extractEquipmentIdFromTopic(topic);
 | 
				
			||||||
        if ((equipmentId <= 0) || (customerId <= 0)) {
 | 
					        if (equipmentId <= 0 || customerId <= 0) {
 | 
				
			||||||
            LOG.warn("Cannot determine equipment ids from topic {} - customerId {} equipmentId {}", topic, customerId,
 | 
					            LOG.warn("Cannot determine equipment ids from topic {} - customerId {} equipmentId {}", topic, customerId,
 | 
				
			||||||
                    equipmentId);
 | 
					                    equipmentId);
 | 
				
			||||||
            return;
 | 
					            return;
 | 
				
			||||||
@@ -657,12 +647,13 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
        populateApNodeMetrics(metricRecordList, report, customerId, equipmentId);
 | 
					        populateApNodeMetrics(metricRecordList, report, customerId, equipmentId);
 | 
				
			||||||
        populateNeighbourScanReports(metricRecordList, report, customerId, equipmentId);
 | 
					        populateNeighbourScanReports(metricRecordList, report, customerId, equipmentId);
 | 
				
			||||||
        try {
 | 
					        try {
 | 
				
			||||||
            populateChannelInfoReports(metricRecordList, report, customerId, equipmentId);
 | 
					            // TODO: depends on survey
 | 
				
			||||||
 | 
					            // populateChannelInfoReports(metricRecordList, report, customerId,
 | 
				
			||||||
 | 
					            // equipmentId);
 | 
				
			||||||
            populateApSsidMetrics(metricRecordList, report, customerId, equipmentId, extractApIdFromTopic(topic));
 | 
					            populateApSsidMetrics(metricRecordList, report, customerId, equipmentId, extractApIdFromTopic(topic));
 | 
				
			||||||
            /*
 | 
					            // handleRssiMetrics(metricRecordList, report, customerId,
 | 
				
			||||||
             * TODO: add when available handleRssiMetrics(metricRecordList,
 | 
					            // equipmentId);
 | 
				
			||||||
             * report, customerId, equipmentId);
 | 
					
 | 
				
			||||||
             */
 | 
					 | 
				
			||||||
        } catch (Exception e) {
 | 
					        } catch (Exception e) {
 | 
				
			||||||
            LOG.error("Exception when processing populateApSsidMetrics", e);
 | 
					            LOG.error("Exception when processing populateApSsidMetrics", e);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@@ -673,32 +664,31 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /*
 | 
					    private void handleRssiMetrics(List<ServiceMetric> metricRecordList, Report report, int customerId,
 | 
				
			||||||
     * TODO: when available handle RSSI metric processing private void
 | 
					            long equipmentId) {
 | 
				
			||||||
     * handleRssiMetrics(List<ServiceMetric> metricRecordList, Report report,
 | 
					        LOG.debug("handleRssiMetrics for Customer {} Equipment {}", customerId, equipmentId);
 | 
				
			||||||
     * int customerId, long equipmentId) {
 | 
					
 | 
				
			||||||
     * LOG.debug("handleRssiMetrics for Customer {} Equipment {}", customerId,
 | 
					        for (RssiReport rssiReport : report.getRssiReportList()) {
 | 
				
			||||||
     * equipmentId);
 | 
					
 | 
				
			||||||
     *
 | 
					            for (RssiPeer peer : rssiReport.getPeerListList()) {
 | 
				
			||||||
     * for (RssiReport rssiReport : report.getRssiReportList()) {
 | 
					                if (peer.getRssiSource().equals(RssiSource.CLIENT)) {
 | 
				
			||||||
     *
 | 
					                    int rssi = 0;
 | 
				
			||||||
     * for (RssiPeer peer : rssiReport.getPeerListList()) { if
 | 
					
 | 
				
			||||||
     * (peer.getRssiSource().equals(RssiSource.CLIENT)) { int rssi = 0;
 | 
					                    for (RssiSample sample : peer.getRssiListList()) {
 | 
				
			||||||
     *
 | 
					                        rssi += getNegativeSignedIntFromUnsigned(sample.getRssi());
 | 
				
			||||||
     * for (RssiSample sample : peer.getRssiListList()) { rssi +=
 | 
					                        LOG.debug("RSSI Sample: unsignedValue {} signedValue {}", sample.getRssi(),
 | 
				
			||||||
     * getNegativeSignedIntFromUnsigned(sample.getRssi());
 | 
					                                getNegativeSignedIntFromUnsigned(sample.getRssi()));
 | 
				
			||||||
     * LOG.debug("RSSI Sample: unsignedValue {} signedValue {}",
 | 
					                    }
 | 
				
			||||||
     * sample.getRssi(), getNegativeSignedIntFromUnsigned(sample.getRssi())); }
 | 
					
 | 
				
			||||||
     *
 | 
					                    rssi = rssi / peer.getRssiListCount();
 | 
				
			||||||
     * rssi = rssi / peer.getRssiListCount();
 | 
					
 | 
				
			||||||
     *
 | 
					                    LOG.debug("RssiReport::RssiPeer::Band {} RssiPeer MAC {} RssiSamples Avg {} RxPpdus {} TxPpdus {}",
 | 
				
			||||||
     * LOG.
 | 
					                            rssiReport.getBand(), peer.getMacAddress(), rssi, peer.getRxPpdus(), peer.getTxPpdus());
 | 
				
			||||||
     * debug("RssiReport::RssiPeer::Band {} RssiPeer MAC {} RssiSamples Avg {} RxPpdus {} TxPpdus {}"
 | 
					                }
 | 
				
			||||||
     * , rssiReport.getBand(), peer.getMacAddress(), rssi, peer.getRxPpdus(),
 | 
					            }
 | 
				
			||||||
     * peer.getTxPpdus()); } }
 | 
					
 | 
				
			||||||
     *
 | 
					        }
 | 
				
			||||||
     * } }
 | 
					    }
 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private void populateApNodeMetrics(List<ServiceMetric> metricRecordList, Report report, int customerId,
 | 
					    private void populateApNodeMetrics(List<ServiceMetric> metricRecordList, Report report, int customerId,
 | 
				
			||||||
            long equipmentId) {
 | 
					            long equipmentId) {
 | 
				
			||||||
@@ -900,8 +890,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
                ClientMetrics cMetrics = new ClientMetrics();
 | 
					                ClientMetrics cMetrics = new ClientMetrics();
 | 
				
			||||||
                smr.setDetails(cMetrics);
 | 
					                smr.setDetails(cMetrics);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                Integer periodLengthSec = 60; // matches what's configured
 | 
					                Integer periodLengthSec = 60; // matches what's configured by
 | 
				
			||||||
                                              // by
 | 
					 | 
				
			||||||
                // OvsdbDao.configureStats(OvsdbClient)
 | 
					                // OvsdbDao.configureStats(OvsdbClient)
 | 
				
			||||||
                cMetrics.setPeriodLengthSec(periodLengthSec);
 | 
					                cMetrics.setPeriodLengthSec(periodLengthSec);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -945,7 +934,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
                    }
 | 
					                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    if (cl.getStats().hasTxRate()) {
 | 
					                    if (cl.getStats().hasTxRate()) {
 | 
				
			||||||
                        cMetrics.setAverageTxRate(cl.getStats().getTxRate() / 1000);
 | 
					                        cMetrics.setAverageTxRate(Double.valueOf(cl.getStats().getTxRate() / 1000));
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    if (cl.getStats().hasTxRate() && cl.getStats().hasRxRate()) {
 | 
					                    if (cl.getStats().hasTxRate() && cl.getStats().hasRxRate()) {
 | 
				
			||||||
@@ -1021,7 +1010,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
                nr.setMacAddress(new MacAddress(nBss.getBssid()));
 | 
					                nr.setMacAddress(new MacAddress(nBss.getBssid()));
 | 
				
			||||||
                nr.setNetworkType(NetworkType.AP);
 | 
					                nr.setNetworkType(NetworkType.AP);
 | 
				
			||||||
                nr.setPacketType(NeighborScanPacketType.BEACON);
 | 
					                nr.setPacketType(NeighborScanPacketType.BEACON);
 | 
				
			||||||
                nr.setPrivacy(((nBss.getSsid() == null) || nBss.getSsid().isEmpty()) ? true : false);
 | 
					                nr.setPrivacy((nBss.getSsid() == null || nBss.getSsid().isEmpty()) ? true : false);
 | 
				
			||||||
                // nr.setRate(rate);
 | 
					                // nr.setRate(rate);
 | 
				
			||||||
                // we can only get Rssi as an unsigned int from opensync, so
 | 
					                // we can only get Rssi as an unsigned int from opensync, so
 | 
				
			||||||
                // some shifting
 | 
					                // some shifting
 | 
				
			||||||
@@ -1131,8 +1120,8 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
        metricDetails.setTxDataFrames((int) ((int) client.getStats().getTxFrames() - client.getStats().getTxRetries()));
 | 
					        metricDetails.setTxDataFrames((int) ((int) client.getStats().getTxFrames() - client.getStats().getTxRetries()));
 | 
				
			||||||
        metricDetails.setRxDataFrames((int) ((int) client.getStats().getRxFrames() - client.getStats().getRxRetries()));
 | 
					        metricDetails.setRxDataFrames((int) ((int) client.getStats().getRxFrames() - client.getStats().getRxRetries()));
 | 
				
			||||||
        // values reported in Kbps, convert to Mbps
 | 
					        // values reported in Kbps, convert to Mbps
 | 
				
			||||||
        metricDetails.setRxMbps((float) (client.getStats().getRxRate() / 1000));
 | 
					        metricDetails.setRxMbps(Float.valueOf((float) (client.getStats().getRxRate() / 1000)));
 | 
				
			||||||
        metricDetails.setTxMbps((float) (client.getStats().getTxRate() / 1000));
 | 
					        metricDetails.setTxMbps(Float.valueOf((float) (client.getStats().getTxRate() / 1000)));
 | 
				
			||||||
        metricDetails.setRxRateKbps((long) client.getStats().getRxRate());
 | 
					        metricDetails.setRxRateKbps((long) client.getStats().getRxRate());
 | 
				
			||||||
        metricDetails.setTxRateKbps((long) client.getStats().getTxRate());
 | 
					        metricDetails.setTxRateKbps((long) client.getStats().getTxRate());
 | 
				
			||||||
        return metricDetails;
 | 
					        return metricDetails;
 | 
				
			||||||
@@ -1198,7 +1187,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            for (Client client : clientReport.getClientListList()) {
 | 
					            for (Client client : clientReport.getClientListList()) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (client.hasSsid() && (client.getSsid() != null) && !client.getSsid().equals("")) {
 | 
					                if (client.hasSsid() && client.getSsid() != null && !client.getSsid().equals("")) {
 | 
				
			||||||
                    ssid = client.getSsid();
 | 
					                    ssid = client.getSsid();
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1330,9 +1319,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
                // ChannelInfo entries per surveyed channel
 | 
					                // ChannelInfo entries per surveyed channel
 | 
				
			||||||
                Map<Integer, List<SurveySample>> sampleByChannelMap = new HashMap<>();
 | 
					                Map<Integer, List<SurveySample>> sampleByChannelMap = new HashMap<>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                survey.getSurveyListList().stream().forEach(new Consumer<SurveySample>() {
 | 
					                survey.getSurveyListList().stream().forEach(s -> {
 | 
				
			||||||
                    @Override
 | 
					 | 
				
			||||||
                    public void accept(SurveySample s) {
 | 
					 | 
				
			||||||
                    List<SurveySample> surveySampleList;
 | 
					                    List<SurveySample> surveySampleList;
 | 
				
			||||||
                    if (sampleByChannelMap.get(s.getChannel()) == null) {
 | 
					                    if (sampleByChannelMap.get(s.getChannel()) == null) {
 | 
				
			||||||
                        surveySampleList = new ArrayList<>();
 | 
					                        surveySampleList = new ArrayList<>();
 | 
				
			||||||
@@ -1341,7 +1328,6 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    surveySampleList.add(s);
 | 
					                    surveySampleList.add(s);
 | 
				
			||||||
                    sampleByChannelMap.put(s.getChannel(), surveySampleList);
 | 
					                    sampleByChannelMap.put(s.getChannel(), surveySampleList);
 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                for (List<SurveySample> surveySampleList : sampleByChannelMap.values()) {
 | 
					                for (List<SurveySample> surveySampleList : sampleByChannelMap.values()) {
 | 
				
			||||||
@@ -1397,7 +1383,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
        channelInfo.setWifiUtilization(totalWifi);
 | 
					        channelInfo.setWifiUtilization(totalWifi);
 | 
				
			||||||
        channelInfo.setBandwidth(((ApElementConfiguration) equipmentServiceInterface.get(equipmentId).getDetails())
 | 
					        channelInfo.setBandwidth(((ApElementConfiguration) equipmentServiceInterface.get(equipmentId).getDetails())
 | 
				
			||||||
                .getRadioMap().get(radioType).getChannelBandwidth());
 | 
					                .getRadioMap().get(radioType).getChannelBandwidth());
 | 
				
			||||||
        channelInfo.setNoiseFloor(-84); // TODO: when this
 | 
					        channelInfo.setNoiseFloor(Integer.valueOf(-84)); // TODO: when this
 | 
				
			||||||
                                                         // becomes available
 | 
					                                                         // becomes available
 | 
				
			||||||
                                                         // add
 | 
					                                                         // add
 | 
				
			||||||
        return channelInfo;
 | 
					        return channelInfo;
 | 
				
			||||||
@@ -1410,7 +1396,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
        int customerId = extractCustomerIdFromTopic(topic);
 | 
					        int customerId = extractCustomerIdFromTopic(topic);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        long equipmentId = extractEquipmentIdFromTopic(topic);
 | 
					        long equipmentId = extractEquipmentIdFromTopic(topic);
 | 
				
			||||||
        if ((equipmentId <= 0) || (customerId <= 0)) {
 | 
					        if (equipmentId <= 0 || customerId <= 0) {
 | 
				
			||||||
            LOG.warn("Cannot determine equipment ids from topic {} - customerId {} equipmentId {}", topic, customerId,
 | 
					            LOG.warn("Cannot determine equipment ids from topic {} - customerId {} equipmentId {}", topic, customerId,
 | 
				
			||||||
                    equipmentId);
 | 
					                    equipmentId);
 | 
				
			||||||
            return;
 | 
					            return;
 | 
				
			||||||
@@ -1434,7 +1420,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
        int customerId = extractCustomerIdFromTopic(topic);
 | 
					        int customerId = extractCustomerIdFromTopic(topic);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        long equipmentId = extractEquipmentIdFromTopic(topic);
 | 
					        long equipmentId = extractEquipmentIdFromTopic(topic);
 | 
				
			||||||
        if ((equipmentId <= 0) || (customerId <= 0)) {
 | 
					        if (equipmentId <= 0 || customerId <= 0) {
 | 
				
			||||||
            LOG.warn("Cannot determine equipment ids from topic {} - customerId {} equipmentId {}", topic, customerId,
 | 
					            LOG.warn("Cannot determine equipment ids from topic {} - customerId {} equipmentId {}", topic, customerId,
 | 
				
			||||||
                    equipmentId);
 | 
					                    equipmentId);
 | 
				
			||||||
            return;
 | 
					            return;
 | 
				
			||||||
@@ -1467,13 +1453,13 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
            return;
 | 
					            return;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if ((vifStateTables == null) || vifStateTables.isEmpty() || (apId == null)) {
 | 
					        if (vifStateTables == null || vifStateTables.isEmpty() || apId == null) {
 | 
				
			||||||
            return;
 | 
					            return;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        for (OpensyncAPVIFState vifState : vifStateTables) {
 | 
					        for (OpensyncAPVIFState vifState : vifStateTables) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if ((vifState.getMac() != null) && (vifState.getSsid() != null) && (vifState.getChannel() > 0)) {
 | 
					            if (vifState.getMac() != null && vifState.getSsid() != null && vifState.getChannel() > 0) {
 | 
				
			||||||
                String bssid = vifState.getMac();
 | 
					                String bssid = vifState.getMac();
 | 
				
			||||||
                String ssid = vifState.getSsid();
 | 
					                String ssid = vifState.getSsid();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1564,7 +1550,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
        int customerId = ovsdbSession.getCustomerId();
 | 
					        int customerId = ovsdbSession.getCustomerId();
 | 
				
			||||||
        long equipmentId = ovsdbSession.getEquipmentId();
 | 
					        long equipmentId = ovsdbSession.getEquipmentId();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if ((customerId < 0) || (equipmentId < 0)) {
 | 
					        if (customerId < 0 || equipmentId < 0) {
 | 
				
			||||||
            LOG.debug("wifiRadioStatusDbTableUpdate::Cannot get valid CustomerId {} or EquipmentId {} for AP {}",
 | 
					            LOG.debug("wifiRadioStatusDbTableUpdate::Cannot get valid CustomerId {} or EquipmentId {} for AP {}",
 | 
				
			||||||
                    customerId, equipmentId, apId);
 | 
					                    customerId, equipmentId, apId);
 | 
				
			||||||
            return;
 | 
					            return;
 | 
				
			||||||
@@ -1718,10 +1704,14 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
            return;
 | 
					            return;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if ((inetStateTables == null) || inetStateTables.isEmpty() || (apId == null)) {
 | 
					        if (inetStateTables == null || inetStateTables.isEmpty() || apId == null) {
 | 
				
			||||||
            return;
 | 
					            return;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        for (OpensyncAPInetState inetState : inetStateTables) {
 | 
				
			||||||
 | 
					            // TODO: implement me
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
@@ -1748,7 +1738,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
            return;
 | 
					            return;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if ((wifiAssociatedClients == null) || wifiAssociatedClients.isEmpty() || (apId == null)) {
 | 
					        if (wifiAssociatedClients == null || wifiAssociatedClients.isEmpty() || apId == null) {
 | 
				
			||||||
            return;
 | 
					            return;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1767,7 +1757,7 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
        int customerId = ovsdbSession.getCustomerId();
 | 
					        int customerId = ovsdbSession.getCustomerId();
 | 
				
			||||||
        long equipmentId = ovsdbSession.getEquipmentId();
 | 
					        long equipmentId = ovsdbSession.getEquipmentId();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if ((customerId < 0) || (equipmentId < 0)) {
 | 
					        if (customerId < 0 || equipmentId < 0) {
 | 
				
			||||||
            LOG.debug("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;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -97,7 +97,7 @@ public class ConnectusOvsdbClient implements ConnectusOvsdbClientInterface {
 | 
				
			|||||||
                    // with the serialNumber and using it as a key (equivalent
 | 
					                    // with the serialNumber and using it as a key (equivalent
 | 
				
			||||||
                    // of KDC unique qrCode)
 | 
					                    // of KDC unique qrCode)
 | 
				
			||||||
                    String key = clientCn + "_" + connectNodeInfo.serialNumber;
 | 
					                    String key = clientCn + "_" + connectNodeInfo.serialNumber;
 | 
				
			||||||
                    ovsdbSessionMapInterface.newSession(key, ovsdbClient);
 | 
					                    ConnectusOvsdbClient.this.ovsdbSessionMapInterface.newSession(key, ovsdbClient);
 | 
				
			||||||
                    extIntegrationInterface.apConnected(key, connectNodeInfo);
 | 
					                    extIntegrationInterface.apConnected(key, connectNodeInfo);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    // push configuration to AP
 | 
					                    // push configuration to AP
 | 
				
			||||||
@@ -105,7 +105,8 @@ public class ConnectusOvsdbClient implements ConnectusOvsdbClientInterface {
 | 
				
			|||||||
                    monitorOvsdbStateTables(ovsdbClient, key);
 | 
					                    monitorOvsdbStateTables(ovsdbClient, key);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    LOG.info("ovsdbClient connected from {} on port {} key {} ", remoteHost, localPort, key);
 | 
					                    LOG.info("ovsdbClient connected from {} on port {} key {} ", remoteHost, localPort, key);
 | 
				
			||||||
                    LOG.info("ovsdbClient connectedClients = {}", ovsdbSessionMapInterface.getNumSessions());
 | 
					                    LOG.info("ovsdbClient connectedClients = {}",
 | 
				
			||||||
 | 
					                            ConnectusOvsdbClient.this.ovsdbSessionMapInterface.getNumSessions());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                } catch (Exception e) {
 | 
					                } catch (Exception e) {
 | 
				
			||||||
                    LOG.error("ovsdbClient error", e);
 | 
					                    LOG.error("ovsdbClient error", e);
 | 
				
			||||||
@@ -138,7 +139,7 @@ public class ConnectusOvsdbClient implements ConnectusOvsdbClientInterface {
 | 
				
			|||||||
                // so we are doing a reverse lookup here, and then if we find
 | 
					                // so we are doing a reverse lookup here, and then if we find
 | 
				
			||||||
                // the key we will
 | 
					                // the key we will
 | 
				
			||||||
                // remove the entry from the connectedClients.
 | 
					                // remove the entry from the connectedClients.
 | 
				
			||||||
                String key = ovsdbSessionMapInterface.lookupClientId(ovsdbClient);
 | 
					                String key = ConnectusOvsdbClient.this.ovsdbSessionMapInterface.lookupClientId(ovsdbClient);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (key != null) {
 | 
					                if (key != null) {
 | 
				
			||||||
                    try {
 | 
					                    try {
 | 
				
			||||||
@@ -154,7 +155,7 @@ public class ConnectusOvsdbClient implements ConnectusOvsdbClientInterface {
 | 
				
			|||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    try {
 | 
					                    try {
 | 
				
			||||||
                        extIntegrationInterface.apDisconnected(key);
 | 
					                        extIntegrationInterface.apDisconnected(key);
 | 
				
			||||||
                        ovsdbSessionMapInterface.removeSession(key);
 | 
					                        ConnectusOvsdbClient.this.ovsdbSessionMapInterface.removeSession(key);
 | 
				
			||||||
                    } catch (Exception e) {
 | 
					                    } catch (Exception e) {
 | 
				
			||||||
                        LOG.debug("Unable to process ap disconnect. {}", e.getMessage());
 | 
					                        LOG.debug("Unable to process ap disconnect. {}", e.getMessage());
 | 
				
			||||||
                    } finally {
 | 
					                    } finally {
 | 
				
			||||||
@@ -164,7 +165,8 @@ public class ConnectusOvsdbClient implements ConnectusOvsdbClientInterface {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                LOG.info("ovsdbClient disconnected from {} on port {} clientCn {} key {} ", remoteHost, localPort,
 | 
					                LOG.info("ovsdbClient disconnected from {} on port {} clientCn {} key {} ", remoteHost, localPort,
 | 
				
			||||||
                        clientCn, key);
 | 
					                        clientCn, key);
 | 
				
			||||||
                LOG.info("ovsdbClient connectedClients = {}", ovsdbSessionMapInterface.getNumSessions());
 | 
					                LOG.info("ovsdbClient connectedClients = {}",
 | 
				
			||||||
 | 
					                        ConnectusOvsdbClient.this.ovsdbSessionMapInterface.getNumSessions());
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
@@ -180,8 +182,8 @@ public class ConnectusOvsdbClient implements ConnectusOvsdbClientInterface {
 | 
				
			|||||||
        LOG.debug("Starting Client connect");
 | 
					        LOG.debug("Starting Client connect");
 | 
				
			||||||
        connectNodeInfo = ovsdbDao.updateConnectNodeInfoOnConnect(ovsdbClient, clientCn, connectNodeInfo);
 | 
					        connectNodeInfo = ovsdbDao.updateConnectNodeInfoOnConnect(ovsdbClient, clientCn, connectNodeInfo);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        ovsdbDao.vifBridge = connectNodeInfo.ifName;
 | 
					        String apId = clientCn + "_" + connectNodeInfo.serialNumber;
 | 
				
			||||||
        
 | 
					        OpensyncAPConfig opensyncAPConfig = extIntegrationInterface.getApConfig(apId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        try {
 | 
					        try {
 | 
				
			||||||
            ovsdbDao.provisionBridgePortInterface(ovsdbClient);
 | 
					            ovsdbDao.provisionBridgePortInterface(ovsdbClient);
 | 
				
			||||||
@@ -191,12 +193,10 @@ public class ConnectusOvsdbClient implements ConnectusOvsdbClientInterface {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        ovsdbDao.removeAllSsids(ovsdbClient); // always
 | 
					        ovsdbDao.removeAllSsids(ovsdbClient); // always
 | 
				
			||||||
        String apId = clientCn + "_" + connectNodeInfo.serialNumber;
 | 
					
 | 
				
			||||||
        OpensyncAPConfig opensyncAPConfig = extIntegrationInterface.getApConfig(apId);
 | 
					 | 
				
			||||||
        if (opensyncAPConfig != null) {
 | 
					        if (opensyncAPConfig != null) {
 | 
				
			||||||
            ovsdbDao.configureWifiRadios(ovsdbClient, opensyncAPConfig);
 | 
					            ovsdbDao.configureWifiRadios(ovsdbClient, opensyncAPConfig);
 | 
				
			||||||
            ovsdbDao.configureSsids(ovsdbClient, opensyncAPConfig);
 | 
					            ovsdbDao.configureSsids(ovsdbClient, opensyncAPConfig);
 | 
				
			||||||
            ovsdbDao.configureWifiInet(ovsdbClient, opensyncAPConfig);
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        ovsdbDao.configureStats(ovsdbClient);
 | 
					        ovsdbDao.configureStats(ovsdbClient);
 | 
				
			||||||
@@ -208,6 +208,8 @@ public class ConnectusOvsdbClient implements ConnectusOvsdbClientInterface {
 | 
				
			|||||||
            ovsdbDao.updateDeviceStatsReportingInterval(ovsdbClient, collectionIntervalSecDeviceStats);
 | 
					            ovsdbDao.updateDeviceStatsReportingInterval(ovsdbClient, collectionIntervalSecDeviceStats);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // ovsdbDao.configureWifiInet(ovsdbClient);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        LOG.debug("Client connect Done");
 | 
					        LOG.debug("Client connect Done");
 | 
				
			||||||
        return connectNodeInfo;
 | 
					        return connectNodeInfo;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -305,22 +307,22 @@ public class ConnectusOvsdbClient implements ConnectusOvsdbClientInterface {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                                    for (Entry<UUID, RowUpdate> rowUpdate : tableUpdate.getValue().getRowUpdates()
 | 
					                                    for (Entry<UUID, RowUpdate> rowUpdate : tableUpdate.getValue().getRowUpdates()
 | 
				
			||||||
                                            .entrySet()) {
 | 
					                                            .entrySet()) {
 | 
				
			||||||
                                        if ((rowUpdate.getValue().getOld() != null)
 | 
					                                        if (rowUpdate.getValue().getOld() != null
 | 
				
			||||||
                                                && (rowUpdate.getValue().getNew() == null)) {
 | 
					                                                && rowUpdate.getValue().getNew() == null) {
 | 
				
			||||||
                                            Row row = rowUpdate.getValue().getOld();
 | 
					                                            Row row = rowUpdate.getValue().getOld();
 | 
				
			||||||
                                            String ifName = null;
 | 
					                                            String ifName = null;
 | 
				
			||||||
                                            String ssid = null;
 | 
					                                            String ssid = null;
 | 
				
			||||||
                                            if ((row.getColumns().get("ssid") != null)
 | 
					                                            if (row.getColumns().get("ssid") != null
 | 
				
			||||||
                                                    && row.getColumns().get("ssid").getClass().equals(
 | 
					                                                    && row.getColumns().get("ssid").getClass().equals(
 | 
				
			||||||
                                                            com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                                            com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                                                ssid = row.getStringColumn("ssid");
 | 
					                                                ssid = row.getStringColumn("ssid");
 | 
				
			||||||
                                            }
 | 
					                                            }
 | 
				
			||||||
                                            if ((row.getColumns().get("if_name") != null)
 | 
					                                            if (row.getColumns().get("if_name") != null
 | 
				
			||||||
                                                    && row.getColumns().get("if_name").getClass().equals(
 | 
					                                                    && row.getColumns().get("if_name").getClass().equals(
 | 
				
			||||||
                                                            com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                                            com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                                                ifName = row.getStringColumn("if_name");
 | 
					                                                ifName = row.getStringColumn("if_name");
 | 
				
			||||||
                                            }
 | 
					                                            }
 | 
				
			||||||
                                            if ((ifName != null) && (ssid != null)) {
 | 
					                                            if (ifName != null && ssid != null) {
 | 
				
			||||||
                                                OpensyncAPVIFState toBeDeleted = new OpensyncAPVIFState();
 | 
					                                                OpensyncAPVIFState toBeDeleted = new OpensyncAPVIFState();
 | 
				
			||||||
                                                toBeDeleted.setSsid(ssid);
 | 
					                                                toBeDeleted.setSsid(ssid);
 | 
				
			||||||
                                                toBeDeleted.setIfName(ifName);
 | 
					                                                toBeDeleted.setIfName(ifName);
 | 
				
			||||||
@@ -331,7 +333,7 @@ public class ConnectusOvsdbClient implements ConnectusOvsdbClientInterface {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                                    }
 | 
					                                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                                    if (tableUpdate.getValue().getRowUpdates().isEmpty()) {
 | 
					                                    if (tableUpdate.getValue().getRowUpdates().values().isEmpty()) {
 | 
				
			||||||
                                        tableUpdates.getTableUpdates().remove(tableUpdate.getKey());
 | 
					                                        tableUpdates.getTableUpdates().remove(tableUpdate.getKey());
 | 
				
			||||||
                                    }
 | 
					                                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -376,7 +378,7 @@ public class ConnectusOvsdbClient implements ConnectusOvsdbClientInterface {
 | 
				
			|||||||
                                for (TableUpdate tableUpdate : tableUpdates.getTableUpdates().values()) {
 | 
					                                for (TableUpdate tableUpdate : tableUpdates.getTableUpdates().values()) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                                    for (RowUpdate rowUpdate : tableUpdate.getRowUpdates().values()) {
 | 
					                                    for (RowUpdate rowUpdate : tableUpdate.getRowUpdates().values()) {
 | 
				
			||||||
                                        if ((rowUpdate.getOld() != null) && (rowUpdate.getNew() == null)) {
 | 
					                                        if (rowUpdate.getOld() != null && rowUpdate.getNew() == null) {
 | 
				
			||||||
                                            Row row = rowUpdate.getOld();
 | 
					                                            Row row = rowUpdate.getOld();
 | 
				
			||||||
                                            String deletedClientMac = row.getStringColumn("mac");
 | 
					                                            String deletedClientMac = row.getStringColumn("mac");
 | 
				
			||||||
                                            extIntegrationInterface.wifiAssociatedClientsDbTableDelete(deletedClientMac,
 | 
					                                            extIntegrationInterface.wifiAssociatedClientsDbTableDelete(deletedClientMac,
 | 
				
			||||||
 
 | 
				
			|||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Reference in New Issue
	
	Block a user