summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Pulo <kevin.pulo@mongodb.com>2016-05-18 15:24:27 +1000
committerKevin Pulo <kevin.pulo@mongodb.com>2016-06-01 22:56:11 +1000
commita5864a5d54e667af548b4ce7b5b652ebcce84ef4 (patch)
tree7e76cdabd3619dd9da67061662fad7240d715b3c
parentea04f14087f210114ddd2689fb9ca29441d56a48 (diff)
downloadmongo-a5864a5d54e667af548b4ce7b5b652ebcce84ef4.tar.gz
SERVER-23145 SERVER-22449 sharding shell helpers return result and assert on failure
-rw-r--r--src/mongo/shell/utils_sh.js46
1 files changed, 22 insertions, 24 deletions
diff --git a/src/mongo/shell/utils_sh.js b/src/mongo/shell/utils_sh.js
index 99a2eff00c6..41ee0e066b0 100644
--- a/src/mongo/shell/utils_sh.js
+++ b/src/mongo/shell/utils_sh.js
@@ -115,10 +115,10 @@ sh.moveChunk = function(fullName, find, to) {
};
sh.setBalancerState = function(onOrNot) {
- return sh._getConfigDB().settings.update(
- {_id: 'balancer'},
- {$set: {stopped: onOrNot ? false : true}},
- {upsert: true, writeConcern: {w: 'majority', timeout: 30}});
+ return assert.writeOK(
+ sh._getConfigDB().settings.update({_id: 'balancer'},
+ {$set: {stopped: onOrNot ? false : true}},
+ {upsert: true, writeConcern: {w: 'majority'}}));
};
sh.getBalancerState = function(configDB) {
@@ -154,13 +154,15 @@ sh.getBalancerHost = function(configDB) {
};
sh.stopBalancer = function(timeout, interval) {
- sh.setBalancerState(false);
+ var res = sh.setBalancerState(false);
sh.waitForBalancer(false, timeout, interval);
+ return res;
};
sh.startBalancer = function(timeout, interval) {
- sh.setBalancerState(true);
+ var res = sh.setBalancerState(true);
sh.waitForBalancer(true, timeout, interval);
+ return res;
};
sh.waitForDLock = function(lockId, onOrNot, timeout, interval) {
@@ -302,7 +304,8 @@ sh.disableBalancing = function(coll) {
sh._checkMongos();
}
- dbase.getSisterDB("config").collections.update({_id: coll + ""}, {$set: {"noBalance": true}});
+ return assert.writeOK(dbase.getSisterDB("config").collections.update(
+ {_id: coll + ""}, {$set: {"noBalance": true}}, {writeConcern: {w: 'majority'}}));
};
sh.enableBalancing = function(coll) {
@@ -316,7 +319,8 @@ sh.enableBalancing = function(coll) {
sh._checkMongos();
}
- dbase.getSisterDB("config").collections.update({_id: coll + ""}, {$set: {"noBalance": false}});
+ return assert.writeOK(dbase.getSisterDB("config").collections.update(
+ {_id: coll + ""}, {$set: {"noBalance": false}}, {writeConcern: {w: 'majority'}}));
};
/*
@@ -366,19 +370,13 @@ sh._lastMigration = function(ns) {
return null;
};
-sh._checkLastError = function(mydb) {
- var errObj = mydb.getLastErrorObj();
- if (errObj.err)
- throw _getErrorWithCode(errObj, "error: " + errObj.err);
-};
-
sh.addShardTag = function(shard, tag) {
var config = sh._getConfigDB();
if (config.shards.findOne({_id: shard}) == null) {
throw Error("can't find a shard with name: " + shard);
}
- config.shards.update({_id: shard}, {$addToSet: {tags: tag}});
- sh._checkLastError(config);
+ return assert.writeOK(config.shards.update(
+ {_id: shard}, {$addToSet: {tags: tag}}, {writeConcern: {w: 'majority'}}));
};
sh.removeShardTag = function(shard, tag) {
@@ -386,8 +384,8 @@ sh.removeShardTag = function(shard, tag) {
if (config.shards.findOne({_id: shard}) == null) {
throw Error("can't find a shard with name: " + shard);
}
- config.shards.update({_id: shard}, {$pull: {tags: tag}});
- sh._checkLastError(config);
+ return assert.writeOK(
+ config.shards.update({_id: shard}, {$pull: {tags: tag}}, {writeConcern: {w: 'majority'}}));
};
sh.addTagRange = function(ns, min, max, tag) {
@@ -396,10 +394,10 @@ sh.addTagRange = function(ns, min, max, tag) {
}
var config = sh._getConfigDB();
- config.tags.update({_id: {ns: ns, min: min}},
- {_id: {ns: ns, min: min}, ns: ns, min: min, max: max, tag: tag},
- true);
- sh._checkLastError(config);
+ return assert.writeOK(
+ config.tags.update({_id: {ns: ns, min: min}},
+ {_id: {ns: ns, min: min}, ns: ns, min: min, max: max, tag: tag},
+ {upsert: true, writeConcern: {w: 'majority'}}));
};
sh.removeTagRange = function(ns, min, max, tag) {
@@ -414,8 +412,8 @@ sh.removeTagRange = function(ns, min, max, tag) {
}
// max and tag criteria not really needed, but including them avoids potentially unexpected
// behavior.
- config.tags.remove({_id: {ns: ns, min: min}, max: max, tag: tag});
- sh._checkLastError(config);
+ return assert.writeOK(config.tags.remove({_id: {ns: ns, min: min}, max: max, tag: tag},
+ {writeConcern: {w: 'majority'}}));
};
sh.getBalancerLockDetails = function(configDB) {