diff --git a/js/server/modules/org/arangodb/sharding/agency-communication.js b/js/server/modules/org/arangodb/sharding/agency-communication.js index 0640f47fd4..0a81604b8a 100644 --- a/js/server/modules/org/arangodb/sharding/agency-communication.js +++ b/js/server/modules/org/arangodb/sharding/agency-communication.js @@ -50,7 +50,11 @@ exports.Communication = function() { mapCollectionIDsToNames = function(list) { var res = {}; _.each(list, function(v, k) { - res[JSON.parse(v).name] = splitServerName(k); + var n = splitServerName(k); + if (n === "Lock" || n === "Version") { + return; + } + res[JSON.parse(v).name] = n; }); return res; }; @@ -231,7 +235,8 @@ exports.Communication = function() { var ColObject = function(route, writeAccess) { this.info = function() { - return JSON.parse(route.get()); + var res = route.get(); + return JSON.parse(_.values(res)[0]); }; this.getShards = function() { var info = this.info(); @@ -447,6 +452,7 @@ exports.Communication = function() { var Sync = function() { var Heartbeats; var interval = agency.sync.interval.get(); + interval = _.values(interval)[0]; var didBeatInTime = function(time) { @@ -467,14 +473,17 @@ exports.Communication = function() { var HeartbeatsObject = function() { this.list = function() { - return agency.sync.beat.get(true); + var res = agency.sync.beat.get(true); + _.each(res, function(v, k) { + res[k] = JSON.parse(v); + }); + return res; }; this.getInactive = function() { var list = this.list(); var res = []; _.each(list, function(v, k) { if (isInactive(v.status)) { - require("internal").print(k, isInSync(v.status), isOutSync(v.status)); res.push(k); } }); diff --git a/js/server/tests/sharding-agency-communication.js b/js/server/tests/sharding-agency-communication.js index 6489beb440..9332d19395 100644 --- a/js/server/tests/sharding-agency-communication.js +++ b/js/server/tests/sharding-agency-communication.js @@ -115,30 +115,30 @@ "cindy": "tcp://192.168.1.3:8529" }; var heartbeats = { - "pavel": { + "pavel": JSON.stringify({ status: "SERVINGSYNC", time: (new Date()).toISOString() - }, - "paul": { + }), + "paul": JSON.stringify({ status: "SERVINGSYNC", time: (new Date()).toISOString() - }, - "patricia": { + }), + "patricia": JSON.stringify({ status: "SERVINGASYNC", time: (new Date()).toISOString() - }, - "sandro": { + }), + "sandro": JSON.stringify({ status: "INSYNC", time: (new Date()).toISOString() - }, - "sandra": { + }), + "sandra": JSON.stringify({ status: "SYNCING", time: (new Date()).toISOString() - }, - "sally": { + }), + "sally": JSON.stringify({ status: "INSYNC", time: (new Date()).toISOString() - } + }) }; dummy = {}; dummy.target = {}; @@ -198,7 +198,9 @@ } } else { if (parts[2] === "_system" && parts[3] === "87123") { - return base.vInfo; + var internalResult = {}; + internalResult[route] = base.vInfo; + return internalResult; } } } @@ -230,7 +232,9 @@ return dummy.sync.heartbeats; } if (parts[1] === agencyRoutes.sub.interval) { - return dummy.sync.interval; + res = {}; + res[route] = JSON.stringify(dummy.sync.interval); + return res; } break; default: