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) {