summaryrefslogtreecommitdiff
path: root/controller/RethinkDB.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/RethinkDB.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/RethinkDB.cpp')
-rw-r--r--controller/RethinkDB.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/controller/RethinkDB.cpp b/controller/RethinkDB.cpp
index f6c8a59c..a46d033f 100644
--- a/controller/RethinkDB.cpp
+++ b/controller/RethinkDB.cpp
@@ -263,9 +263,13 @@ RethinkDB::RethinkDB(EmbeddedNetworkController *const nc,const Identity &myId,co
std::unique_ptr<R::Connection> rdb;
while (_run == 1) {
try {
- if (!rdb)
+ if (!rdb) {
+ _connected = 0;
rdb = R::connect(this->_host,this->_port,this->_auth);
+ }
+
if (rdb) {
+ _connected = 1;
R::Array batch;
R::Object tmpobj;
@@ -434,6 +438,11 @@ bool RethinkDB::waitForReady()
return true;
}
+bool RethinkDB::isReady()
+{
+ return ((_ready)&&(_connected));
+}
+
void RethinkDB::save(nlohmann::json *orig,nlohmann::json &record)
{
if (!record.is_object()) // sanity check