Improve full controller network list api

it was counting incorrectly in some cases and
returning empty objects.
Basically just handling if network data is null
This commit is contained in:
travisladuke 2024-02-22 09:27:59 -08:00
parent 024649c175
commit 559e8a907b

View File

@ -918,6 +918,7 @@ void EmbeddedNetworkController::configureHTTPControlPlane(
auto meta = json::object(); auto meta = json::object();
auto data = json::array(); auto data = json::array();
uint64_t networkCount = 0;
for(std::set<uint64_t>::const_iterator nwid(networkIds.begin()); nwid != networkIds.end(); ++nwid) { for(std::set<uint64_t>::const_iterator nwid(networkIds.begin()); nwid != networkIds.end(); ++nwid) {
json network; json network;
@ -927,8 +928,10 @@ void EmbeddedNetworkController::configureHTTPControlPlane(
std::vector<json> memTmp; std::vector<json> memTmp;
if (_db.get(*nwid, network, memTmp)) { if (_db.get(*nwid, network, memTmp)) {
if (!network.is_null()) {
uint64_t authorizedCount = 0; uint64_t authorizedCount = 0;
uint64_t totalCount = memTmp.size(); uint64_t totalCount = memTmp.size();
networkCount++;
for (auto m = memTmp.begin(); m != memTmp.end(); ++m) { for (auto m = memTmp.begin(); m != memTmp.end(); ++m) {
bool a = OSUtils::jsonBool((*m)["authorized"], 0); bool a = OSUtils::jsonBool((*m)["authorized"], 0);
@ -939,11 +942,12 @@ void EmbeddedNetworkController::configureHTTPControlPlane(
nwMeta["totalMemberCount"] = totalCount; nwMeta["totalMemberCount"] = totalCount;
nwMeta["authorizedMemberCount"] = authorizedCount; nwMeta["authorizedMemberCount"] = authorizedCount;
network["meta"] = nwMeta; network["meta"] = nwMeta;
}
data.push_back(network); data.push_back(network);
} }
meta["networkCount"] = networkIds.size(); }
}
meta["networkCount"] = networkCount;
auto out = json::object(); auto out = json::object();
out["data"] = data; out["data"] = data;