Opensync AP State Tables row parsing

This commit is contained in:
Mike Hansen
2020-04-23 21:35:53 -04:00
parent 3c9b85a79f
commit e477205328
2 changed files with 24 additions and 14 deletions

View File

@@ -3,7 +3,9 @@ package com.telecominfraproject.wlan.opensync.ovsdb;
import java.security.cert.X509Certificate; import java.security.cert.X509Certificate;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map.Entry;
import java.util.Set; import java.util.Set;
import java.util.UUID;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
@@ -282,33 +284,39 @@ public class ConnectusOvsdbClient implements ConnectusOvsdbClientInterface {
CompletableFuture<TableUpdates> vsCf = ovsdbClient CompletableFuture<TableUpdates> vsCf = ovsdbClient
.monitor(OvsdbDao.ovsdbName, OvsdbDao.wifiVifStateDbTable + "_" + key, .monitor(OvsdbDao.ovsdbName, OvsdbDao.wifiVifStateDbTable + "_" + key,
new MonitorRequests(ImmutableMap.of(OvsdbDao.wifiVifStateDbTable, new MonitorRequests(ImmutableMap.of(OvsdbDao.wifiVifStateDbTable,
new MonitorRequest(new MonitorSelect(true, true, false, true)))), new MonitorRequest(new MonitorSelect(true, true, true, true)))),
new MonitorCallback() { new MonitorCallback() {
@Override @Override
public void update(TableUpdates tableUpdates) { public void update(TableUpdates tableUpdates) {
// extIntegrationInterface.wifiVIFStateDbTableUpdate(
// ovsdbDao.getOpensyncAPVIFState(tableUpdates,
// key, ovsdbClient), key);
List<OpensyncAPVIFState> vifsToDelete = new ArrayList<OpensyncAPVIFState>(); List<OpensyncAPVIFState> vifsToDelete = new ArrayList<OpensyncAPVIFState>();
for (TableUpdate tableUpdate : tableUpdates.getTableUpdates().values()) { for (Entry<String, TableUpdate> tableUpdate : tableUpdates.getTableUpdates()
.entrySet()) {
for (RowUpdate rowUpdate : tableUpdate.getRowUpdates().values()) { for (Entry<UUID, RowUpdate> rowUpdate : tableUpdate.getValue().getRowUpdates()
if (rowUpdate.getOld() != null && rowUpdate.getNew() == null) { .entrySet()) {
Row row = rowUpdate.getOld(); if (rowUpdate.getValue().getOld() != null
&& rowUpdate.getValue().getNew() == null) {
Row row = rowUpdate.getValue().getOld();
String ifName = row.getStringColumn("if_name"); String ifName = row.getStringColumn("if_name");
String ssid = row.getStringColumn("ssid"); String ssid = row.getStringColumn("ssid");
OpensyncAPVIFState toBeDeleted = new OpensyncAPVIFState(); OpensyncAPVIFState toBeDeleted = new OpensyncAPVIFState();
toBeDeleted.setSsid(ssid); toBeDeleted.setSsid(ssid);
toBeDeleted.setIfName(ifName); toBeDeleted.setIfName(ifName);
vifsToDelete.add(toBeDeleted); vifsToDelete.add(toBeDeleted);
tableUpdate.getValue().getRowUpdates().entrySet().remove(rowUpdate);
} }
} }
} }
if (vifsToDelete.isEmpty()) { if (!vifsToDelete.isEmpty()) {
extIntegrationInterface.wifiVIFStateDbTableUpdate(
ovsdbDao.getOpensyncAPVIFState(tableUpdates, key, ovsdbClient), key);
} else {
extIntegrationInterface.wifiVIFStateDbTableDelete(vifsToDelete, key); extIntegrationInterface.wifiVIFStateDbTableDelete(vifsToDelete, key);
} }
extIntegrationInterface.wifiVIFStateDbTableUpdate(
ovsdbDao.getOpensyncAPVIFState(tableUpdates, key, ovsdbClient), key);
} }
}); });

View File

@@ -1360,6 +1360,8 @@ public class OvsdbDao {
tableState.setVersion(row.getUuidColumn("_uuid")); tableState.setVersion(row.getUuidColumn("_uuid"));
} }
ret.add(tableState);
} }
} }