mirror of https://gitee.com/bigwinds/arangodb
Updated high-level js communication library for newest version of agency comm
This commit is contained in:
parent
77003e90c0
commit
c7f86b3def
|
@ -55,7 +55,7 @@ exports.Communication = function() {
|
||||||
if (n === "Lock" || n === "Version") {
|
if (n === "Lock" || n === "Version") {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
res[JSON.parse(v).name] = n;
|
res[v.name] = n;
|
||||||
});
|
});
|
||||||
return res;
|
return res;
|
||||||
};
|
};
|
||||||
|
@ -82,7 +82,8 @@ exports.Communication = function() {
|
||||||
};
|
};
|
||||||
var stubs = {
|
var stubs = {
|
||||||
get: function(route, recursive) {
|
get: function(route, recursive) {
|
||||||
return _agency.get(route, recursive);
|
var res = _agency.get(route, recursive);
|
||||||
|
return res;
|
||||||
},
|
},
|
||||||
set: function(route, name, value) {
|
set: function(route, name, value) {
|
||||||
if (value !== undefined) {
|
if (value !== undefined) {
|
||||||
|
@ -281,7 +282,7 @@ exports.Communication = function() {
|
||||||
var ColObject = function(route, writeAccess) {
|
var ColObject = function(route, writeAccess) {
|
||||||
this.info = function() {
|
this.info = function() {
|
||||||
var res = route.get();
|
var res = route.get();
|
||||||
return JSON.parse(_.values(res)[0]);
|
return _.values(res)[0];
|
||||||
};
|
};
|
||||||
this.getShards = function() {
|
this.getShards = function() {
|
||||||
var info = this.info();
|
var info = this.info();
|
||||||
|
@ -305,7 +306,7 @@ exports.Communication = function() {
|
||||||
this.moveShard = function(shard, target) {
|
this.moveShard = function(shard, target) {
|
||||||
var toUpdate = this.info();
|
var toUpdate = this.info();
|
||||||
toUpdate.shards[shard] = target;
|
toUpdate.shards[shard] = target;
|
||||||
return route.set(JSON.stringify(toUpdate));
|
return route.set(toUpdate);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -573,7 +574,8 @@ exports.Communication = function() {
|
||||||
this.list = function() {
|
this.list = function() {
|
||||||
var res = agency.sync.beat.get(true);
|
var res = agency.sync.beat.get(true);
|
||||||
_.each(res, function(v, k) {
|
_.each(res, function(v, k) {
|
||||||
res[k] = JSON.parse(v);
|
delete res[k];
|
||||||
|
res[splitServerName(k)] = v;
|
||||||
});
|
});
|
||||||
return res;
|
return res;
|
||||||
};
|
};
|
||||||
|
|
|
@ -93,14 +93,14 @@
|
||||||
};
|
};
|
||||||
var collections = {
|
var collections = {
|
||||||
_system: {
|
_system: {
|
||||||
"98213": JSON.stringify({name: "_graphs"}),
|
"98213": {name: "_graphs"},
|
||||||
"87123": JSON.stringify(vInfo),
|
"87123": vInfo,
|
||||||
"89123": JSON.stringify({name: "e"})
|
"89123": {name: "e"}
|
||||||
},
|
},
|
||||||
a_db: {
|
a_db: {
|
||||||
"11235": JSON.stringify({name: "s"}),
|
"11235": {name: "s"},
|
||||||
"6512": JSON.stringify({name: "a"}),
|
"6512": {name: "a"},
|
||||||
"123": JSON.stringify({name: "d"})
|
"123": {name: "d"}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
var ips = {
|
var ips = {
|
||||||
|
@ -115,30 +115,30 @@
|
||||||
"cindy": "tcp://192.168.1.3:8529"
|
"cindy": "tcp://192.168.1.3:8529"
|
||||||
};
|
};
|
||||||
var heartbeats = {
|
var heartbeats = {
|
||||||
"pavel": JSON.stringify({
|
pavel: {
|
||||||
status: "SERVINGSYNC",
|
status: "SERVINGSYNC",
|
||||||
time: (new Date()).toISOString()
|
time: (new Date()).toISOString()
|
||||||
}),
|
},
|
||||||
"paul": JSON.stringify({
|
paul: {
|
||||||
status: "SERVINGSYNC",
|
status: "SERVINGSYNC",
|
||||||
time: (new Date()).toISOString()
|
time: (new Date()).toISOString()
|
||||||
}),
|
},
|
||||||
"patricia": JSON.stringify({
|
patricia: {
|
||||||
status: "SERVINGASYNC",
|
status: "SERVINGASYNC",
|
||||||
time: (new Date()).toISOString()
|
time: (new Date()).toISOString()
|
||||||
}),
|
},
|
||||||
"sandro": JSON.stringify({
|
sandro: {
|
||||||
status: "INSYNC",
|
status: "INSYNC",
|
||||||
time: (new Date()).toISOString()
|
time: (new Date()).toISOString()
|
||||||
}),
|
},
|
||||||
"sandra": JSON.stringify({
|
sandra: {
|
||||||
status: "SYNCING",
|
status: "SYNCING",
|
||||||
time: (new Date()).toISOString()
|
time: (new Date()).toISOString()
|
||||||
}),
|
},
|
||||||
"sally": JSON.stringify({
|
sally: {
|
||||||
status: "INSYNC",
|
status: "INSYNC",
|
||||||
time: (new Date()).toISOString()
|
time: (new Date()).toISOString()
|
||||||
})
|
}
|
||||||
};
|
};
|
||||||
dummy = {};
|
dummy = {};
|
||||||
dummy.target = {};
|
dummy.target = {};
|
||||||
|
@ -147,7 +147,7 @@
|
||||||
dummy.target.databases = databases;
|
dummy.target.databases = databases;
|
||||||
dummy.target.syscollections = createResult([agencyRoutes.target, agencyRoutes.sub.databases, agencyRoutes.sub.colls, "_system"], collections._system);
|
dummy.target.syscollections = createResult([agencyRoutes.target, agencyRoutes.sub.databases, agencyRoutes.sub.colls, "_system"], collections._system);
|
||||||
dummy.target.acollections = createResult([agencyRoutes.target, agencyRoutes.sub.databases, agencyRoutes.sub.colls, "a_db"], collections.a_db);
|
dummy.target.acollections = createResult([agencyRoutes.target, agencyRoutes.sub.databases, agencyRoutes.sub.colls, "a_db"], collections.a_db);
|
||||||
dummy.target.vInfo = JSON.stringify(vInfo);
|
dummy.target.vInfo = vInfo;
|
||||||
|
|
||||||
dummy.plan = {};
|
dummy.plan = {};
|
||||||
dummy.plan.servers = createResult([agencyRoutes.plan, agencyRoutes.sub.servers], dbServers);
|
dummy.plan.servers = createResult([agencyRoutes.plan, agencyRoutes.sub.servers], dbServers);
|
||||||
|
@ -155,7 +155,7 @@
|
||||||
dummy.plan.databases = databases;
|
dummy.plan.databases = databases;
|
||||||
dummy.plan.syscollections = createResult([agencyRoutes.plan, agencyRoutes.sub.databases, agencyRoutes.sub.colls, "_system"], collections._system);
|
dummy.plan.syscollections = createResult([agencyRoutes.plan, agencyRoutes.sub.databases, agencyRoutes.sub.colls, "_system"], collections._system);
|
||||||
dummy.plan.acollections = createResult([agencyRoutes.plan, agencyRoutes.sub.databases, agencyRoutes.sub.colls, "a_db"], collections.a_db);
|
dummy.plan.acollections = createResult([agencyRoutes.plan, agencyRoutes.sub.databases, agencyRoutes.sub.colls, "a_db"], collections.a_db);
|
||||||
dummy.plan.vInfo = JSON.stringify(vInfo);
|
dummy.plan.vInfo = vInfo;
|
||||||
|
|
||||||
dummy.current = {};
|
dummy.current = {};
|
||||||
dummy.current.servers = createResult([agencyRoutes.current, agencyRoutes.sub.servers], dbServers);
|
dummy.current.servers = createResult([agencyRoutes.current, agencyRoutes.sub.servers], dbServers);
|
||||||
|
@ -164,10 +164,12 @@
|
||||||
dummy.current.databases = databases;
|
dummy.current.databases = databases;
|
||||||
dummy.current.syscollections = createResult([agencyRoutes.current, agencyRoutes.sub.databases, agencyRoutes.sub.colls, "_system"], collections._system);
|
dummy.current.syscollections = createResult([agencyRoutes.current, agencyRoutes.sub.databases, agencyRoutes.sub.colls, "_system"], collections._system);
|
||||||
dummy.current.acollections = createResult([agencyRoutes.current, agencyRoutes.sub.databases, agencyRoutes.sub.colls, "a_db"], collections.a_db);
|
dummy.current.acollections = createResult([agencyRoutes.current, agencyRoutes.sub.databases, agencyRoutes.sub.colls, "a_db"], collections.a_db);
|
||||||
dummy.current.vInfo = JSON.stringify(vInfo);
|
dummy.current.vInfo = vInfo;
|
||||||
|
|
||||||
dummy.sync = {};
|
dummy.sync = {};
|
||||||
dummy.sync.heartbeats = heartbeats;
|
dummy.sync.heartbeats = heartbeats;
|
||||||
|
dummy.sync.heartbeats = createResult([agencyRoutes.registered, agencyRoutes.sub.beat], heartbeats);
|
||||||
|
dummy.sync.interval = "1000";
|
||||||
};
|
};
|
||||||
var setup = function() {
|
var setup = function() {
|
||||||
resetToDefault();
|
resetToDefault();
|
||||||
|
@ -233,7 +235,7 @@
|
||||||
}
|
}
|
||||||
if (parts[1] === agencyRoutes.sub.interval) {
|
if (parts[1] === agencyRoutes.sub.interval) {
|
||||||
res = {};
|
res = {};
|
||||||
res[route] = JSON.stringify(dummy.sync.interval);
|
res[route] = dummy.sync.interval;
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -582,7 +584,7 @@
|
||||||
|
|
||||||
testGetCollectionMetaInfo: function() {
|
testGetCollectionMetaInfo: function() {
|
||||||
var sysdb = dbs.select("_system");
|
var sysdb = dbs.select("_system");
|
||||||
assertEqual(sysdb.collection("v").info(), JSON.parse(dummy.target.vInfo));
|
assertEqual(sysdb.collection("v").info(), dummy.target.vInfo);
|
||||||
},
|
},
|
||||||
|
|
||||||
testGetResponsibilitiesForCollection: function() {
|
testGetResponsibilitiesForCollection: function() {
|
||||||
|
@ -747,7 +749,7 @@
|
||||||
|
|
||||||
testGetCollectionMetaInfo: function() {
|
testGetCollectionMetaInfo: function() {
|
||||||
var sysdb = dbs.select("_system");
|
var sysdb = dbs.select("_system");
|
||||||
assertEqual(sysdb.collection("v").info(), JSON.parse(dummy.target.vInfo));
|
assertEqual(sysdb.collection("v").info(), dummy.target.vInfo);
|
||||||
},
|
},
|
||||||
|
|
||||||
testGetResponsibilitiesForCollection: function() {
|
testGetResponsibilitiesForCollection: function() {
|
||||||
|
@ -897,7 +899,7 @@
|
||||||
|
|
||||||
testGetCollectionMetaInfo: function() {
|
testGetCollectionMetaInfo: function() {
|
||||||
var sysdb = dbs.select("_system");
|
var sysdb = dbs.select("_system");
|
||||||
assertEqual(sysdb.collection("v").info(), JSON.parse(dummy.target.vInfo));
|
assertEqual(sysdb.collection("v").info(), dummy.target.vInfo);
|
||||||
},
|
},
|
||||||
|
|
||||||
testGetResponsibilitiesForCollection: function() {
|
testGetResponsibilitiesForCollection: function() {
|
||||||
|
@ -972,10 +974,22 @@
|
||||||
assertEqual(beats.getOutSync(), ["patricia", "sandra"].sort());
|
assertEqual(beats.getOutSync(), ["patricia", "sandra"].sort());
|
||||||
},
|
},
|
||||||
|
|
||||||
testGetNoBeat: function() {
|
testGetNoBeatIfAllWork: function() {
|
||||||
assertEqual(beats.noBeat(), []);
|
assertEqual(beats.noBeat(), []);
|
||||||
}
|
},
|
||||||
|
|
||||||
|
testGetNoBeatIfOneFails: function() {
|
||||||
|
// Rewrite Beat
|
||||||
|
var now = new Date(),
|
||||||
|
old = new Date(now - 5 * 60 * 1000),
|
||||||
|
route = [
|
||||||
|
agencyRoutes.registered,
|
||||||
|
agencyRoutes.sub.beat,
|
||||||
|
"pavel"
|
||||||
|
].join("/");
|
||||||
|
dummy.sync.heartbeats[route].time = old.toISOString();
|
||||||
|
assertEqual(beats.noBeat(), ["pavel"]);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue