diff options
| author | Grant Limberg <[email protected]> | 2023-09-06 09:44:25 -0700 |
|---|---|---|
| committer | Grant Limberg <[email protected]> | 2023-09-06 09:44:25 -0700 |
| commit | 8426677c5589abba3e1903013eaf14ac41f10cf4 (patch) | |
| tree | a93347f3d44e855e72457b40e1b23ce45d8785a3 /controller | |
| parent | f8359f554bcc7bd4a81ad6aff7536e8943593f63 (diff) | |
fix /controller endpoint
Diffstat (limited to 'controller')
| -rw-r--r-- | controller/EmbeddedNetworkController.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/controller/EmbeddedNetworkController.cpp b/controller/EmbeddedNetworkController.cpp index 85fbb4dc..a01b68a9 100644 --- a/controller/EmbeddedNetworkController.cpp +++ b/controller/EmbeddedNetworkController.cpp @@ -867,12 +867,33 @@ void EmbeddedNetworkController::configureHTTPControlPlane( const std::function<void(const httplib::Request&, httplib::Response&, std::string)> setContent) { // Control plane Endpoints + std::string controllerPath = "/controller"; std::string networkListPath = "/controller/network"; 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 memberPath = "/controller/network/([0-9a-fA-F]{16})/member/([0-9a-fA-F]{10})"; + auto controllerGet = [&, setContent](const httplib::Request &req, httplib::Response &res) { + char tmp[4096]; + const bool dbOk = _db.isReady(); + OSUtils::ztsnprintf( + tmp, + sizeof(tmp), + "{\n\t\"controller\": true,\n\t\"apiVersion\": %d,\n\t\"clock\": %llu,\n\t\"databaseReady\": %s\n}\n", + ZT_NETCONF_CONTROLLER_API_VERSION, + (unsigned long long)OSUtils::now(), + dbOk ? "true" : "false"); + + if (!dbOk) { + res.status = 503; + } + + setContent(req, res, tmp); + }; + s.Get(controllerPath, controllerGet); + sv6.Get(controllerPath, controllerGet); + auto networkListGet = [&, setContent](const httplib::Request &req, httplib::Response &res) { std::set<uint64_t> networkIds; _db.networks(networkIds); |
