summaryrefslogtreecommitdiff
path: root/controller/EmbeddedNetworkController.cpp
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2018-07-11 10:42:31 -0700
committerAdam Ierymenko <adam.ierymenko@gmail.com>2018-07-11 10:42:31 -0700
commitf94aea8119bdf5b894c4d9a29e678c3c3594b490 (patch)
tree6605b2919773316cbe9512c169ed7f4882af8497 /controller/EmbeddedNetworkController.cpp
parent37ae3b2b80e95758e028e476c9bcb485583f8208 (diff)
downloadinfinitytier-f94aea8119bdf5b894c4d9a29e678c3c3594b490.tar.gz
infinitytier-f94aea8119bdf5b894c4d9a29e678c3c3594b490.zip
Return error 503 if RethinkDB is down when built as RethinkDB-based controller.
Diffstat (limited to 'controller/EmbeddedNetworkController.cpp')
-rw-r--r--controller/EmbeddedNetworkController.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/controller/EmbeddedNetworkController.cpp b/controller/EmbeddedNetworkController.cpp
index ef52f6e0..6a4134c6 100644
--- a/controller/EmbeddedNetworkController.cpp
+++ b/controller/EmbeddedNetworkController.cpp
@@ -596,10 +596,11 @@ unsigned int EmbeddedNetworkController::handleControlPlaneHttpGET(
// Controller status
char tmp[4096];
- OSUtils::ztsnprintf(tmp,sizeof(tmp),"{\n\t\"controller\": true,\n\t\"apiVersion\": %d,\n\t\"clock\": %llu\n}\n",ZT_NETCONF_CONTROLLER_API_VERSION,(unsigned long long)OSUtils::now());
+ 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");
responseBody = tmp;
responseContentType = "application/json";
- return 200;
+ return dbOk ? 200 : 503;
}