mirror of
				https://github.com/Telecominfraproject/wlan-cloud-opensync-controller.git
				synced 2025-11-03 20:17:53 +00:00 
			
		
		
		
	Wifi_Stats_Config support all radio freq_bands, create on/off channel by radio types. Status update improvement for Wifi_Radio_State changes.
This commit is contained in:
		@@ -96,10 +96,7 @@ import com.telecominfraproject.wlan.status.equipment.models.VLANStatusData;
 | 
				
			|||||||
import com.telecominfraproject.wlan.status.equipment.report.models.ActiveBSSID;
 | 
					import com.telecominfraproject.wlan.status.equipment.report.models.ActiveBSSID;
 | 
				
			||||||
import com.telecominfraproject.wlan.status.equipment.report.models.ActiveBSSIDs;
 | 
					import com.telecominfraproject.wlan.status.equipment.report.models.ActiveBSSIDs;
 | 
				
			||||||
import com.telecominfraproject.wlan.status.equipment.report.models.ClientConnectionDetails;
 | 
					import com.telecominfraproject.wlan.status.equipment.report.models.ClientConnectionDetails;
 | 
				
			||||||
import com.telecominfraproject.wlan.status.equipment.report.models.EquipmentCapacityDetails;
 | 
					 | 
				
			||||||
import com.telecominfraproject.wlan.status.equipment.report.models.EquipmentPerRadioUtilizationDetails;
 | 
					 | 
				
			||||||
import com.telecominfraproject.wlan.status.equipment.report.models.OperatingSystemPerformance;
 | 
					import com.telecominfraproject.wlan.status.equipment.report.models.OperatingSystemPerformance;
 | 
				
			||||||
import com.telecominfraproject.wlan.status.equipment.report.models.RadioUtilizationReport;
 | 
					 | 
				
			||||||
import com.telecominfraproject.wlan.status.models.Status;
 | 
					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;
 | 
				
			||||||
@@ -1479,15 +1476,13 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
                        LOG.debug("tidStats {}", tidStats);
 | 
					                        LOG.debug("tidStats {}", tidStats);
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                try {
 | 
					                try {
 | 
				
			||||||
                    if (ssidStatistics.getBssid() != null && ssid != null
 | 
					                    if ((ssidStatistics.getBssid() != null) && (ssid != null) && (client.getMacAddress() != null)) {
 | 
				
			||||||
                            && client.getMacAddress() != null) {
 | 
					                        handleClientSessionUpdate(customerId, equipmentId, apId, locationId, clientReport.getChannel(),
 | 
				
			||||||
                        handleClientSessionUpdate(customerId, equipmentId, apId, locationId,
 | 
					                                clientReport.getBand(), clientReport.getTimestampMs(), client, report.getNodeID(),
 | 
				
			||||||
                                clientReport.getChannel(), clientReport.getBand(), clientReport.getTimestampMs(),
 | 
					                                ssidStatistics.getBssid(), ssid);
 | 
				
			||||||
                                client, report.getNodeID(), ssidStatistics.getBssid(), ssid);
 | 
					 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                } catch (Exception e) {
 | 
					                } catch (Exception e) {
 | 
				
			||||||
                    LOG.debug("Unabled to update client {} session {}", client, e);
 | 
					                    LOG.debug("Unabled to update client {} session {}", client, e);
 | 
				
			||||||
@@ -1908,6 +1903,8 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        ApElementConfiguration apElementConfiguration = ((ApElementConfiguration) ce.getDetails());
 | 
					        ApElementConfiguration apElementConfiguration = ((ApElementConfiguration) ce.getDetails());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Status protocolStatus = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        for (OpensyncAPRadioState radioState : radioStateTables) {
 | 
					        for (OpensyncAPRadioState radioState : radioStateTables) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (radioState.getFreqBand().equals(RadioType.UNSUPPORTED)) {
 | 
					            if (radioState.getFreqBand().equals(RadioType.UNSUPPORTED)) {
 | 
				
			||||||
@@ -1944,35 +1941,22 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            Status protocolStatus = statusServiceInterface.getOrNull(customerId, equipmentId, StatusDataType.PROTOCOL);
 | 
					            protocolStatus = statusServiceInterface.getOrNull(customerId, equipmentId, StatusDataType.PROTOCOL);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (protocolStatus == null) {
 | 
					            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);
 | 
					                EquipmentProtocolStatusData protocolStatusData = (EquipmentProtocolStatusData) protocolStatus
 | 
				
			||||||
 | 
					                        .getDetails();
 | 
				
			||||||
            }
 | 
					                if (!protocolStatusData.getReportedCC()
 | 
				
			||||||
 | 
					                        .equals(CountryCode.valueOf(radioState.getCountry().toLowerCase()))) {
 | 
				
			||||||
            EquipmentProtocolStatusData protocolStatusData = (EquipmentProtocolStatusData) protocolStatus.getDetails();
 | 
					 | 
				
			||||||
                    protocolStatusData.setReportedCC(CountryCode.valueOf(radioState.getCountry().toLowerCase()));
 | 
					                    protocolStatusData.setReportedCC(CountryCode.valueOf(radioState.getCountry().toLowerCase()));
 | 
				
			||||||
 | 
					 | 
				
			||||||
            try {
 | 
					 | 
				
			||||||
                Location location = locationServiceInterface.get(ce.getLocationId());
 | 
					 | 
				
			||||||
                if (location != null) {
 | 
					 | 
				
			||||||
                    protocolStatusData.setSystemLocation(location.getName());
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            } catch (Exception e) {
 | 
					 | 
				
			||||||
                LOG.debug("Could not get location {} for customer {} equipment {}", ce.getLocationId(),
 | 
					 | 
				
			||||||
                        ce.getCustomerId(), ce.getId());
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
                    protocolStatus.setDetails(protocolStatusData);
 | 
					                    protocolStatus.setDetails(protocolStatusData);
 | 
				
			||||||
 | 
					                } else {
 | 
				
			||||||
 | 
					                    protocolStatusData = null; // no change we will ignore at
 | 
				
			||||||
 | 
					                                               // the end
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            protocolStatus = statusServiceInterface.update(protocolStatus);
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        ce = equipmentServiceInterface.getByInventoryIdOrNull(apId);
 | 
					        ce = equipmentServiceInterface.getByInventoryIdOrNull(apId);
 | 
				
			||||||
@@ -1992,6 +1976,10 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
            ce = equipmentServiceInterface.update(ce);
 | 
					            ce = equipmentServiceInterface.update(ce);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (protocolStatus != null) {
 | 
				
			||||||
 | 
					            statusServiceInterface.update(protocolStatus);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
@@ -2133,8 +2121,6 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        List<ActiveBSSID> bssidList = statusDetails.getActiveBSSIDs();
 | 
					        List<ActiveBSSID> bssidList = statusDetails.getActiveBSSIDs();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        bssidList.clear();
 | 
					        bssidList.clear();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        statusDetails.setActiveBSSIDs(bssidList);
 | 
					        statusDetails.setActiveBSSIDs(bssidList);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -78,6 +78,8 @@ public class ConnectusOvsdbClient implements ConnectusOvsdbClientInterface {
 | 
				
			|||||||
        ConnectionCallback connectionCallback = new ConnectionCallback() {
 | 
					        ConnectionCallback connectionCallback = new ConnectionCallback() {
 | 
				
			||||||
            @Override
 | 
					            @Override
 | 
				
			||||||
            public void connected(OvsdbClient ovsdbClient) {
 | 
					            public void connected(OvsdbClient ovsdbClient) {
 | 
				
			||||||
 | 
					                
 | 
				
			||||||
 | 
					                LOG.info("MJH {}", ovsdbClient.getConnectionInfo());
 | 
				
			||||||
                String remoteHost = ovsdbClient.getConnectionInfo().getRemoteAddress().getHostAddress();
 | 
					                String remoteHost = ovsdbClient.getConnectionInfo().getRemoteAddress().getHostAddress();
 | 
				
			||||||
                int localPort = ovsdbClient.getConnectionInfo().getLocalPort();
 | 
					                int localPort = ovsdbClient.getConnectionInfo().getLocalPort();
 | 
				
			||||||
                String subjectDn = null;
 | 
					                String subjectDn = null;
 | 
				
			||||||
@@ -97,7 +99,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;
 | 
				
			||||||
                    ConnectusOvsdbClient.this.ovsdbSessionMapInterface.newSession(key, ovsdbClient);
 | 
					                    ovsdbSessionMapInterface.newSession(key, ovsdbClient);
 | 
				
			||||||
                    extIntegrationInterface.apConnected(key, connectNodeInfo);
 | 
					                    extIntegrationInterface.apConnected(key, connectNodeInfo);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    // push configuration to AP
 | 
					                    // push configuration to AP
 | 
				
			||||||
@@ -105,8 +107,7 @@ 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 = {}",
 | 
					                    LOG.info("ovsdbClient connectedClients = {}", ovsdbSessionMapInterface.getNumSessions());
 | 
				
			||||||
                            ConnectusOvsdbClient.this.ovsdbSessionMapInterface.getNumSessions());
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                } catch (Exception e) {
 | 
					                } catch (Exception e) {
 | 
				
			||||||
                    LOG.error("ovsdbClient error", e);
 | 
					                    LOG.error("ovsdbClient error", e);
 | 
				
			||||||
@@ -139,13 +140,12 @@ 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 = ConnectusOvsdbClient.this.ovsdbSessionMapInterface.lookupClientId(ovsdbClient);
 | 
					                String key = ovsdbSessionMapInterface.lookupClientId(ovsdbClient);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (key != null) {
 | 
					                if (key != null) {
 | 
				
			||||||
                    cancelMonitors(ovsdbClient, key);
 | 
					 | 
				
			||||||
                    try {
 | 
					                    try {
 | 
				
			||||||
                        extIntegrationInterface.apDisconnected(key);
 | 
					                        extIntegrationInterface.apDisconnected(key);
 | 
				
			||||||
                        ConnectusOvsdbClient.this.ovsdbSessionMapInterface.removeSession(key);
 | 
					                        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 {
 | 
				
			||||||
@@ -155,12 +155,9 @@ 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 = {}",
 | 
					                LOG.info("ovsdbClient connectedClients = {}", ovsdbSessionMapInterface.getNumSessions());
 | 
				
			||||||
                        ConnectusOvsdbClient.this.ovsdbSessionMapInterface.getNumSessions());
 | 
					 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
           
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        listener.startListeningWithSsl(ovsdbListenPort, sslContext, connectionCallback).join();
 | 
					        listener.startListeningWithSsl(ovsdbListenPort, sslContext, connectionCallback).join();
 | 
				
			||||||
@@ -253,11 +250,11 @@ public class ConnectusOvsdbClient implements ConnectusOvsdbClientInterface {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        OvsdbClient ovsdbClient = ovsdbSession.getOvsdbClient();
 | 
					        OvsdbClient ovsdbClient = ovsdbSession.getOvsdbClient();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
        OpensyncAPConfig opensyncAPConfig = extIntegrationInterface.getApConfig(apId);
 | 
					        OpensyncAPConfig opensyncAPConfig = extIntegrationInterface.getApConfig(apId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (opensyncAPConfig != null) {
 | 
					        if (opensyncAPConfig != null) {
 | 
				
			||||||
            try {
 | 
					            try {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                ovsdbClient.cancelMonitor(OvsdbDao.wifiRadioStateDbTable + "_" + apId).join();
 | 
					                ovsdbClient.cancelMonitor(OvsdbDao.wifiRadioStateDbTable + "_" + apId).join();
 | 
				
			||||||
                ovsdbClient.cancelMonitor(OvsdbDao.wifiVifStateDbTable + "_" + apId).join();
 | 
					                ovsdbClient.cancelMonitor(OvsdbDao.wifiVifStateDbTable + "_" + apId).join();
 | 
				
			||||||
                ovsdbDao.removeAllSsids(ovsdbClient);
 | 
					                ovsdbDao.removeAllSsids(ovsdbClient);
 | 
				
			||||||
@@ -265,7 +262,6 @@ public class ConnectusOvsdbClient implements ConnectusOvsdbClientInterface {
 | 
				
			|||||||
                ovsdbDao.configureWifiRadios(ovsdbClient, opensyncAPConfig);
 | 
					                ovsdbDao.configureWifiRadios(ovsdbClient, opensyncAPConfig);
 | 
				
			||||||
                ovsdbDao.configureSsids(ovsdbClient, opensyncAPConfig);
 | 
					                ovsdbDao.configureSsids(ovsdbClient, opensyncAPConfig);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                
 | 
					 | 
				
			||||||
                ovsdbDao.removeAllStatsConfigs(ovsdbClient); // always
 | 
					                ovsdbDao.removeAllStatsConfigs(ovsdbClient); // always
 | 
				
			||||||
                ovsdbDao.configureStats(ovsdbClient);
 | 
					                ovsdbDao.configureStats(ovsdbClient);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -276,32 +272,27 @@ public class ConnectusOvsdbClient implements ConnectusOvsdbClientInterface {
 | 
				
			|||||||
                monitorWifiVifStateDbTable(ovsdbClient, apId);
 | 
					                monitorWifiVifStateDbTable(ovsdbClient, apId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            } catch (OvsdbClientException e) {
 | 
					            } catch (OvsdbClientException e) {
 | 
				
			||||||
                LOG.error("Could not enable/disable table state monitors, cannot proccess config change for AP {}", apId);
 | 
					                LOG.error("Could not enable/disable table state monitors, cannot proccess config change for AP {}",
 | 
				
			||||||
 | 
					                        apId);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            
 | 
					 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
            LOG.warn("Could not get provisioned configuration for AP {}", apId);
 | 
					            LOG.warn("Could not get provisioned configuration for AP {}", apId);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        LOG.debug("Finished processConfigChanged for {}", apId);
 | 
					        LOG.debug("Finished processConfigChanged for {}", apId);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private void monitorOvsdbStateTables(OvsdbClient ovsdbClient, String key) throws OvsdbClientException {
 | 
					    private void monitorOvsdbStateTables(OvsdbClient ovsdbClient, String key) throws OvsdbClientException {
 | 
				
			||||||
        monitorWifiRadioStateDbTable(ovsdbClient, key);
 | 
					        monitorWifiRadioStateDbTable(ovsdbClient, key);
 | 
				
			||||||
//        monitorWifiInetStateDbTable(ovsdbClient, key);
 | 
					        monitorWifiInetStateDbTable(ovsdbClient, key);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        monitorWifiVifStateDbTableDeletion(ovsdbClient, key);
 | 
					        monitorWifiVifStateDbTableDeletion(ovsdbClient, key);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        monitorWifiVifStateDbTable(ovsdbClient, key);
 | 
					        monitorWifiVifStateDbTable(ovsdbClient, key);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//        monitorWifiAssociatedClientsDbTableDeletion(ovsdbClient, key);
 | 
					        monitorWifiAssociatedClientsDbTable(ovsdbClient, key);
 | 
				
			||||||
 | 
					        monitorWifiAssociatedClientsDbTableDeletion(ovsdbClient, key);
 | 
				
			||||||
//        monitorWifiAssociatedClientsDbTable(ovsdbClient, key);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        monitorAwlanNodeDbTable(ovsdbClient, key);
 | 
					        monitorAwlanNodeDbTable(ovsdbClient, key);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -316,6 +307,8 @@ public class ConnectusOvsdbClient implements ConnectusOvsdbClientInterface {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                            @Override
 | 
					                            @Override
 | 
				
			||||||
                            public void update(TableUpdates tableUpdates) {
 | 
					                            public void update(TableUpdates tableUpdates) {
 | 
				
			||||||
 | 
					                                LOG.info("Monitor callback received {}", tableUpdates);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                                extIntegrationInterface.awlanNodeDbTableUpdate(
 | 
					                                extIntegrationInterface.awlanNodeDbTableUpdate(
 | 
				
			||||||
                                        ovsdbDao.getOpensyncAWLANNode(tableUpdates, key, ovsdbClient), key);
 | 
					                                        ovsdbDao.getOpensyncAWLANNode(tableUpdates, key, ovsdbClient), key);
 | 
				
			||||||
                            }
 | 
					                            }
 | 
				
			||||||
@@ -333,6 +326,7 @@ public class ConnectusOvsdbClient implements ConnectusOvsdbClientInterface {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                            @Override
 | 
					                            @Override
 | 
				
			||||||
                            public void update(TableUpdates tableUpdates) {
 | 
					                            public void update(TableUpdates tableUpdates) {
 | 
				
			||||||
 | 
					                                LOG.info("Monitor callback received {}", tableUpdates);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                                for (TableUpdate tableUpdate : tableUpdates.getTableUpdates().values()) {
 | 
					                                for (TableUpdate tableUpdate : tableUpdates.getTableUpdates().values()) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -355,6 +349,7 @@ public class ConnectusOvsdbClient implements ConnectusOvsdbClientInterface {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                    @Override
 | 
					                    @Override
 | 
				
			||||||
                    public void update(TableUpdates tableUpdates) {
 | 
					                    public void update(TableUpdates tableUpdates) {
 | 
				
			||||||
 | 
					                        LOG.info("Monitor callback received {}", tableUpdates);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        extIntegrationInterface.wifiInetStateDbTableUpdate(
 | 
					                        extIntegrationInterface.wifiInetStateDbTableUpdate(
 | 
				
			||||||
                                ovsdbDao.getOpensyncAPInetState(tableUpdates, key, ovsdbClient), key);
 | 
					                                ovsdbDao.getOpensyncAPInetState(tableUpdates, key, ovsdbClient), key);
 | 
				
			||||||
@@ -374,6 +369,8 @@ public class ConnectusOvsdbClient implements ConnectusOvsdbClientInterface {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                            @Override
 | 
					                            @Override
 | 
				
			||||||
                            public void update(TableUpdates tableUpdates) {
 | 
					                            public void update(TableUpdates tableUpdates) {
 | 
				
			||||||
 | 
					                                LOG.info("Monitor callback received {}", tableUpdates);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                                extIntegrationInterface.wifiRadioStatusDbTableUpdate(
 | 
					                                extIntegrationInterface.wifiRadioStatusDbTableUpdate(
 | 
				
			||||||
                                        ovsdbDao.getOpensyncAPRadioState(tableUpdates, key, ovsdbClient), key);
 | 
					                                        ovsdbDao.getOpensyncAPRadioState(tableUpdates, key, ovsdbClient), key);
 | 
				
			||||||
                            }
 | 
					                            }
 | 
				
			||||||
@@ -390,6 +387,9 @@ public class ConnectusOvsdbClient implements ConnectusOvsdbClientInterface {
 | 
				
			|||||||
                        new MonitorCallback() {
 | 
					                        new MonitorCallback() {
 | 
				
			||||||
                            @Override
 | 
					                            @Override
 | 
				
			||||||
                            public void update(TableUpdates tableUpdates) {
 | 
					                            public void update(TableUpdates tableUpdates) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                                LOG.info("Monitor callback received {}", tableUpdates);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                                // extIntegrationInterface.wifiVIFStateDbTableUpdate(
 | 
					                                // extIntegrationInterface.wifiVIFStateDbTableUpdate(
 | 
				
			||||||
                                // ovsdbDao.getOpensyncAPVIFState(tableUpdates,
 | 
					                                // ovsdbDao.getOpensyncAPVIFState(tableUpdates,
 | 
				
			||||||
                                // key, ovsdbClient), key);
 | 
					                                // key, ovsdbClient), key);
 | 
				
			||||||
@@ -399,22 +399,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);
 | 
				
			||||||
@@ -425,7 +425,7 @@ public class ConnectusOvsdbClient implements ConnectusOvsdbClientInterface {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                                    }
 | 
					                                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                                    if (tableUpdate.getValue().getRowUpdates().values().isEmpty()) {
 | 
					                                    if (tableUpdate.getValue().getRowUpdates().isEmpty()) {
 | 
				
			||||||
                                        tableUpdates.getTableUpdates().remove(tableUpdate.getKey());
 | 
					                                        tableUpdates.getTableUpdates().remove(tableUpdate.getKey());
 | 
				
			||||||
                                    }
 | 
					                                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -442,7 +442,8 @@ public class ConnectusOvsdbClient implements ConnectusOvsdbClientInterface {
 | 
				
			|||||||
        vsdCf.join();
 | 
					        vsdCf.join();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private void monitorWifiAssociatedClientsDbTableDeletion(OvsdbClient ovsdbClient, String key) throws OvsdbClientException {
 | 
					    private void monitorWifiAssociatedClientsDbTableDeletion(OvsdbClient ovsdbClient, String key)
 | 
				
			||||||
 | 
					            throws OvsdbClientException {
 | 
				
			||||||
        CompletableFuture<TableUpdates> acdCf = ovsdbClient
 | 
					        CompletableFuture<TableUpdates> acdCf = ovsdbClient
 | 
				
			||||||
                .monitor(OvsdbDao.ovsdbName, OvsdbDao.wifiAssociatedClientsDbTable + "_delete_" + key,
 | 
					                .monitor(OvsdbDao.ovsdbName, OvsdbDao.wifiAssociatedClientsDbTable + "_delete_" + key,
 | 
				
			||||||
                        new MonitorRequests(ImmutableMap.of(OvsdbDao.wifiAssociatedClientsDbTable,
 | 
					                        new MonitorRequests(ImmutableMap.of(OvsdbDao.wifiAssociatedClientsDbTable,
 | 
				
			||||||
@@ -451,11 +452,12 @@ public class ConnectusOvsdbClient implements ConnectusOvsdbClientInterface {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                            @Override
 | 
					                            @Override
 | 
				
			||||||
                            public void update(TableUpdates tableUpdates) {
 | 
					                            public void update(TableUpdates tableUpdates) {
 | 
				
			||||||
 | 
					                                LOG.info("Monitor callback received {}", tableUpdates);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                                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,
 | 
				
			||||||
@@ -479,6 +481,7 @@ public class ConnectusOvsdbClient implements ConnectusOvsdbClientInterface {
 | 
				
			|||||||
                        new MonitorCallback() {
 | 
					                        new MonitorCallback() {
 | 
				
			||||||
                            @Override
 | 
					                            @Override
 | 
				
			||||||
                            public void update(TableUpdates tableUpdates) {
 | 
					                            public void update(TableUpdates tableUpdates) {
 | 
				
			||||||
 | 
					                                LOG.info("Monitor callback received {}", tableUpdates);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                                extIntegrationInterface.wifiVIFStateDbTableUpdate(
 | 
					                                extIntegrationInterface.wifiVIFStateDbTableUpdate(
 | 
				
			||||||
                                        ovsdbDao.getOpensyncAPVIFState(tableUpdates, key, ovsdbClient), key);
 | 
					                                        ovsdbDao.getOpensyncAPVIFState(tableUpdates, key, ovsdbClient), key);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,6 +13,8 @@ import java.util.concurrent.CompletableFuture;
 | 
				
			|||||||
import java.util.concurrent.ExecutionException;
 | 
					import java.util.concurrent.ExecutionException;
 | 
				
			||||||
import java.util.concurrent.TimeUnit;
 | 
					import java.util.concurrent.TimeUnit;
 | 
				
			||||||
import java.util.concurrent.TimeoutException;
 | 
					import java.util.concurrent.TimeoutException;
 | 
				
			||||||
 | 
					import java.util.function.Consumer;
 | 
				
			||||||
 | 
					import java.util.function.Predicate;
 | 
				
			||||||
import java.util.stream.Collectors;
 | 
					import java.util.stream.Collectors;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.slf4j.Logger;
 | 
					import org.slf4j.Logger;
 | 
				
			||||||
@@ -73,6 +75,10 @@ import com.vmware.ovsdb.service.OvsdbClient;
 | 
				
			|||||||
public class OvsdbDao {
 | 
					public class OvsdbDao {
 | 
				
			||||||
    private static final Logger LOG = LoggerFactory.getLogger(OvsdbDao.class);
 | 
					    private static final Logger LOG = LoggerFactory.getLogger(OvsdbDao.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public static final String wifiRouteStateDbTable = "Wifi_Route_State";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public static final String wifiMasterStateDbTable = "Wifi_Master_State";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @org.springframework.beans.factory.annotation.Value("${connectus.ovsdb.managerAddr:3.88.149.10}")
 | 
					    @org.springframework.beans.factory.annotation.Value("${connectus.ovsdb.managerAddr:3.88.149.10}")
 | 
				
			||||||
    private String managerIpAddr;
 | 
					    private String managerIpAddr;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -159,7 +165,7 @@ public class OvsdbDao {
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            Row row = null;
 | 
					            Row row = null;
 | 
				
			||||||
            if (result != null && result.length > 0 && !((SelectResult) result[0]).getRows().isEmpty()) {
 | 
					            if ((result != null) && (result.length > 0) && !((SelectResult) result[0]).getRows().isEmpty()) {
 | 
				
			||||||
                row = ((SelectResult) result[0]).getRows().iterator().next();
 | 
					                row = ((SelectResult) result[0]).getRows().iterator().next();
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -179,7 +185,7 @@ public class OvsdbDao {
 | 
				
			|||||||
            // now populate macAddress, ipV4Address from Wifi_Inet_State
 | 
					            // now populate macAddress, ipV4Address from Wifi_Inet_State
 | 
				
			||||||
            // first look them up for if_name = br-wan
 | 
					            // first look them up for if_name = br-wan
 | 
				
			||||||
            fillInWanIpAddressAndMac(ovsdbClient, ret, defaultWanInterfaceType);
 | 
					            fillInWanIpAddressAndMac(ovsdbClient, ret, defaultWanInterfaceType);
 | 
				
			||||||
            if (ret.ipV4Address == null || ret.macAddress == null) {
 | 
					            if ((ret.ipV4Address == null) || (ret.macAddress == null)) {
 | 
				
			||||||
                // when not found - look them up for if_name = br-lan
 | 
					                // when not found - look them up for if_name = br-lan
 | 
				
			||||||
                fillInWanIpAddressAndMac(ovsdbClient, ret, defaultLanInterfaceType);
 | 
					                fillInWanIpAddressAndMac(ovsdbClient, ret, defaultLanInterfaceType);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -218,7 +224,7 @@ public class OvsdbDao {
 | 
				
			|||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (result != null && result.length > 0 && !((SelectResult) result[0]).getRows().isEmpty()) {
 | 
					            if ((result != null) && (result.length > 0) && !((SelectResult) result[0]).getRows().isEmpty()) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                for (Row row : ((SelectResult) result[0]).getRows()) {
 | 
					                for (Row row : ((SelectResult) result[0]).getRows()) {
 | 
				
			||||||
                    ret.wifiRadioStates.put(getSingleValueFromSet(row, "freq_band"),
 | 
					                    ret.wifiRadioStates.put(getSingleValueFromSet(row, "freq_band"),
 | 
				
			||||||
@@ -242,7 +248,7 @@ public class OvsdbDao {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            columns.add("freq_band");
 | 
					            columns.add("freq_band");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            conditions.add(new Condition("enabled", Function.EQUALS, new Atom<Boolean>(true)));
 | 
					            conditions.add(new Condition("enabled", Function.EQUALS, new Atom<>(true)));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            operations.add(new Select(wifiRadioStateDbTable, conditions, columns));
 | 
					            operations.add(new Select(wifiRadioStateDbTable, conditions, columns));
 | 
				
			||||||
            CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
 | 
					            CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
 | 
				
			||||||
@@ -256,7 +262,7 @@ public class OvsdbDao {
 | 
				
			|||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (result != null && result.length > 0 && !((SelectResult) result[0]).getRows().isEmpty()) {
 | 
					            if ((result != null) && (result.length > 0) && !((SelectResult) result[0]).getRows().isEmpty()) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                for (Row row : ((SelectResult) result[0]).getRows()) {
 | 
					                for (Row row : ((SelectResult) result[0]).getRows()) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -313,7 +319,7 @@ public class OvsdbDao {
 | 
				
			|||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (result != null && result.length > 0 && !((SelectResult) result[0]).getRows().isEmpty()) {
 | 
					            if ((result != null) && (result.length > 0) && !((SelectResult) result[0]).getRows().isEmpty()) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                for (Row row : ((SelectResult) result[0]).getRows()) {
 | 
					                for (Row row : ((SelectResult) result[0]).getRows()) {
 | 
				
			||||||
                    allowedChannels.put(getSingleValueFromSet(row, "freq_band"), row.getSetColumn("allowed_channels"));
 | 
					                    allowedChannels.put(getSingleValueFromSet(row, "freq_band"), row.getSetColumn("allowed_channels"));
 | 
				
			||||||
@@ -356,14 +362,15 @@ public class OvsdbDao {
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            Row row = null;
 | 
					            Row row = null;
 | 
				
			||||||
            if (result != null && result.length > 0 &&  (result[0] instanceof SelectResult) && !((SelectResult) result[0]).getRows().isEmpty()) {
 | 
					            if ((result != null) && (result.length > 0) && (result[0] instanceof SelectResult)
 | 
				
			||||||
 | 
					                    && !((SelectResult) result[0]).getRows().isEmpty()) {
 | 
				
			||||||
                row = ((SelectResult) result[0]).getRows().iterator().next();
 | 
					                row = ((SelectResult) result[0]).getRows().iterator().next();
 | 
				
			||||||
                connectNodeInfo.lanIpV4Address = getSingleValueFromSet(row, "inet_addr");
 | 
					                connectNodeInfo.lanIpV4Address = getSingleValueFromSet(row, "inet_addr");
 | 
				
			||||||
                connectNodeInfo.lanIfName = row.getStringColumn("if_name");
 | 
					                connectNodeInfo.lanIfName = row.getStringColumn("if_name");
 | 
				
			||||||
                connectNodeInfo.lanIfType = getSingleValueFromSet(row, "if_type");
 | 
					                connectNodeInfo.lanIfType = getSingleValueFromSet(row, "if_type");
 | 
				
			||||||
                connectNodeInfo.lanMacAddress = getSingleValueFromSet(row, "hwaddr");
 | 
					                connectNodeInfo.lanMacAddress = getSingleValueFromSet(row, "hwaddr");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            } else  if (result != null && result.length > 0 &&  (result[0] instanceof ErrorResult) ) {
 | 
					            } else if ((result != null) && (result.length > 0) && (result[0] instanceof ErrorResult)) {
 | 
				
			||||||
                LOG.warn("Error reading from {} table: {}", wifiInetStateDbTable, result[0]);
 | 
					                LOG.warn("Error reading from {} table: {}", wifiInetStateDbTable, result[0]);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -400,7 +407,7 @@ public class OvsdbDao {
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            Row row = null;
 | 
					            Row row = null;
 | 
				
			||||||
            if (result != null && result.length > 0 && !((SelectResult) result[0]).getRows().isEmpty()) {
 | 
					            if ((result != null) && (result.length > 0) && !((SelectResult) result[0]).getRows().isEmpty()) {
 | 
				
			||||||
                row = ((SelectResult) result[0]).getRows().iterator().next();
 | 
					                row = ((SelectResult) result[0]).getRows().iterator().next();
 | 
				
			||||||
                connectNodeInfo.ipV4Address = getSingleValueFromSet(row, "inet_addr");
 | 
					                connectNodeInfo.ipV4Address = getSingleValueFromSet(row, "inet_addr");
 | 
				
			||||||
                connectNodeInfo.ifName = row.getStringColumn("if_name");
 | 
					                connectNodeInfo.ifName = row.getStringColumn("if_name");
 | 
				
			||||||
@@ -427,7 +434,7 @@ public class OvsdbDao {
 | 
				
			|||||||
            // updateColumns.put("device_mode", new Atom<String>("cloud") );
 | 
					            // updateColumns.put("device_mode", new Atom<String>("cloud") );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // update sku_number if it was empty
 | 
					            // update sku_number if it was empty
 | 
				
			||||||
            if (ret.skuNumber == null || ret.skuNumber.isEmpty()) {
 | 
					            if ((ret.skuNumber == null) || ret.skuNumber.isEmpty()) {
 | 
				
			||||||
                ret.skuNumber = "connectus.ai_" + ret.serialNumber;
 | 
					                ret.skuNumber = "connectus.ai_" + ret.serialNumber;
 | 
				
			||||||
                updateColumns.put("sku_number", new Atom<>(ret.skuNumber));
 | 
					                updateColumns.put("sku_number", new Atom<>(ret.skuNumber));
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
@@ -443,7 +450,7 @@ public class OvsdbDao {
 | 
				
			|||||||
            newMqttSettings.put("qos", "0");
 | 
					            newMqttSettings.put("qos", "0");
 | 
				
			||||||
            newMqttSettings.put("remote_log", "1");
 | 
					            newMqttSettings.put("remote_log", "1");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (ret.mqttSettings == null || !ret.mqttSettings.equals(newMqttSettings)) {
 | 
					            if ((ret.mqttSettings == null) || !ret.mqttSettings.equals(newMqttSettings)) {
 | 
				
			||||||
                @SuppressWarnings("unchecked")
 | 
					                @SuppressWarnings("unchecked")
 | 
				
			||||||
                com.vmware.ovsdb.protocol.operation.notation.Map<String, String> mgttSettings = com.vmware.ovsdb.protocol.operation.notation.Map
 | 
					                com.vmware.ovsdb.protocol.operation.notation.Map<String, String> mgttSettings = com.vmware.ovsdb.protocol.operation.notation.Map
 | 
				
			||||||
                        .of(newMqttSettings);
 | 
					                        .of(newMqttSettings);
 | 
				
			||||||
@@ -506,7 +513,7 @@ public class OvsdbDao {
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            Row row = null;
 | 
					            Row row = null;
 | 
				
			||||||
            if (result != null && result.length > 0 && !((SelectResult) result[0]).getRows().isEmpty()) {
 | 
					            if ((result != null) && (result.length > 0) && !((SelectResult) result[0]).getRows().isEmpty()) {
 | 
				
			||||||
                row = ((SelectResult) result[0]).getRows().iterator().next();
 | 
					                row = ((SelectResult) result[0]).getRows().iterator().next();
 | 
				
			||||||
                ret = row.getIntegerColumn("reporting_interval");
 | 
					                ret = row.getIntegerColumn("reporting_interval");
 | 
				
			||||||
                LOG.info("Stats collection for stats_type=device is already configured with reporting_interval = {}",
 | 
					                LOG.info("Stats collection for stats_type=device is already configured with reporting_interval = {}",
 | 
				
			||||||
@@ -591,7 +598,7 @@ public class OvsdbDao {
 | 
				
			|||||||
            String firmwareVersion = null;
 | 
					            String firmwareVersion = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            Row row = null;
 | 
					            Row row = null;
 | 
				
			||||||
            if (result != null && result.length > 0 && !((SelectResult) result[0]).getRows().isEmpty()) {
 | 
					            if ((result != null) && (result.length > 0) && !((SelectResult) result[0]).getRows().isEmpty()) {
 | 
				
			||||||
                row = ((SelectResult) result[0]).getRows().iterator().next();
 | 
					                row = ((SelectResult) result[0]).getRows().iterator().next();
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -640,7 +647,7 @@ public class OvsdbDao {
 | 
				
			|||||||
    public <T> T getSingleValueFromSet(Row row, String columnName) {
 | 
					    public <T> T getSingleValueFromSet(Row row, String columnName) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Set<T> set = row != null ? row.getSetColumn(columnName) : null;
 | 
					        Set<T> set = row != null ? row.getSetColumn(columnName) : null;
 | 
				
			||||||
        T ret = set != null && !set.isEmpty() ? set.iterator().next() : null;
 | 
					        T ret = (set != null) && !set.isEmpty() ? set.iterator().next() : null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return ret;
 | 
					        return ret;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -1026,7 +1033,7 @@ public class OvsdbDao {
 | 
				
			|||||||
                wifiInetConfigInfo.nat = natTmp != null ? natTmp : false;
 | 
					                wifiInetConfigInfo.nat = natTmp != null ? natTmp : false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                wifiInetConfigInfo.uuid = row.getUuidColumn("_uuid");
 | 
					                wifiInetConfigInfo.uuid = row.getUuidColumn("_uuid");
 | 
				
			||||||
                if (row.getColumns().get("broadcast") != null && row.getColumns().get("broadcast").getClass()
 | 
					                if ((row.getColumns().get("broadcast") != null) && row.getColumns().get("broadcast").getClass()
 | 
				
			||||||
                        .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                        .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                    wifiInetConfigInfo.broadcast = row.getStringColumn("broadcast");
 | 
					                    wifiInetConfigInfo.broadcast = row.getStringColumn("broadcast");
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
@@ -1035,19 +1042,19 @@ public class OvsdbDao {
 | 
				
			|||||||
                wifiInetConfigInfo.ifType = row.getStringColumn("if_type");
 | 
					                wifiInetConfigInfo.ifType = row.getStringColumn("if_type");
 | 
				
			||||||
                wifiInetConfigInfo.ipAssignScheme = row.getStringColumn("ip_assign_scheme");
 | 
					                wifiInetConfigInfo.ipAssignScheme = row.getStringColumn("ip_assign_scheme");
 | 
				
			||||||
                wifiInetConfigInfo.network = row.getBooleanColumn("network");
 | 
					                wifiInetConfigInfo.network = row.getBooleanColumn("network");
 | 
				
			||||||
                if (row.getColumns().get("inet_addr") != null && row.getColumns().get("inet_addr").getClass()
 | 
					                if ((row.getColumns().get("inet_addr") != null) && row.getColumns().get("inet_addr").getClass()
 | 
				
			||||||
                        .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                        .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                    wifiInetConfigInfo.inetAddr = row.getStringColumn("inet_addr");
 | 
					                    wifiInetConfigInfo.inetAddr = row.getStringColumn("inet_addr");
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                if (row.getColumns().get("mtu") != null && row.getColumns().get("mtu").getClass()
 | 
					                if ((row.getColumns().get("mtu") != null) && row.getColumns().get("mtu").getClass()
 | 
				
			||||||
                        .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                        .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                    wifiInetConfigInfo.mtu = row.getIntegerColumn("mtu").intValue();
 | 
					                    wifiInetConfigInfo.mtu = row.getIntegerColumn("mtu").intValue();
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                if (row.getColumns().get("netmask") != null && row.getColumns().get("netmask").getClass()
 | 
					                if ((row.getColumns().get("netmask") != null) && row.getColumns().get("netmask").getClass()
 | 
				
			||||||
                        .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                        .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                    wifiInetConfigInfo.netmask = row.getStringColumn("netmask");
 | 
					                    wifiInetConfigInfo.netmask = row.getStringColumn("netmask");
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                if (row.getColumns().get("vlan_id") != null && row.getColumns().get("vlan_id").getClass()
 | 
					                if ((row.getColumns().get("vlan_id") != null) && row.getColumns().get("vlan_id").getClass()
 | 
				
			||||||
                        .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                        .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                    wifiInetConfigInfo.vlanId = row.getIntegerColumn("vlan_id").intValue();
 | 
					                    wifiInetConfigInfo.vlanId = row.getIntegerColumn("vlan_id").intValue();
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
@@ -1560,15 +1567,15 @@ public class OvsdbDao {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                        Map<String, Value> map = row.getColumns();
 | 
					                        Map<String, Value> map = row.getColumns();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        if (map.get("mac") != null && map.get("mac").getClass()
 | 
					                        if ((map.get("mac") != null) && map.get("mac").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setMac(row.getStringColumn("mac"));
 | 
					                            tableState.setMac(row.getStringColumn("mac"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("channel") != null && map.get("channel").getClass()
 | 
					                        if ((map.get("channel") != null) && map.get("channel").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setChannel(row.getIntegerColumn("channel").intValue());
 | 
					                            tableState.setChannel(row.getIntegerColumn("channel").intValue());
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("freq_band") != null && map.get("freq_band").getClass()
 | 
					                        if ((map.get("freq_band") != null) && map.get("freq_band").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            String frequencyBand = row.getStringColumn("freq_band");
 | 
					                            String frequencyBand = row.getStringColumn("freq_band");
 | 
				
			||||||
                            switch (frequencyBand) {
 | 
					                            switch (frequencyBand) {
 | 
				
			||||||
@@ -1588,39 +1595,39 @@ public class OvsdbDao {
 | 
				
			|||||||
                                tableState.setFreqBand(RadioType.UNSUPPORTED);
 | 
					                                tableState.setFreqBand(RadioType.UNSUPPORTED);
 | 
				
			||||||
                            }
 | 
					                            }
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("if_name") != null && map.get("if_name").getClass()
 | 
					                        if ((map.get("if_name") != null) && map.get("if_name").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setIfName(row.getStringColumn("if_name"));
 | 
					                            tableState.setIfName(row.getStringColumn("if_name"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("channel_mode") != null && map.get("channel_mode").getClass()
 | 
					                        if ((map.get("channel_mode") != null) && map.get("channel_mode").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setChannelMode(row.getStringColumn("channel_mode"));
 | 
					                            tableState.setChannelMode(row.getStringColumn("channel_mode"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("country") != null && map.get("country").getClass()
 | 
					                        if ((map.get("country") != null) && map.get("country").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setCountry(row.getStringColumn("country").toUpperCase());
 | 
					                            tableState.setCountry(row.getStringColumn("country").toUpperCase());
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("enabled") != null && map.get("enabled").getClass()
 | 
					                        if ((map.get("enabled") != null) && map.get("enabled").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setEnabled(row.getBooleanColumn("enabled"));
 | 
					                            tableState.setEnabled(row.getBooleanColumn("enabled"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("ht_mode") != null && map.get("ht_mode").getClass()
 | 
					                        if ((map.get("ht_mode") != null) && map.get("ht_mode").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setHtMode(row.getStringColumn("ht_mode"));
 | 
					                            tableState.setHtMode(row.getStringColumn("ht_mode"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("tx_power") != null && map.get("tx_power").getClass()
 | 
					                        if ((map.get("tx_power") != null) && map.get("tx_power").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setTxPower(row.getIntegerColumn("tx_power").intValue());
 | 
					                            tableState.setTxPower(row.getIntegerColumn("tx_power").intValue());
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("hw_config") != null && map.get("hw_config").getClass()
 | 
					                        if ((map.get("hw_config") != null) && map.get("hw_config").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Map.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Map.class)) {
 | 
				
			||||||
                            tableState.setHwConfig(row.getMapColumn("hw_config"));
 | 
					                            tableState.setHwConfig(row.getMapColumn("hw_config"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("_version") != null && map.get("_version").getClass()
 | 
					                        if ((map.get("_version") != null) && map.get("_version").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setVersion(row.getUuidColumn("_version"));
 | 
					                            tableState.setVersion(row.getUuidColumn("_version"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("_uuid") != null && map.get("_uuid").getClass()
 | 
					                        if ((map.get("_uuid") != null) && map.get("_uuid").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setVersion(row.getUuidColumn("_uuid"));
 | 
					                            tableState.setVersion(row.getUuidColumn("_uuid"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
@@ -1640,8 +1647,11 @@ public class OvsdbDao {
 | 
				
			|||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            ret.stream().forEach(wrs -> {
 | 
					            ret.stream().forEach(new Consumer<OpensyncAPRadioState>() {
 | 
				
			||||||
 | 
					                @Override
 | 
				
			||||||
 | 
					                public void accept(OpensyncAPRadioState wrs) {
 | 
				
			||||||
                    LOG.debug("Wifi_Radio_State row {}", wrs);
 | 
					                    LOG.debug("Wifi_Radio_State row {}", wrs);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        } catch (Exception e) {
 | 
					        } catch (Exception e) {
 | 
				
			||||||
@@ -1669,39 +1679,39 @@ public class OvsdbDao {
 | 
				
			|||||||
                        OpensyncAPInetState tableState = new OpensyncAPInetState();
 | 
					                        OpensyncAPInetState tableState = new OpensyncAPInetState();
 | 
				
			||||||
                        Map<String, Value> map = row.getColumns();
 | 
					                        Map<String, Value> map = row.getColumns();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        if (map.get("NAT") != null && map.get("NAT").getClass()
 | 
					                        if ((map.get("NAT") != null) && map.get("NAT").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setNat(row.getBooleanColumn("NAT"));
 | 
					                            tableState.setNat(row.getBooleanColumn("NAT"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("enabled") != null && map.get("enabled").getClass()
 | 
					                        if ((map.get("enabled") != null) && map.get("enabled").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setEnabled(row.getBooleanColumn("enabled"));
 | 
					                            tableState.setEnabled(row.getBooleanColumn("enabled"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("if_name") != null && map.get("if_name").getClass()
 | 
					                        if ((map.get("if_name") != null) && map.get("if_name").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setIfName(row.getStringColumn("if_name"));
 | 
					                            tableState.setIfName(row.getStringColumn("if_name"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("if_type") != null && map.get("if_type").getClass()
 | 
					                        if ((map.get("if_type") != null) && map.get("if_type").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setIfType(row.getStringColumn("if_type"));
 | 
					                            tableState.setIfType(row.getStringColumn("if_type"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("ip_assign_scheme") != null && map.get("ip_assign_scheme").getClass()
 | 
					                        if ((map.get("ip_assign_scheme") != null) && map.get("ip_assign_scheme").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setIpAssignScheme(row.getStringColumn("ip_assign_scheme"));
 | 
					                            tableState.setIpAssignScheme(row.getStringColumn("ip_assign_scheme"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("network") != null && map.get("network").getClass()
 | 
					                        if ((map.get("network") != null) && map.get("network").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setNetwork(row.getBooleanColumn("network"));
 | 
					                            tableState.setNetwork(row.getBooleanColumn("network"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("hwaddr") != null && map.get("hwaddr").getClass()
 | 
					                        if ((map.get("hwaddr") != null) && map.get("hwaddr").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setHwAddr(row.getStringColumn("hwaddr"));
 | 
					                            tableState.setHwAddr(row.getStringColumn("hwaddr"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("_version") != null && map.get("_version").getClass()
 | 
					                        if ((map.get("_version") != null) && map.get("_version").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setVersion(row.getUuidColumn("_version"));
 | 
					                            tableState.setVersion(row.getUuidColumn("_version"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("_uuid") != null && map.get("_uuid").getClass()
 | 
					                        if ((map.get("_uuid") != null) && map.get("_uuid").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setVersion(row.getUuidColumn("_uuid"));
 | 
					                            tableState.setVersion(row.getUuidColumn("_uuid"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
@@ -1711,8 +1721,11 @@ public class OvsdbDao {
 | 
				
			|||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            ret.stream().forEach(wrs -> {
 | 
					            ret.stream().forEach(new Consumer<OpensyncAPInetState>() {
 | 
				
			||||||
 | 
					                @Override
 | 
				
			||||||
 | 
					                public void accept(OpensyncAPInetState wrs) {
 | 
				
			||||||
                    LOG.debug("Wifi_Inet_State row {}", wrs);
 | 
					                    LOG.debug("Wifi_Inet_State row {}", wrs);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        } catch (Exception e) {
 | 
					        } catch (Exception e) {
 | 
				
			||||||
@@ -1739,61 +1752,61 @@ public class OvsdbDao {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                        Map<String, Value> map = row.getColumns();
 | 
					                        Map<String, Value> map = row.getColumns();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        if (map.get("mac") != null && map.get("mac").getClass()
 | 
					                        if ((map.get("mac") != null) && map.get("mac").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setMac(row.getStringColumn("mac"));
 | 
					                            tableState.setMac(row.getStringColumn("mac"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("bridge") != null && map.get("bridge").getClass()
 | 
					                        if ((map.get("bridge") != null) && map.get("bridge").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setBridge(row.getStringColumn("bridge"));
 | 
					                            tableState.setBridge(row.getStringColumn("bridge"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("btm") != null && map.get("btm").getClass()
 | 
					                        if ((map.get("btm") != null) && map.get("btm").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setBtm(row.getIntegerColumn("btm").intValue());
 | 
					                            tableState.setBtm(row.getIntegerColumn("btm").intValue());
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        if (map.get("channel") != null && map.get("channel").getClass()
 | 
					                        if ((map.get("channel") != null) && map.get("channel").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setChannel(row.getIntegerColumn("channel").intValue());
 | 
					                            tableState.setChannel(row.getIntegerColumn("channel").intValue());
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        if (map.get("enabled") != null && map.get("enabled").getClass()
 | 
					                        if ((map.get("enabled") != null) && map.get("enabled").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setEnabled(row.getBooleanColumn("enabled"));
 | 
					                            tableState.setEnabled(row.getBooleanColumn("enabled"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        if (map.get("group_rekey") != null && map.get("group_rekey").getClass()
 | 
					                        if ((map.get("group_rekey") != null) && map.get("group_rekey").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setGroupRekey(row.getIntegerColumn("group_rekey").intValue());
 | 
					                            tableState.setGroupRekey(row.getIntegerColumn("group_rekey").intValue());
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("if_name") != null && map.get("if_name").getClass()
 | 
					                        if ((map.get("if_name") != null) && map.get("if_name").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setIfName(row.getStringColumn("if_name"));
 | 
					                            tableState.setIfName(row.getStringColumn("if_name"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        if (map.get("mode") != null && map.get("mode").getClass()
 | 
					                        if ((map.get("mode") != null) && map.get("mode").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setMode(row.getStringColumn("mode"));
 | 
					                            tableState.setMode(row.getStringColumn("mode"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        if (map.get("rrm") != null && map.get("rrm").getClass()
 | 
					                        if ((map.get("rrm") != null) && map.get("rrm").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setRrm(row.getIntegerColumn("rrm").intValue());
 | 
					                            tableState.setRrm(row.getIntegerColumn("rrm").intValue());
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("ssid") != null && map.get("ssid").getClass()
 | 
					                        if ((map.get("ssid") != null) && map.get("ssid").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setSsid(row.getStringColumn("ssid"));
 | 
					                            tableState.setSsid(row.getStringColumn("ssid"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        if (map.get("ssid_broadcast") != null && map.get("ssid_broadcast").getClass()
 | 
					                        if ((map.get("ssid_broadcast") != null) && map.get("ssid_broadcast").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setSsidBroadcast(row.getStringColumn("ssid_broadcast"));
 | 
					                            tableState.setSsidBroadcast(row.getStringColumn("ssid_broadcast"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("uapsd_enable") != null && map.get("uapsd_enable").getClass()
 | 
					                        if ((map.get("uapsd_enable") != null) && map.get("uapsd_enable").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setUapsdEnable(row.getBooleanColumn("uapsd_enable"));
 | 
					                            tableState.setUapsdEnable(row.getBooleanColumn("uapsd_enable"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("vif_radio_idx") != null && map.get("vif_radio_idx").getClass()
 | 
					                        if ((map.get("vif_radio_idx") != null) && map.get("vif_radio_idx").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setVifRadioIdx(row.getIntegerColumn("vif_radio_idx").intValue());
 | 
					                            tableState.setVifRadioIdx(row.getIntegerColumn("vif_radio_idx").intValue());
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
@@ -1806,11 +1819,11 @@ public class OvsdbDao {
 | 
				
			|||||||
                            tableState.setSecurity(row.getMapColumn("security"));
 | 
					                            tableState.setSecurity(row.getMapColumn("security"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        if (map.get("_version") != null && map.get("_version").getClass()
 | 
					                        if ((map.get("_version") != null) && map.get("_version").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setVersion(row.getUuidColumn("_version"));
 | 
					                            tableState.setVersion(row.getUuidColumn("_version"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("_uuid") != null && map.get("_uuid").getClass()
 | 
					                        if ((map.get("_uuid") != null) && map.get("_uuid").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setVersion(row.getUuidColumn("_uuid"));
 | 
					                            tableState.setVersion(row.getUuidColumn("_uuid"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
@@ -1822,8 +1835,11 @@ public class OvsdbDao {
 | 
				
			|||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            ret.stream().forEach(wrs -> {
 | 
					            ret.stream().forEach(new Consumer<OpensyncAPVIFState>() {
 | 
				
			||||||
 | 
					                @Override
 | 
				
			||||||
 | 
					                public void accept(OpensyncAPVIFState wrs) {
 | 
				
			||||||
                    LOG.debug("Wifi_VIF_State row {}", wrs);
 | 
					                    LOG.debug("Wifi_VIF_State row {}", wrs);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        } catch (Exception e) {
 | 
					        } catch (Exception e) {
 | 
				
			||||||
@@ -1850,22 +1866,22 @@ public class OvsdbDao {
 | 
				
			|||||||
                        OpensyncWifiAssociatedClients tableState = new OpensyncWifiAssociatedClients();
 | 
					                        OpensyncWifiAssociatedClients tableState = new OpensyncWifiAssociatedClients();
 | 
				
			||||||
                        Map<String, Value> map = row.getColumns();
 | 
					                        Map<String, Value> map = row.getColumns();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        if (map.get("mac") != null && map.get("mac").getClass()
 | 
					                        if ((map.get("mac") != null) && map.get("mac").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setMac(row.getStringColumn("mac"));
 | 
					                            tableState.setMac(row.getStringColumn("mac"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (row.getSetColumn("capabilities") != null) {
 | 
					                        if (row.getSetColumn("capabilities") != null) {
 | 
				
			||||||
                            tableState.setCapabilities(row.getSetColumn("capabilities"));
 | 
					                            tableState.setCapabilities(row.getSetColumn("capabilities"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("state") != null && map.get("state").getClass()
 | 
					                        if ((map.get("state") != null) && map.get("state").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setState(row.getStringColumn("state"));
 | 
					                            tableState.setState(row.getStringColumn("state"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("_version") != null && map.get("_version").getClass()
 | 
					                        if ((map.get("_version") != null) && map.get("_version").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setVersion(row.getUuidColumn("_version"));
 | 
					                            tableState.setVersion(row.getUuidColumn("_version"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("_uuid") != null && map.get("_uuid").getClass()
 | 
					                        if ((map.get("_uuid") != null) && map.get("_uuid").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setVersion(row.getUuidColumn("_uuid"));
 | 
					                            tableState.setVersion(row.getUuidColumn("_uuid"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
@@ -1875,8 +1891,11 @@ public class OvsdbDao {
 | 
				
			|||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            ret.stream().forEach(wrs -> {
 | 
					            ret.stream().forEach(new Consumer<OpensyncWifiAssociatedClients>() {
 | 
				
			||||||
 | 
					                @Override
 | 
				
			||||||
 | 
					                public void accept(OpensyncWifiAssociatedClients wrs) {
 | 
				
			||||||
                    LOG.debug("Wifi_Associated_Clients row {}", wrs);
 | 
					                    LOG.debug("Wifi_Associated_Clients row {}", wrs);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
        } catch (Exception e) {
 | 
					        } catch (Exception e) {
 | 
				
			||||||
            LOG.error("Could not get Wifi_Associated_Clients list from table update", e);
 | 
					            LOG.error("Could not get Wifi_Associated_Clients list from table update", e);
 | 
				
			||||||
@@ -1910,15 +1929,15 @@ public class OvsdbDao {
 | 
				
			|||||||
                            tableState.setMqttHeaders(row.getMapColumn("mqtt_topics"));
 | 
					                            tableState.setMqttHeaders(row.getMapColumn("mqtt_topics"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        if (map.get("model") != null && map.get("model").getClass()
 | 
					                        if ((map.get("model") != null) && map.get("model").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setModel(row.getStringColumn("model"));
 | 
					                            tableState.setModel(row.getStringColumn("model"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("sku_number") != null && map.get("sku_number").getClass()
 | 
					                        if ((map.get("sku_number") != null) && map.get("sku_number").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setSkuNumber(row.getStringColumn("sku_number"));
 | 
					                            tableState.setSkuNumber(row.getStringColumn("sku_number"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("id") != null && map.get("id").getClass()
 | 
					                        if ((map.get("id") != null) && map.get("id").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setId(row.getStringColumn("id"));
 | 
					                            tableState.setId(row.getStringColumn("id"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
@@ -1926,76 +1945,76 @@ public class OvsdbDao {
 | 
				
			|||||||
                        if (map.get("version_matrix") != null) {
 | 
					                        if (map.get("version_matrix") != null) {
 | 
				
			||||||
                            tableState.setVersionMatrix(row.getMapColumn("version_matrix"));
 | 
					                            tableState.setVersionMatrix(row.getMapColumn("version_matrix"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("firmware_version") != null && map.get("firmware_version").getClass()
 | 
					                        if ((map.get("firmware_version") != null) && map.get("firmware_version").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setFirmwareVersion(row.getStringColumn("firmware_version"));
 | 
					                            tableState.setFirmwareVersion(row.getStringColumn("firmware_version"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("firmware_url") != null && map.get("firmware_url").getClass()
 | 
					                        if ((map.get("firmware_url") != null) && map.get("firmware_url").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setFirmwareUrl(row.getStringColumn("firmware_url"));
 | 
					                            tableState.setFirmwareUrl(row.getStringColumn("firmware_url"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        if (map.get("_uuid") != null && map.get("_uuid").getClass()
 | 
					                        if ((map.get("_uuid") != null) && map.get("_uuid").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setVersion(row.getUuidColumn("_uuid"));
 | 
					                            tableState.setVersion(row.getUuidColumn("_uuid"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("upgrade_dl_timer") != null && map.get("upgrade_dl_timer").getClass()
 | 
					                        if ((map.get("upgrade_dl_timer") != null) && map.get("upgrade_dl_timer").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setUpgradeDlTimer(row.getIntegerColumn("upgrade_dl_timer").intValue());
 | 
					                            tableState.setUpgradeDlTimer(row.getIntegerColumn("upgrade_dl_timer").intValue());
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("platform_version") != null && map.get("platform_version").getClass()
 | 
					                        if ((map.get("platform_version") != null) && map.get("platform_version").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setPlatformVersion(row.getStringColumn("platform_version"));
 | 
					                            tableState.setPlatformVersion(row.getStringColumn("platform_version"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("firmware_pass") != null && map.get("firmware_pass").getClass()
 | 
					                        if ((map.get("firmware_pass") != null) && map.get("firmware_pass").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setFirmwarePass(row.getStringColumn("firmware_pass"));
 | 
					                            tableState.setFirmwarePass(row.getStringColumn("firmware_pass"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("upgrade_timer") != null && map.get("upgrade_timer").getClass()
 | 
					                        if ((map.get("upgrade_timer") != null) && map.get("upgrade_timer").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setUpgradeTimer(row.getIntegerColumn("upgrade_timer").intValue());
 | 
					                            tableState.setUpgradeTimer(row.getIntegerColumn("upgrade_timer").intValue());
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("max_backoff") != null && map.get("max_backoff").getClass()
 | 
					                        if ((map.get("max_backoff") != null) && map.get("max_backoff").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setMaxBackoff(row.getIntegerColumn("max_backoff").intValue());
 | 
					                            tableState.setMaxBackoff(row.getIntegerColumn("max_backoff").intValue());
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("led_config") != null) {
 | 
					                        if (map.get("led_config") != null) {
 | 
				
			||||||
                            tableState.setLedConfig(row.getMapColumn("led_config"));
 | 
					                            tableState.setLedConfig(row.getMapColumn("led_config"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("redirector_addr") != null && map.get("redirector_addr").getClass()
 | 
					                        if ((map.get("redirector_addr") != null) && map.get("redirector_addr").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setRedirectorAddr(row.getStringColumn("redirector_addr"));
 | 
					                            tableState.setRedirectorAddr(row.getStringColumn("redirector_addr"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("serial_number") != null && map.get("serial_number").getClass()
 | 
					                        if ((map.get("serial_number") != null) && map.get("serial_number").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setSerialNumber(row.getStringColumn("serial_number"));
 | 
					                            tableState.setSerialNumber(row.getStringColumn("serial_number"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("_version") != null && map.get("_version").getClass()
 | 
					                        if ((map.get("_version") != null) && map.get("_version").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setVersion(row.getUuidColumn("_version"));
 | 
					                            tableState.setVersion(row.getUuidColumn("_version"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("upgrade_status") != null && map.get("upgrade_status").getClass()
 | 
					                        if ((map.get("upgrade_status") != null) && map.get("upgrade_status").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setUpgradeTimer(row.getIntegerColumn("upgrade_status").intValue());
 | 
					                            tableState.setUpgradeTimer(row.getIntegerColumn("upgrade_status").intValue());
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("device_mode") != null && map.get("device_mode").getClass()
 | 
					                        if ((map.get("device_mode") != null) && map.get("device_mode").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setDeviceMode(row.getStringColumn("device_mode"));
 | 
					                            tableState.setDeviceMode(row.getStringColumn("device_mode"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("min_backoff") != null && map.get("min_backoff").getClass()
 | 
					                        if ((map.get("min_backoff") != null) && map.get("min_backoff").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setMinBackoff(row.getIntegerColumn("min_backoff").intValue());
 | 
					                            tableState.setMinBackoff(row.getIntegerColumn("min_backoff").intValue());
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        if (map.get("revision") != null && map.get("revision").getClass()
 | 
					                        if ((map.get("revision") != null) && map.get("revision").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setRevision(row.getStringColumn("revision"));
 | 
					                            tableState.setRevision(row.getStringColumn("revision"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("manager_addr") != null && map.get("manager_addr").getClass()
 | 
					                        if ((map.get("manager_addr") != null) && map.get("manager_addr").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setManagerAddr(row.getStringColumn("manager_addr"));
 | 
					                            tableState.setManagerAddr(row.getStringColumn("manager_addr"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        if (map.get("factory_reset") != null && map.get("factory_reset").getClass()
 | 
					                        if ((map.get("factory_reset") != null) && map.get("factory_reset").getClass()
 | 
				
			||||||
                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
					                                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
				
			||||||
                            tableState.setFactoryReset(row.getBooleanColumn("factory_reset"));
 | 
					                            tableState.setFactoryReset(row.getBooleanColumn("factory_reset"));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
@@ -2029,7 +2048,7 @@ public class OvsdbDao {
 | 
				
			|||||||
        updateColumns.put("hw_config", hwConfigMap);
 | 
					        updateColumns.put("hw_config", hwConfigMap);
 | 
				
			||||||
        updateColumns.put("bcn_int", new Atom<>(beaconInterval));
 | 
					        updateColumns.put("bcn_int", new Atom<>(beaconInterval));
 | 
				
			||||||
        updateColumns.put("enabled", new Atom<>(enabled));
 | 
					        updateColumns.put("enabled", new Atom<>(enabled));
 | 
				
			||||||
        if (ht_mode != null && !ht_mode.equals("0")) {
 | 
					        if ((ht_mode != null) && !ht_mode.equals("0")) {
 | 
				
			||||||
            updateColumns.put("ht_mode", new Atom<>(ht_mode));
 | 
					            updateColumns.put("ht_mode", new Atom<>(ht_mode));
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
            updateColumns.put("ht_mode", new com.vmware.ovsdb.protocol.operation.notation.Set());
 | 
					            updateColumns.put("ht_mode", new com.vmware.ovsdb.protocol.operation.notation.Set());
 | 
				
			||||||
@@ -2155,14 +2174,14 @@ public class OvsdbDao {
 | 
				
			|||||||
        fResult = ovsdbClient.transact(ovsdbName, operations);
 | 
					        fResult = ovsdbClient.transact(ovsdbName, operations);
 | 
				
			||||||
        result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
 | 
					        result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Set<Uuid> vifConfigsSet = new HashSet<Uuid>();
 | 
					        Set<Uuid> vifConfigsSet = new HashSet<>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (result != null && result.length > 0 && !((SelectResult) result[0]).getRows().isEmpty()) {
 | 
					        if ((result != null) && (result.length > 0) && !((SelectResult) result[0]).getRows().isEmpty()) {
 | 
				
			||||||
            row = ((SelectResult) result[0]).getRows().iterator().next();
 | 
					            row = ((SelectResult) result[0]).getRows().iterator().next();
 | 
				
			||||||
            if (row != null) {
 | 
					            if (row != null) {
 | 
				
			||||||
                vifConfigsSet = row.getSetColumn("vif_configs");
 | 
					                vifConfigsSet = row.getSetColumn("vif_configs");
 | 
				
			||||||
                if (vifConfigsSet == null) {
 | 
					                if (vifConfigsSet == null) {
 | 
				
			||||||
                    vifConfigsSet = new HashSet<Uuid>();
 | 
					                    vifConfigsSet = new HashSet<>();
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@@ -2196,8 +2215,8 @@ public class OvsdbDao {
 | 
				
			|||||||
    public void configureSsids(OvsdbClient ovsdbClient, OpensyncAPConfig opensyncApConfig) {
 | 
					    public void configureSsids(OvsdbClient ovsdbClient, OpensyncAPConfig opensyncApConfig) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        boolean rrmEnabled = false;
 | 
					        boolean rrmEnabled = false;
 | 
				
			||||||
        if (opensyncApConfig.getEquipmentLocation() != null
 | 
					        if ((opensyncApConfig.getEquipmentLocation() != null)
 | 
				
			||||||
                && opensyncApConfig.getEquipmentLocation().getDetails() != null) {
 | 
					                && (opensyncApConfig.getEquipmentLocation().getDetails() != null)) {
 | 
				
			||||||
            rrmEnabled = opensyncApConfig.getEquipmentLocation().getDetails().isRrmEnabled();
 | 
					            rrmEnabled = opensyncApConfig.getEquipmentLocation().getDetails().isRrmEnabled();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -2210,15 +2229,17 @@ public class OvsdbDao {
 | 
				
			|||||||
            ApElementConfiguration apElementConfig = (ApElementConfiguration) opensyncApConfig.getCustomerEquipment()
 | 
					            ApElementConfiguration apElementConfig = (ApElementConfiguration) opensyncApConfig.getCustomerEquipment()
 | 
				
			||||||
                    .getDetails();
 | 
					                    .getDetails();
 | 
				
			||||||
            for (RadioType radioType : ssidConfig.getAppliedRadios()) {
 | 
					            for (RadioType radioType : ssidConfig.getAppliedRadios()) {
 | 
				
			||||||
// Still put profiles on disabled radios for now.
 | 
					                // Still put profiles on disabled radios for now.
 | 
				
			||||||
//                
 | 
					                //
 | 
				
			||||||
//                if (!enabledRadiosFromAp.contains(radioType)) {
 | 
					                // if (!enabledRadiosFromAp.contains(radioType)) {
 | 
				
			||||||
//                    // Not on this AP
 | 
					                // // Not on this AP
 | 
				
			||||||
//                    LOG.debug(
 | 
					                // LOG.debug(
 | 
				
			||||||
//                            "AP {} does not have a radio where frequency band is {}. Cannot provision this radio profile on AP.",
 | 
					                // "AP {} does not have a radio where frequency band is {}.
 | 
				
			||||||
//                            opensyncApConfig.getCustomerEquipment().getInventoryId(), radioType);
 | 
					                // Cannot provision this radio profile on AP.",
 | 
				
			||||||
//                    continue;
 | 
					                // opensyncApConfig.getCustomerEquipment().getInventoryId(),
 | 
				
			||||||
//                }
 | 
					                // radioType);
 | 
				
			||||||
 | 
					                // continue;
 | 
				
			||||||
 | 
					                // }
 | 
				
			||||||
                int keyRefresh = ssidConfig.getKeyRefresh();
 | 
					                int keyRefresh = ssidConfig.getKeyRefresh();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                boolean ssidBroadcast = ssidConfig.getBroadcastSsid() == StateSetting.enabled;
 | 
					                boolean ssidBroadcast = ssidConfig.getBroadcastSsid() == StateSetting.enabled;
 | 
				
			||||||
@@ -2260,7 +2281,7 @@ public class OvsdbDao {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                if (ssidConfig.getRadioBasedConfigs() != null) {
 | 
					                if (ssidConfig.getRadioBasedConfigs() != null) {
 | 
				
			||||||
                    if (ssidConfig.getRadioBasedConfigs().containsKey(radioType)
 | 
					                    if (ssidConfig.getRadioBasedConfigs().containsKey(radioType)
 | 
				
			||||||
                            && ssidConfig.getRadioBasedConfigs().get(radioType) != null) {
 | 
					                            && (ssidConfig.getRadioBasedConfigs().get(radioType) != null)) {
 | 
				
			||||||
                        if (ssidConfig.getRadioBasedConfigs().get(radioType).getEnable80211r() != null) {
 | 
					                        if (ssidConfig.getRadioBasedConfigs().get(radioType).getEnable80211r() != null) {
 | 
				
			||||||
                            enable80211r = ssidConfig.getRadioBasedConfigs().get(radioType).getEnable80211r();
 | 
					                            enable80211r = ssidConfig.getRadioBasedConfigs().get(radioType).getEnable80211r();
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
@@ -2356,8 +2377,12 @@ public class OvsdbDao {
 | 
				
			|||||||
    private void getRadiusConfiguration(OpensyncAPConfig opensyncApConfig, SsidConfiguration ssidConfig,
 | 
					    private void getRadiusConfiguration(OpensyncAPConfig opensyncApConfig, SsidConfiguration ssidConfig,
 | 
				
			||||||
            Map<String, String> security) {
 | 
					            Map<String, String> security) {
 | 
				
			||||||
        List<Profile> radiusServiceList = new ArrayList<>();
 | 
					        List<Profile> radiusServiceList = new ArrayList<>();
 | 
				
			||||||
        radiusServiceList = opensyncApConfig.getRadiusProfiles().stream()
 | 
					        radiusServiceList = opensyncApConfig.getRadiusProfiles().stream().filter(new Predicate<Profile>() {
 | 
				
			||||||
                .filter(p -> p.getName().equals((ssidConfig.getRadiusServiceName()))).collect(Collectors.toList());
 | 
					            @Override
 | 
				
			||||||
 | 
					            public boolean test(Profile p) {
 | 
				
			||||||
 | 
					                return p.getName().equals((ssidConfig.getRadiusServiceName()));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }).collect(Collectors.toList());
 | 
				
			||||||
        if (!radiusServiceList.isEmpty()) {
 | 
					        if (!radiusServiceList.isEmpty()) {
 | 
				
			||||||
            Profile profileRadius = radiusServiceList.get(0);
 | 
					            Profile profileRadius = radiusServiceList.get(0);
 | 
				
			||||||
            String region = opensyncApConfig.getEquipmentLocation().getName();
 | 
					            String region = opensyncApConfig.getEquipmentLocation().getName();
 | 
				
			||||||
@@ -2588,7 +2613,9 @@ public class OvsdbDao {
 | 
				
			|||||||
    private void provisionWifiStatsConfigCapacity(Map<String, WifiRadioConfigInfo> radioConfigs,
 | 
					    private void provisionWifiStatsConfigCapacity(Map<String, WifiRadioConfigInfo> radioConfigs,
 | 
				
			||||||
            Map<String, WifiStatsConfigInfo> provisionedWifiStatsConfigs, List<Operation> operations) {
 | 
					            Map<String, WifiStatsConfigInfo> provisionedWifiStatsConfigs, List<Operation> operations) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        radioConfigs.values().stream().forEach(rc -> {
 | 
					        radioConfigs.values().stream().forEach(new Consumer<WifiRadioConfigInfo>() {
 | 
				
			||||||
 | 
					            @Override
 | 
				
			||||||
 | 
					            public void accept(WifiRadioConfigInfo rc) {
 | 
				
			||||||
                if (!provisionedWifiStatsConfigs.containsKey(rc.freqBand + "_capacity")) {
 | 
					                if (!provisionedWifiStatsConfigs.containsKey(rc.freqBand + "_capacity")) {
 | 
				
			||||||
                    //
 | 
					                    //
 | 
				
			||||||
                    Map<String, Value> rowColumns = new HashMap<>();
 | 
					                    Map<String, Value> rowColumns = new HashMap<>();
 | 
				
			||||||
@@ -2603,6 +2630,7 @@ public class OvsdbDao {
 | 
				
			|||||||
                    operations.add(new Insert(wifiStatsConfigDbTable, updateRow));
 | 
					                    operations.add(new Insert(wifiStatsConfigDbTable, updateRow));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -2610,7 +2638,9 @@ public class OvsdbDao {
 | 
				
			|||||||
    private void provisionWifiStatsConfigBandSteering(Map<String, WifiRadioConfigInfo> radioConfigs,
 | 
					    private void provisionWifiStatsConfigBandSteering(Map<String, WifiRadioConfigInfo> radioConfigs,
 | 
				
			||||||
            Map<String, WifiStatsConfigInfo> provisionedWifiStatsConfigs, List<Operation> operations) {
 | 
					            Map<String, WifiStatsConfigInfo> provisionedWifiStatsConfigs, List<Operation> operations) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        radioConfigs.values().stream().forEach(rc -> {
 | 
					        radioConfigs.values().stream().forEach(new Consumer<WifiRadioConfigInfo>() {
 | 
				
			||||||
 | 
					            @Override
 | 
				
			||||||
 | 
					            public void accept(WifiRadioConfigInfo rc) {
 | 
				
			||||||
                if (!provisionedWifiStatsConfigs.containsKey(rc.freqBand + "_steering")) {
 | 
					                if (!provisionedWifiStatsConfigs.containsKey(rc.freqBand + "_steering")) {
 | 
				
			||||||
                    //
 | 
					                    //
 | 
				
			||||||
                    Map<String, Value> rowColumns = new HashMap<>();
 | 
					                    Map<String, Value> rowColumns = new HashMap<>();
 | 
				
			||||||
@@ -2625,6 +2655,7 @@ public class OvsdbDao {
 | 
				
			|||||||
                    operations.add(new Insert(wifiStatsConfigDbTable, updateRow));
 | 
					                    operations.add(new Insert(wifiStatsConfigDbTable, updateRow));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -2632,7 +2663,9 @@ public class OvsdbDao {
 | 
				
			|||||||
    private void provisionWifiStatsRssi(Map<String, WifiRadioConfigInfo> radioConfigs,
 | 
					    private void provisionWifiStatsRssi(Map<String, WifiRadioConfigInfo> radioConfigs,
 | 
				
			||||||
            Map<String, WifiStatsConfigInfo> provisionedWifiStatsConfigs, List<Operation> operations) {
 | 
					            Map<String, WifiStatsConfigInfo> provisionedWifiStatsConfigs, List<Operation> operations) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        radioConfigs.values().stream().forEach(rc -> {
 | 
					        radioConfigs.values().stream().forEach(new Consumer<WifiRadioConfigInfo>() {
 | 
				
			||||||
 | 
					            @Override
 | 
				
			||||||
 | 
					            public void accept(WifiRadioConfigInfo rc) {
 | 
				
			||||||
                if (!provisionedWifiStatsConfigs.containsKey(rc.freqBand + "_rssi")) {
 | 
					                if (!provisionedWifiStatsConfigs.containsKey(rc.freqBand + "_rssi")) {
 | 
				
			||||||
                    //
 | 
					                    //
 | 
				
			||||||
                    Map<String, Value> rowColumns = new HashMap<>();
 | 
					                    Map<String, Value> rowColumns = new HashMap<>();
 | 
				
			||||||
@@ -2647,74 +2680,42 @@ public class OvsdbDao {
 | 
				
			|||||||
                    operations.add(new Insert(wifiStatsConfigDbTable, updateRow));
 | 
					                    operations.add(new Insert(wifiStatsConfigDbTable, updateRow));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private void provisionWifiStatsConfigNeighbor(Map<String, Set<Integer>> allowedChannels,
 | 
					    private void provisionWifiStatsConfigNeighbor(Map<String, Set<Integer>> allowedChannels,
 | 
				
			||||||
            Map<String, WifiRadioConfigInfo> radioConfigs, Map<String, WifiStatsConfigInfo> provisionedWifiStatsConfigs,
 | 
					            Map<String, WifiRadioConfigInfo> radioConfigs, Map<String, WifiStatsConfigInfo> provisionedWifiStatsConfigs,
 | 
				
			||||||
            List<Operation> operations) {
 | 
					            List<Operation> operations) {
 | 
				
			||||||
        Map<String, Value> updateColumns;
 | 
					 | 
				
			||||||
        Row row;
 | 
					 | 
				
			||||||
        com.vmware.ovsdb.protocol.operation.notation.Set channels2g = com.vmware.ovsdb.protocol.operation.notation.Set
 | 
					 | 
				
			||||||
                .of(allowedChannels.get("2.4G"));
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        com.vmware.ovsdb.protocol.operation.notation.Set channels5gl = com.vmware.ovsdb.protocol.operation.notation.Set
 | 
					        radioConfigs.values().stream().forEach(new Consumer<WifiRadioConfigInfo>() {
 | 
				
			||||||
                .of(allowedChannels.get("5GL"));
 | 
					            @Override
 | 
				
			||||||
 | 
					            public void accept(WifiRadioConfigInfo rc) {
 | 
				
			||||||
        com.vmware.ovsdb.protocol.operation.notation.Set channels5gu = com.vmware.ovsdb.protocol.operation.notation.Set
 | 
					                if (!provisionedWifiStatsConfigs.containsKey(rc.freqBand + "_neighbor_off-chan")) {
 | 
				
			||||||
                .of(allowedChannels.get("5GU"));
 | 
					                    //
 | 
				
			||||||
 | 
					                    Map<String, Value> rowColumns = new HashMap<>();
 | 
				
			||||||
        if (channels2g == null) {
 | 
					                    com.vmware.ovsdb.protocol.operation.notation.Set channels = com.vmware.ovsdb.protocol.operation.notation.Set
 | 
				
			||||||
            channels2g = com.vmware.ovsdb.protocol.operation.notation.Set.of(Collections.emptySet());
 | 
					                            .of(allowedChannels.get(rc.freqBand));
 | 
				
			||||||
 | 
					                    if (channels == null) {
 | 
				
			||||||
 | 
					                        channels = com.vmware.ovsdb.protocol.operation.notation.Set.of(Collections.emptySet());
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
 | 
					                    rowColumns.put("channel_list", channels);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (channels5gl == null) {
 | 
					                    rowColumns.put("radio_type", new Atom<>(rc.freqBand));
 | 
				
			||||||
            channels5gl = com.vmware.ovsdb.protocol.operation.notation.Set.of(Collections.emptySet());
 | 
					                    rowColumns.put("reporting_interval", new Atom<>(60));
 | 
				
			||||||
        }
 | 
					                    rowColumns.put("stats_type", new Atom<>("neighbor"));
 | 
				
			||||||
 | 
					                    rowColumns.put("survey_type", new Atom<>("off-chan"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (channels5gu == null) {
 | 
					                    Row updateRow = new Row(rowColumns);
 | 
				
			||||||
            channels5gu = com.vmware.ovsdb.protocol.operation.notation.Set.of(Collections.emptySet());
 | 
					                    operations.add(new Insert(wifiStatsConfigDbTable, updateRow));
 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (!provisionedWifiStatsConfigs.containsKey("2.4G_neighbor_off-chan")) {
 | 
					 | 
				
			||||||
            updateColumns = new HashMap<>();
 | 
					 | 
				
			||||||
            updateColumns.put("channel_list", channels2g);
 | 
					 | 
				
			||||||
            updateColumns.put("radio_type", new Atom<>("2.4G"));
 | 
					 | 
				
			||||||
            updateColumns.put("reporting_interval", new Atom<>(120));
 | 
					 | 
				
			||||||
            updateColumns.put("stats_type", new Atom<>("neighbor"));
 | 
					 | 
				
			||||||
            updateColumns.put("survey_type", new Atom<>("off-chan"));
 | 
					 | 
				
			||||||
            row = new Row(updateColumns);
 | 
					 | 
				
			||||||
            operations.add(new Insert(wifiStatsConfigDbTable, row));
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (!provisionedWifiStatsConfigs.containsKey("5GL_neighbor_off-chan")) {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            updateColumns = new HashMap<>();
 | 
					 | 
				
			||||||
            updateColumns.put("channel_list", channels5gl);
 | 
					 | 
				
			||||||
            updateColumns.put("radio_type", new Atom<>("5GL"));
 | 
					 | 
				
			||||||
            updateColumns.put("reporting_interval", new Atom<>(120));
 | 
					 | 
				
			||||||
            updateColumns.put("stats_type", new Atom<>("neighbor"));
 | 
					 | 
				
			||||||
            updateColumns.put("survey_type", new Atom<>("off-chan"));
 | 
					 | 
				
			||||||
            row = new Row(updateColumns);
 | 
					 | 
				
			||||||
            operations.add(new Insert(wifiStatsConfigDbTable, row));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (!provisionedWifiStatsConfigs.containsKey("5GU_neighbor_off-chan")) {
 | 
					        radioConfigs.values().stream().forEach(new Consumer<WifiRadioConfigInfo>() {
 | 
				
			||||||
 | 
					            @Override
 | 
				
			||||||
            updateColumns = new HashMap<>();
 | 
					            public void accept(WifiRadioConfigInfo rc) {
 | 
				
			||||||
            updateColumns.put("channel_list", channels5gu);
 | 
					 | 
				
			||||||
            updateColumns.put("radio_type", new Atom<>("5GU"));
 | 
					 | 
				
			||||||
            updateColumns.put("reporting_interval", new Atom<>(120));
 | 
					 | 
				
			||||||
            updateColumns.put("stats_type", new Atom<>("neighbor"));
 | 
					 | 
				
			||||||
            updateColumns.put("survey_type", new Atom<>("off-chan"));
 | 
					 | 
				
			||||||
            row = new Row(updateColumns);
 | 
					 | 
				
			||||||
            operations.add(new Insert(wifiStatsConfigDbTable, row));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        radioConfigs.values().stream().forEach(rc -> {
 | 
					 | 
				
			||||||
                if (!provisionedWifiStatsConfigs.containsKey(rc.freqBand + "_neighbor_on-chan")) {
 | 
					                if (!provisionedWifiStatsConfigs.containsKey(rc.freqBand + "_neighbor_on-chan")) {
 | 
				
			||||||
                    //
 | 
					                    //
 | 
				
			||||||
                    Map<String, Value> rowColumns = new HashMap<>();
 | 
					                    Map<String, Value> rowColumns = new HashMap<>();
 | 
				
			||||||
@@ -2727,6 +2728,7 @@ public class OvsdbDao {
 | 
				
			|||||||
                    operations.add(new Insert(wifiStatsConfigDbTable, updateRow));
 | 
					                    operations.add(new Insert(wifiStatsConfigDbTable, updateRow));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -2735,31 +2737,9 @@ public class OvsdbDao {
 | 
				
			|||||||
            Map<String, WifiRadioConfigInfo> radioConfigs, Map<String, WifiStatsConfigInfo> provisionedWifiStatsConfigs,
 | 
					            Map<String, WifiRadioConfigInfo> radioConfigs, Map<String, WifiStatsConfigInfo> provisionedWifiStatsConfigs,
 | 
				
			||||||
            List<Operation> operations, com.vmware.ovsdb.protocol.operation.notation.Map<String, Integer> thresholds) {
 | 
					            List<Operation> operations, com.vmware.ovsdb.protocol.operation.notation.Map<String, Integer> thresholds) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        com.vmware.ovsdb.protocol.operation.notation.Set channels2g = com.vmware.ovsdb.protocol.operation.notation.Set
 | 
					        radioConfigs.values().stream().forEach(new Consumer<WifiRadioConfigInfo>() {
 | 
				
			||||||
                .of(allowedChannels.get("2.4G"));
 | 
					            @Override
 | 
				
			||||||
 | 
					            public void accept(WifiRadioConfigInfo rc) {
 | 
				
			||||||
        com.vmware.ovsdb.protocol.operation.notation.Set channels5gl = com.vmware.ovsdb.protocol.operation.notation.Set
 | 
					 | 
				
			||||||
                .of(allowedChannels.get("5GL"));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        com.vmware.ovsdb.protocol.operation.notation.Set channels5gu = com.vmware.ovsdb.protocol.operation.notation.Set
 | 
					 | 
				
			||||||
                .of(allowedChannels.get("5GU"));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (channels2g == null) {
 | 
					 | 
				
			||||||
            channels2g = com.vmware.ovsdb.protocol.operation.notation.Set.of(Collections.emptySet());
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (channels5gl == null) {
 | 
					 | 
				
			||||||
            channels5gl = com.vmware.ovsdb.protocol.operation.notation.Set.of(Collections.emptySet());
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (channels5gu == null) {
 | 
					 | 
				
			||||||
            channels5gu = com.vmware.ovsdb.protocol.operation.notation.Set.of(Collections.emptySet());
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        Map<String, Value> updateColumns;
 | 
					 | 
				
			||||||
        Row row;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        radioConfigs.values().stream().forEach(rc -> {
 | 
					 | 
				
			||||||
                if (!provisionedWifiStatsConfigs.containsKey(rc.freqBand + "_survey_on-chan")) {
 | 
					                if (!provisionedWifiStatsConfigs.containsKey(rc.freqBand + "_survey_on-chan")) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    Map<String, Value> rowColumns = new HashMap<>();
 | 
					                    Map<String, Value> rowColumns = new HashMap<>();
 | 
				
			||||||
@@ -2775,65 +2755,45 @@ public class OvsdbDao {
 | 
				
			|||||||
                    operations.add(new Insert(wifiStatsConfigDbTable, updateRow));
 | 
					                    operations.add(new Insert(wifiStatsConfigDbTable, updateRow));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (!provisionedWifiStatsConfigs.containsKey("2.4G_survey_off-chan")) {
 | 
					        radioConfigs.values().stream().forEach(new Consumer<WifiRadioConfigInfo>() {
 | 
				
			||||||
 | 
					            @Override
 | 
				
			||||||
 | 
					            public void accept(WifiRadioConfigInfo rc) {
 | 
				
			||||||
 | 
					                if (!provisionedWifiStatsConfigs.containsKey(rc.freqBand + "_survey_off-chan")) {
 | 
				
			||||||
 | 
					                    //
 | 
				
			||||||
 | 
					                    Map<String, Value> rowColumns = new HashMap<>();
 | 
				
			||||||
 | 
					                    com.vmware.ovsdb.protocol.operation.notation.Set channels = com.vmware.ovsdb.protocol.operation.notation.Set
 | 
				
			||||||
 | 
					                            .of(allowedChannels.get(rc.freqBand));
 | 
				
			||||||
 | 
					                    if (channels == null) {
 | 
				
			||||||
 | 
					                        channels = com.vmware.ovsdb.protocol.operation.notation.Set.of(Collections.emptySet());
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    rowColumns.put("channel_list", channels);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            updateColumns = new HashMap<>();
 | 
					                    rowColumns.put("radio_type", new Atom<>(rc.freqBand));
 | 
				
			||||||
            updateColumns.put("channel_list", channels2g);
 | 
					                    rowColumns.put("reporting_interval", new Atom<>(60));
 | 
				
			||||||
            updateColumns.put("radio_type", new Atom<>("2.4G"));
 | 
					                    rowColumns.put("stats_type", new Atom<>("survey"));
 | 
				
			||||||
            updateColumns.put("reporting_interval", new Atom<>(600));
 | 
					                    rowColumns.put("survey_type", new Atom<>("off-chan"));
 | 
				
			||||||
            updateColumns.put("report_type", new Atom<>("raw"));
 | 
					                    rowColumns.put("report_type", new Atom<>("raw"));
 | 
				
			||||||
            updateColumns.put("sampling_interval", new Atom<>(60));
 | 
					                    rowColumns.put("sampling_interval", new Atom<>(60));
 | 
				
			||||||
            updateColumns.put("stats_type", new Atom<>("survey"));
 | 
					                    rowColumns.put("survey_interval_ms", new Atom<>(65));
 | 
				
			||||||
            updateColumns.put("survey_interval_ms", new Atom<>(65));
 | 
					                    rowColumns.put("threshold", thresholds);
 | 
				
			||||||
            updateColumns.put("survey_type", new Atom<>("off-chan"));
 | 
					                    Row updateRow = new Row(rowColumns);
 | 
				
			||||||
            updateColumns.put("threshold", thresholds);
 | 
					                    operations.add(new Insert(wifiStatsConfigDbTable, updateRow));
 | 
				
			||||||
            row = new Row(updateColumns);
 | 
					 | 
				
			||||||
            operations.add(new Insert(wifiStatsConfigDbTable, row));
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (!provisionedWifiStatsConfigs.containsKey("5GL_survey_off-chan")) {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            updateColumns = new HashMap<>();
 | 
					 | 
				
			||||||
            updateColumns.put("channel_list", channels5gl);
 | 
					 | 
				
			||||||
            updateColumns.put("radio_type", new Atom<>("5GL"));
 | 
					 | 
				
			||||||
            updateColumns.put("reporting_interval", new Atom<>(600));
 | 
					 | 
				
			||||||
            updateColumns.put("report_type", new Atom<>("raw"));
 | 
					 | 
				
			||||||
            updateColumns.put("sampling_interval", new Atom<>(45));
 | 
					 | 
				
			||||||
            updateColumns.put("stats_type", new Atom<>("survey"));
 | 
					 | 
				
			||||||
            updateColumns.put("survey_interval_ms", new Atom<>(65));
 | 
					 | 
				
			||||||
            updateColumns.put("survey_type", new Atom<>("off-chan"));
 | 
					 | 
				
			||||||
            updateColumns.put("threshold", thresholds);
 | 
					 | 
				
			||||||
            row = new Row(updateColumns);
 | 
					 | 
				
			||||||
            operations.add(new Insert(wifiStatsConfigDbTable, row));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (!provisionedWifiStatsConfigs.containsKey("5GU_survey_off-chan")) {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            updateColumns = new HashMap<>();
 | 
					 | 
				
			||||||
            updateColumns.put("channel_list", channels5gu);
 | 
					 | 
				
			||||||
            updateColumns.put("radio_type", new Atom<>("5GU"));
 | 
					 | 
				
			||||||
            updateColumns.put("reporting_interval", new Atom<>(600));
 | 
					 | 
				
			||||||
            updateColumns.put("report_type", new Atom<>("raw"));
 | 
					 | 
				
			||||||
            updateColumns.put("sampling_interval", new Atom<>(30));
 | 
					 | 
				
			||||||
            updateColumns.put("stats_type", new Atom<>("survey"));
 | 
					 | 
				
			||||||
            updateColumns.put("survey_interval_ms", new Atom<>(65));
 | 
					 | 
				
			||||||
            updateColumns.put("survey_type", new Atom<>("off-chan"));
 | 
					 | 
				
			||||||
            updateColumns.put("threshold", thresholds);
 | 
					 | 
				
			||||||
            row = new Row(updateColumns);
 | 
					 | 
				
			||||||
            operations.add(new Insert(wifiStatsConfigDbTable, row));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private void provisionWifiStatsConfigClient(Map<String, WifiRadioConfigInfo> radioConfigs,
 | 
					    private void provisionWifiStatsConfigClient(Map<String, WifiRadioConfigInfo> radioConfigs,
 | 
				
			||||||
            Map<String, WifiStatsConfigInfo> provisionedWifiStatsConfigs, List<Operation> operations) {
 | 
					            Map<String, WifiStatsConfigInfo> provisionedWifiStatsConfigs, List<Operation> operations) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        radioConfigs.values().stream().forEach(rc -> {
 | 
					        radioConfigs.values().stream().forEach(new Consumer<WifiRadioConfigInfo>() {
 | 
				
			||||||
 | 
					            @Override
 | 
				
			||||||
 | 
					            public void accept(WifiRadioConfigInfo rc) {
 | 
				
			||||||
                if (!provisionedWifiStatsConfigs.containsKey(rc.freqBand + "_client")) {
 | 
					                if (!provisionedWifiStatsConfigs.containsKey(rc.freqBand + "_client")) {
 | 
				
			||||||
                    //
 | 
					                    //
 | 
				
			||||||
                    Map<String, Value> rowColumns = new HashMap<>();
 | 
					                    Map<String, Value> rowColumns = new HashMap<>();
 | 
				
			||||||
@@ -2843,12 +2803,11 @@ public class OvsdbDao {
 | 
				
			|||||||
                    rowColumns.put("sampling_interval", new Atom<>(10));
 | 
					                    rowColumns.put("sampling_interval", new Atom<>(10));
 | 
				
			||||||
                    rowColumns.put("stats_type", new Atom<>("client"));
 | 
					                    rowColumns.put("stats_type", new Atom<>("client"));
 | 
				
			||||||
                    rowColumns.put("survey_interval_ms", new Atom<>(65));
 | 
					                    rowColumns.put("survey_interval_ms", new Atom<>(65));
 | 
				
			||||||
                // rowColumns.put("survey_type", new Atom<>("on-chan"));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    Row updateRow = new Row(rowColumns);
 | 
					                    Row updateRow = new Row(rowColumns);
 | 
				
			||||||
                    operations.add(new Insert(wifiStatsConfigDbTable, updateRow));
 | 
					                    operations.add(new Insert(wifiStatsConfigDbTable, updateRow));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -2916,6 +2875,7 @@ public class OvsdbDao {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    public void removeAllStatsConfigs(OvsdbClient ovsdbClient) {
 | 
					    public void removeAllStatsConfigs(OvsdbClient ovsdbClient) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        LOG.info("Remove existing Wifi_Stats_Config table entries");
 | 
				
			||||||
        try {
 | 
					        try {
 | 
				
			||||||
            List<Operation> operations = new ArrayList<>();
 | 
					            List<Operation> operations = new ArrayList<>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user