#!/bin/bash
|
|
DATA_DIR=/data/db
|
TEST_PREFIX='addShard-'
|
MONGO_BIN_DIR=''
|
|
pushd $DATA_DIR
|
|
echo Deleting old directories
|
rm -rf "$TEST_PREFIX"shard* "$TEST_PREFIX"config* "$TEST_PREFIX"mongos* "$TEST_PREFIX"config_backup* "$TEST_PREFIX"dump*
|
|
echo Creating directories
|
mkdir "$TEST_PREFIX"shard0; touch "$TEST_PREFIX"shard0/log
|
mkdir "$TEST_PREFIX"shard1; touch "$TEST_PREFIX"shard1/log
|
mkdir "$TEST_PREFIX"config1; touch "$TEST_PREFIX"config1/log
|
mkdir "$TEST_PREFIX"config2; touch "$TEST_PREFIX"config2/log
|
mkdir "$TEST_PREFIX"mongos; touch "$TEST_PREFIX"mongos/mongos.log
|
mkdir "$TEST_PREFIX"config_backup; touch "$TEST_PREFIX"config_backup/log
|
|
echo Starting shards and config servers
|
"$MONGO_BIN_DIR"mongod --rest --dbpath "$TEST_PREFIX"shard0 --logpath $DATA_DIR/"$TEST_PREFIX"shard0/log --port 4000 --fork --shardsvr
|
"$MONGO_BIN_DIR"mongod --rest --dbpath "$TEST_PREFIX"shard1 --logpath $DATA_DIR/"$TEST_PREFIX"shard1/log --port 4001 --fork --shardsvr
|
"$MONGO_BIN_DIR"mongod --rest --dbpath "$TEST_PREFIX"config1 --logpath $DATA_DIR/"$TEST_PREFIX"config1/log --port 4003 --fork --configsvr
|
"$MONGO_BIN_DIR"mongod --rest --dbpath "$TEST_PREFIX"config2 --logpath $DATA_DIR/"$TEST_PREFIX"config2/log --port 4004 --fork --configsvr
|
|
echo Waiting for config server to start up
|
sleep 3 # let config server start up
|
|
echo Starting mongos
|
"$MONGO_BIN_DIR"mongos --port 4006 --configdb localhost:4003 --fork --logpath $DATA_DIR/"$TEST_PREFIX"mongos.log --chunkSize 1
|
|
echo Waiting for mongos to start up
|
sleep 3
|
|
echo Initiating shard
|
"$MONGO_BIN_DIR"mongo --port 4006 admin <<EOF
|
print("\nAdding shards");
|
db.runCommand( { addshard : 'localhost:4000', name: 'shard0' });
|
db.runCommand( { addshard : 'localhost:4001', name: 'shard1' });
|
print("\nAdding config server as shard. This should fail. ");
|
db.runCommand( { addShard : 'localhost:4004', name: 'shard2' });
|
EOF
|