From 559e8a907b5c4b3db36bb9f1c89efaf9cbbc172a Mon Sep 17 00:00:00 2001 From: travisladuke Date: Thu, 22 Feb 2024 09:27:59 -0800 Subject: [PATCH] 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 --- controller/EmbeddedNetworkController.cpp | 30 ++++++++++++++---------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/controller/EmbeddedNetworkController.cpp b/controller/EmbeddedNetworkController.cpp index a83894644..ed69a665b 100644 --- a/controller/EmbeddedNetworkController.cpp +++ b/controller/EmbeddedNetworkController.cpp @@ -918,6 +918,7 @@ void EmbeddedNetworkController::configureHTTPControlPlane( auto meta = json::object(); auto data = json::array(); + uint64_t networkCount = 0; for(std::set::const_iterator nwid(networkIds.begin()); nwid != networkIds.end(); ++nwid) { json network; @@ -927,23 +928,26 @@ void EmbeddedNetworkController::configureHTTPControlPlane( std::vector memTmp; if (_db.get(*nwid, network, memTmp)) { - uint64_t authorizedCount = 0; - uint64_t totalCount = memTmp.size(); + if (!network.is_null()) { + uint64_t authorizedCount = 0; + uint64_t totalCount = memTmp.size(); + networkCount++; - for (auto m = memTmp.begin(); m != memTmp.end(); ++m) { - bool a = OSUtils::jsonBool((*m)["authorized"], 0); - if (a) { authorizedCount++; } + for (auto m = memTmp.begin(); m != memTmp.end(); ++m) { + bool a = OSUtils::jsonBool((*m)["authorized"], 0); + if (a) { authorizedCount++; } + } + + auto nwMeta = json::object(); + nwMeta["totalMemberCount"] = totalCount; + nwMeta["authorizedMemberCount"] = authorizedCount; + network["meta"] = nwMeta; + + data.push_back(network); } - - auto nwMeta = json::object(); - nwMeta["totalMemberCount"] = totalCount; - nwMeta["authorizedMemberCount"] = authorizedCount; - network["meta"] = nwMeta; } - - data.push_back(network); } - meta["networkCount"] = networkIds.size(); + meta["networkCount"] = networkCount; auto out = json::object(); out["data"] = data;