Skip to content

Commit

Permalink
Add name field to embedded controller networks
Browse files Browse the repository at this point in the history
  • Loading branch information
laduke committed Jan 29, 2024
1 parent c6d5dc1 commit d7db5eb
Showing 1 changed file with 34 additions and 0 deletions.
34 changes: 34 additions & 0 deletions controller/EmbeddedNetworkController.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -872,6 +872,7 @@ void EmbeddedNetworkController::configureHTTPControlPlane(
std::string networkPath = "/controller/network/([0-9a-fA-F]{16})";
std::string oldAndBustedNetworkCreatePath = "/controller/network/([0-9a-fA-F]{10})______";
std::string memberListPath = "/controller/network/([0-9a-fA-F]{16})/member";
std::string memberListPath2 = "/controller/network/([0-9a-fA-F]{16})/member2";
std::string memberPath = "/controller/network/([0-9a-fA-F]{16})/member/([0-9a-fA-F]{10})";

auto controllerGet = [&, setContent](const httplib::Request &req, httplib::Response &res) {
Expand Down Expand Up @@ -1035,6 +1036,38 @@ void EmbeddedNetworkController::configureHTTPControlPlane(
s.Get(memberListPath, memberListGet);
sv6.Get(memberListPath, memberListGet);

auto memberListGet2 = [&, setContent](const httplib::Request &req, httplib::Response &res) {
auto networkID = req.matches[1];
uint64_t nwid = Utils::hexStrToU64(networkID.str().c_str());
json network;
if (!_db.get(nwid, network)) {
res.status = 404;
return;
}

json out = json::object();
auto out2 = nlohmann::json::array();
std::vector<json> memTmp;
if (_db.get(nwid, network, memTmp)) {
for (auto m = memTmp.begin(); m != memTmp.end(); ++m) {
std::string id = OSUtils::jsonString((*m)["id"], "");
std::string name = OSUtils::jsonString((*m)["name"], "");
bool authorized = OSUtils::jsonBool((*m)["authorized"], false);

if (id.length() == 10) {
out["id"] = id;
out["authorized"] = authorized;
out["name"] = name;
out2.push_back(out);
}
}
}

setContent(req, res, out2.dump());
};
s.Get(memberListPath2, memberListGet2);
sv6.Get(memberListPath2, memberListGet2);

auto memberGet = [&, setContent](const httplib::Request &req, httplib::Response &res) {
auto networkID = req.matches[1];
auto memberID = req.matches[2];
Expand Down Expand Up @@ -1068,6 +1101,7 @@ void EmbeddedNetworkController::configureHTTPControlPlane(
if (b.count("noAutoAssignIps")) member["noAutoAssignIps"] = OSUtils::jsonBool(b["noAutoAssignIps"], false);
if (b.count("authenticationExpiryTime")) member["authenticationExpiryTime"] = (uint64_t)OSUtils::jsonInt(b["authenticationExpiryTime"], 0ULL);
if (b.count("authenticationURL")) member["authenticationURL"] = OSUtils::jsonString(b["authenticationURL"], "");
if (b.count("name")) member["name"] = OSUtils::jsonString(b["name"], "");

if (b.count("remoteTraceTarget")) {
const std::string rtt(OSUtils::jsonString(b["remoteTraceTarget"],""));
Expand Down

0 comments on commit d7db5eb

Please sign in to comment.