diff options
author | Kevin Pulo <kevin.pulo@mongodb.com> | 2016-05-18 15:24:27 +1000 |
---|---|---|
committer | Kevin Pulo <kevin.pulo@mongodb.com> | 2016-06-01 22:56:11 +1000 |
commit | a5864a5d54e667af548b4ce7b5b652ebcce84ef4 (patch) | |
tree | 7e76cdabd3619dd9da67061662fad7240d715b3c | |
parent | ea04f14087f210114ddd2689fb9ca29441d56a48 (diff) | |
download | mongo-a5864a5d54e667af548b4ce7b5b652ebcce84ef4.tar.gz |
SERVER-23145 SERVER-22449 sharding shell helpers return result and assert on failure
-rw-r--r-- | src/mongo/shell/utils_sh.js | 46 |
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) { |