From 78f41693392b60281eb2aac224c88bf55695a579 Mon Sep 17 00:00:00 2001 From: ralphlee3 <70043694+ralphlee3@users.noreply.github.com> Date: Thu, 31 Mar 2022 13:04:40 -0400 Subject: [PATCH] [WIFI-7514] Adding init for DHCP lease ip table when ap connects (#77) * [WIFI-7514] Adding init for DHCP lease ip table when ap connects * [WIFI-7514] Fix enum handling for DHCP Lease IP table --- .../opensync/ovsdb/TipWlanOvsdbClient.java | 10 +++---- .../wlan/opensync/ovsdb/dao/OvsdbDao.java | 5 ++++ .../wlan/opensync/ovsdb/dao/OvsdbMonitor.java | 27 +++++++++++++++++++ 3 files changed, 36 insertions(+), 6 deletions(-) diff --git a/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/TipWlanOvsdbClient.java b/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/TipWlanOvsdbClient.java index 43f4129..06e1a2f 100644 --- a/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/TipWlanOvsdbClient.java +++ b/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/TipWlanOvsdbClient.java @@ -514,12 +514,12 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface { for (RowUpdate rowUpdate : tableUpdate.getRowUpdates().values()) { if (rowUpdate.getNew() == null) { + // delete Map rowMap = new HashMap<>(); rowUpdate.getOld().getColumns().entrySet().forEach(c -> OvsdbDao.translateDhcpFpValueToString(c, rowMap)); delete.add(rowMap); - // delete } else if (rowUpdate.getOld() == null) { // insert Map rowMap = new HashMap<>(); @@ -528,15 +528,13 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface { insert.add(rowMap); } else { - - // insert + // update Map rowMap = new HashMap<>(); rowUpdate.getOld().getColumns().putAll(rowUpdate.getNew().getColumns()); rowUpdate.getOld().getColumns().entrySet().forEach(c -> OvsdbDao.translateDhcpFpValueToString(c, rowMap)); update.add(rowMap); - } } } @@ -560,7 +558,7 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface { }); - awCf.join(); + extIntegrationInterface.dhcpLeasedIpDbTableUpdate(ovsdbDao.getInitialOpensyncDhcpLeasedIp(awCf.join(), key, ovsdbClient), key, RowUpdateOperation.INIT); } @@ -680,7 +678,7 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface { } }); - + extIntegrationInterface.wifiAssociatedClientsDbTableUpdate(ovsdbDao.getInitialOpensyncWifiAssociatedClients(acCf.join(), key, ovsdbClient), key); } diff --git a/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbDao.java b/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbDao.java index 4da2dd2..e25a6c8 100644 --- a/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbDao.java +++ b/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbDao.java @@ -152,6 +152,11 @@ public class OvsdbDao extends OvsdbDaoBase { OvsdbClient ovsdbClient) { return ovsdbMonitor.getInitialOpensyncWifiAssociatedClients(join, key, ovsdbClient); } + + public List> getInitialOpensyncDhcpLeasedIp(TableUpdates join, String key, + OvsdbClient ovsdbClient) { + return ovsdbMonitor.getInitialOpensyncDhcpLeasedIp(join, key, ovsdbClient); + } public Collection getOpensyncApInetStateForRowUpdate(RowUpdate rowUpdate, String key, OvsdbClient ovsdbClient) { diff --git a/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbMonitor.java b/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbMonitor.java index 7339b45..cea32ad 100644 --- a/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbMonitor.java +++ b/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbMonitor.java @@ -83,6 +83,33 @@ public class OvsdbMonitor extends OvsdbDaoBase { } return ret; } + + List> getInitialOpensyncDhcpLeasedIp(TableUpdates tableUpdates, String apId, + OvsdbClient ovsdbClient) { + LOG.debug("getInitialOpensyncDhcpLeasedIp:"); + List> ret = new ArrayList<>(); + try { + LOG.debug(dhcpLeasedIpDbTable + "_" + apId + " initial monitor table state received {}", + tableUpdates); + + for (TableUpdate tableUpdate : tableUpdates.getTableUpdates().values()) { + for (RowUpdate rowUpdate : tableUpdate.getRowUpdates().values()) { + + if (rowUpdate.getNew() != null) { + + Map rowMap = new HashMap<>(); + + rowUpdate.getNew().getColumns().entrySet().forEach(c -> OvsdbDao.translateDhcpFpValueToString(c, rowMap)); + + ret.add(rowMap); + } + } + } + } catch (Exception e) { + throw (e); + } + return ret; + } List getOpensyncApInetStateForRowUpdate(RowUpdate rowUpdate, String apId, OvsdbClient ovsdbClient) {