From 49a76d18a88a64f1b6e3bb50db219dc4d853ae9c Mon Sep 17 00:00:00 2001 From: Max Neunhoeffer Date: Wed, 28 May 2014 15:43:11 +0200 Subject: [PATCH] IsHealthy for clusters on client of dispatcher. --- js/client/modules/org/arangodb/cluster.js | 29 +++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/js/client/modules/org/arangodb/cluster.js b/js/client/modules/org/arangodb/cluster.js index aba5e5db6c..0be4e1a5fc 100644 --- a/js/client/modules/org/arangodb/cluster.js +++ b/js/client/modules/org/arangodb/cluster.js @@ -219,11 +219,40 @@ function Shutdown() { } } +function IsHealthy() { + var db = require("internal").db; + var print = require("internal").print; + var col = db._cluster_kickstarter_plans; + print("\nHello, this is the ArangoDB cluster health check function...\n"); + if (col === undefined || col.count() === 0) { + print("I did not find a cluster plan, therefore I give up."); + } + else { + var x = col.any(); + if (! x.hasOwnProperty("runInfo")) { + print("Warning: It seems your cluster is already shutdown. I give up."); + } + else { + var Kickstarter = require("org/arangodb/cluster").Kickstarter; + var k = new Kickstarter(x.plan); + k.runInfo = x.runInfo; + var r = k.isHealthy(); + if (r.error === true) { + print("Error: Health check went wrong."); + return r; + } + print("Health check successful."); + return r; + } + } +} + exports.Planner = Planner; exports.Kickstarter = Kickstarter; exports.Upgrade = Upgrade; exports.Relaunch = Relaunch; exports.Shutdown = Shutdown; +exports.IsHealthy = IsHealthy; // ----------------------------------------------------------------------------- // --SECTION-- END-OF-FILE