diff options
author | Kaloian Manassiev <kaloian.manassiev@mongodb.com> | 2016-06-24 11:53:08 -0400 |
---|---|---|
committer | Kaloian Manassiev <kaloian.manassiev@mongodb.com> | 2016-06-24 11:53:52 -0400 |
commit | 5e352923ca2c04e85efd4ed65c1448dbb6e15f2d (patch) | |
tree | 7942df613db6ded5a84d5e56b1e08457e926ada6 /jstests/sharding | |
parent | e9746acfea16d422d6f94e878a670496ca0f916c (diff) | |
download | mongo-5e352923ca2c04e85efd4ed65c1448dbb6e15f2d.tar.gz |
SERVER-23930 Ensure new shard is available in the ShardRegistry after addShard
Diffstat (limited to 'jstests/sharding')
-rw-r--r-- | jstests/sharding/move_chunk_basic.js | 40 |
1 files changed, 18 insertions, 22 deletions
diff --git a/jstests/sharding/move_chunk_basic.js b/jstests/sharding/move_chunk_basic.js index 354a222da10..69bdf4d8c90 100644 --- a/jstests/sharding/move_chunk_basic.js +++ b/jstests/sharding/move_chunk_basic.js @@ -6,24 +6,35 @@ 'use strict'; var st = new ShardingTest({mongos: 1, shards: 2}); + var kDbName = 'db'; var mongos = st.s0; + var shard0 = st.shard0.shardName; + var shard1 = st.shard1.shardName; - var kDbName = 'db'; + assert.commandWorked(mongos.adminCommand({enableSharding: kDbName})); + st.ensurePrimaryShard(kDbName, shard0); - var shards = mongos.getCollection('config.shards').find().toArray(); + // Fail if invalid namespace. + assert.commandFailed(mongos.adminCommand({moveChunk: '', find: {_id: 1}, to: shard1})); + + // Fail if database does not exist. + assert.commandFailed(mongos.adminCommand({moveChunk: 'a.b', find: {_id: 1}, to: shard1})); - var shard0 = shards[0]._id; - var shard1 = shards[1]._id; + // Fail if collection is unsharded. + assert.commandFailed( + mongos.adminCommand({moveChunk: kDbName + '.xxx', find: {_id: 1}, to: shard1})); function testHashed() { var ns = kDbName + '.fooHashed'; - - // Errors if either bounds is not a valid shard key assert.commandWorked(mongos.adminCommand({shardCollection: ns, key: {_id: 'hashed'}})); var aChunk = mongos.getDB('config').chunks.findOne({_id: RegExp(ns), shard: shard0}); assert(aChunk); + + // Error if either of the bounds is not a valid shard key (BSON object - 1 yields a NaN) + assert.commandFailed(mongos.adminCommand( + {moveChunk: ns, bounds: [aChunk.min - 1, aChunk.max], to: shard1})); assert.commandFailed(mongos.adminCommand( {moveChunk: ns, bounds: [aChunk.min, aChunk.max - 1], to: shard1})); @@ -40,6 +51,7 @@ assert.commandWorked( mongos.adminCommand({moveChunk: ns, bounds: [aChunk.min, aChunk.max], to: shard1})); + assert.eq(0, mongos.getDB('config').chunks.count({_id: aChunk._id, shard: shard0})); assert.eq(1, mongos.getDB('config').chunks.count({_id: aChunk._id, shard: shard1})); @@ -70,22 +82,6 @@ mongos.getDB(kDbName).foo.drop(); } - assert.commandWorked(mongos.adminCommand({enableSharding: kDbName})); - - st.ensurePrimaryShard(kDbName, shard0); - - // Fail if invalid namespace. - var res = - assert.commandFailed(mongos.adminCommand({moveChunk: '', find: {_id: 1}, to: shard1})); - assert.eq(res.info); - - // Fail if database does not exist. - assert.commandFailed(mongos.adminCommand({moveChunk: 'a.b', find: {_id: 1}, to: shard1})); - - // Fail if collection is unsharded. - assert.commandFailed( - mongos.adminCommand({moveChunk: kDbName + '.xxx', find: {_id: 1}, to: shard1})); - testHashed(); testNotHashed({a: 1}); |