def test_rs_new_with_auth(self): port1, port2 = PortPool().port(check=True), PortPool().port(check=True) repl_id = self.rs.create({ 'id': 'test-rs-1', 'auth_key': 'sercret', 'login': '******', 'password': '******', 'members': [{ "procParams": { "port": port1 } }, { "procParams": { "port": port2 } }] }) self.assertEqual(repl_id, 'test-rs-1') server1 = "{hostname}:{port}".format(hostname=HOSTNAME, port=port1) server2 = "{hostname}:{port}".format(hostname=HOSTNAME, port=port2) c = pymongo.MongoClient([server1, server2], replicaSet=repl_id) self.assertRaises(pymongo.errors.OperationFailure, c.admin.collection_names) self.assertTrue(c.admin.authenticate('admin', 'admin')) self.assertTrue(isinstance(c.admin.collection_names(), list)) c.admin.logout() self.assertRaises(pymongo.errors.OperationFailure, c.admin.collection_names) c.close()
def test_sh_new_with_auth(self): port = PortPool().port(check=True) config = { 'id': 'shard_cluster_1', 'auth_key': 'secret', 'login': '******', 'password': '******', 'configsvrs': [{}], 'routers': [{ "port": port }], 'shards': [{ 'id': 'sh01' }, { 'id': 'sh02' }] } self.sh.create(config) host = "{hostname}:{port}".format(hostname=HOSTNAME, port=port) c = pymongo.MongoClient(host) self.assertRaises(pymongo.errors.OperationFailure, c.admin.command, "listShards") c.admin.authenticate('admin', 'adminpass') self.assertTrue(isinstance(c.admin.command("listShards"), dict)) c.close()
def test_sh_new_with_auth(self): port = PortPool().port(check=True) config = { 'id': 'shard_cluster_1', 'auth_key': 'secret', 'login': '******', 'password': '******', 'configsvrs': [{}], 'routers': [{ "port": port }], 'shards': [{ 'id': 'sh01' }, { 'id': 'sh02' }] } self.sh = ShardedCluster(config) c = pymongo.MongoClient(self.sh.router['hostname']) self.assertRaises(pymongo.errors.OperationFailure, c.admin.command, "listShards") c.admin.authenticate('admin', 'adminpass') self.assertTrue(isinstance(c.admin.command("listShards"), dict)) for item in c.admin.command("listShards")['shards']: self.assertTrue(item['_id'] in ('sh01', 'sh02'))
def test_member_add(self): port = PortPool().port(check=True) config = {'routers': [{'port': port}]} sh_id = self.sh.create(config) host = "{hostname}:{port}".format(hostname=HOSTNAME, port=port) c = pymongo.MongoClient(host) self.assertEqual(len(c.admin.command("listShards")['shards']), 0) result = self.sh.member_add(sh_id, {'id': 'test1', 'shardParams': {}}) self.assertTrue(result.get('isServer', False)) self.assertEqual(result['id'], 'test1') self.assertEqual(len(c.admin.command("listShards")['shards']), 1) result = self.sh.member_add(sh_id, { 'id': 'test2', 'shardParams': { 'id': 'rs1', 'members': [{}, {}] } }) self.assertFalse(result.get('isServer', False)) self.assertTrue(result.get('isReplicaSet', False)) self.assertEqual(result['id'], 'test2') self.assertEqual(len(c.admin.command("listShards")['shards']), 2)
def test_member_del(self): port = PortPool().port(check=True) config = {'routers': [{'port': port}], 'shards': [{'id': 'member1'}, {'id': 'member2'}, {'id': 'sh-rs-01', 'shardParams': {'id': 'rs1', 'members': [{}, {}]}}]} sh_id = self.sh.create(config) host = "{hostname}:{port}".format(hostname=HOSTNAME, port=port) c = pymongo.MongoClient(host) result = c.admin.command("listShards") self.assertEqual(len(result['shards']), 3) # remove member-host result = self.sh.member_del(sh_id, 'member1') self.assertEqual(len(c.admin.command("listShards")['shards']), 3) self.assertEqual(result['state'], 'started') self.assertEqual(result['shard'], 'member1') time.sleep(5) result = self.sh.member_del(sh_id, 'member1') self.assertEqual(result['state'], 'completed') self.assertEqual(len(c.admin.command("listShards")['shards']), 2) self.assertEqual(result['shard'], 'member1') # remove member-replicaset result = self.sh.member_del(sh_id, 'sh-rs-01') self.assertEqual(len(c.admin.command("listShards")['shards']), 2) self.assertEqual(result['state'], 'started') self.assertEqual(result['shard'], 'sh-rs-01') time.sleep(7) result = self.sh.member_del(sh_id, 'sh-rs-01') self.assertEqual(result['state'], 'completed') self.assertEqual(len(c.admin.command("listShards")['shards']), 1) self.assertEqual(result['shard'], 'sh-rs-01')
def test_sh_new(self): port = PortPool().port(check=True) config = { 'id': 'shard_cluster_1', 'configsvrs': [{}], 'routers': [{ "port": port }], 'shards': [ { 'id': 'sh01' }, { 'id': 'sh02' }, { 'id': 'sh-rs-01', 'shardParams': { 'id': 'rs1', 'members': [{}, {}] } }, ] } cluster_id = self.sh.create(config) self.assertEqual(cluster_id, 'shard_cluster_1') host = "{hostname}:{port}".format(hostname=HOSTNAME, port=port) c = pymongo.MongoClient(host) result = c.admin.command("listShards") for shard in result['shards']: shard['_id'] in ('sh01', 'sh02', 'sh-rs-01') c.close()
def setUp(self): PortPool().change_range() self.mongod = os.path.join(os.environ.get('MONGOBIN', ''), 'mongod') self.server = Server(self.mongod, {}, auth_key='secret', login='******', password='******') self.server.start()
def test_members(self): port1, port2 = PortPool().port(check=True), PortPool().port(check=True) server1 = "{hostname}:{port}".format(hostname=HOSTNAME, port=port1) server2 = "{hostname}:{port}".format(hostname=HOSTNAME, port=port2) repl_id = self.rs.create({ 'members': [{ "procParams": { "port": port1 } }, { "procParams": { "port": port2 } }] }) members = self.rs.members(repl_id) self.assertEqual(len(members), 2) self.assertTrue(server1 in [member['host'] for member in members]) self.assertTrue(server2 in [member['host'] for member in members])
def setUp(self): PortPool().change_range() self.servers = Servers() self.servers.set_settings(*TEST_RELEASES) self.repl_cfg = { 'auth_key': 'secret', 'login': '******', 'password': '******', 'members': [{}, {}] } self.repl = ReplicaSet(self.repl_cfg)
def test_members(self): port = PortPool().port(check=True) config = {'routers': [{'port': port}]} sh_id = self.sh.create(config) self.assertEqual(len(self.sh.members(sh_id)), 0) self.sh.cleanup() config = {'routers': [{'port': port}], 'shards': [{}, {}, {}]} sh_id = self.sh.create(config) self.assertEqual(len(self.sh.members(sh_id)), 3)
def setUp(self): PortPool().change_range() self.servers = Servers() self.servers.set_settings(os.environ.get('MONGOBIN', None)) self.repl_cfg = { 'auth_key': 'secret', 'login': '******', 'password': '******', 'members': [{}, {}] } self.repl = ReplicaSet(self.repl_cfg)
def test_sh_new(self): port = PortPool().port(check=True) config = { 'id': 'shard_cluster_1', 'configsvrs': [{}], 'routers': [{"port": port}], 'shards': [{'id': 'sh01'}, {'id': 'sh02'}] } self.sh = ShardedCluster(config) c = pymongo.MongoClient(self.sh.router['hostname']) for item in c.admin.command("listShards")['shards']: self.assertTrue(item['_id'] in ('sh01', 'sh02'))
def test_rs_new(self): port1, port2 = PortPool().port(check=True), PortPool().port(check=True) repl_id = self.rs.create({ 'id': 'test-rs-1', 'members': [{ "procParams": { "port": port1 } }, { "procParams": { "port": port2 } }] }) self.assertEqual(repl_id, 'test-rs-1') server1 = "{hostname}:{port}".format(hostname=HOSTNAME, port=port1) server2 = "{hostname}:{port}".format(hostname=HOSTNAME, port=port2) c = pymongo.MongoClient([server1, server2], replicaSet=repl_id) self.assertEqual(c.admin.eval("rs.conf()")['_id'], repl_id) c.close()
def setUp(self): PortPool().change_range() self.servers = Servers() self.servers.set_settings(*TEST_RELEASES) self.repl_cfg = { 'members': [{}, {}, { 'rsParams': { 'priority': 0, 'hidden': True } }, { 'rsParams': { 'arbiterOnly': True } }] }
def setUp(self): PortPool().change_range() self.servers = Servers() self.servers.set_settings(os.environ.get('MONGOBIN', None)) self.repl_cfg = { 'members': [{}, {}, { 'rsParams': { 'priority': 0, 'hidden': True } }, { 'rsParams': { 'arbiterOnly': True } }] }
def setUp(self): PortPool().change_range() self.rs = ReplicaSets()
def setUp(self): PortPool().change_range()
def setUp(self): self.sh = ShardedClusters() PortPool().change_range()
def setUp(self): self.sh = None PortPool().change_range()
def setUp(self): PortPool().change_range() self.path = tempfile.mktemp(prefix="test-storage") self.servers = Servers() self.servers.set_settings(os.environ.get('MONGOBIN', ""))
def setUp(self): PortPool().change_range() self.mongod = os.path.join(os.environ.get('MONGOBIN', ''), 'mongod') self.server = Server(self.mongod, {})
def setUp(self): self.sh = ShardedClusters() set_releases({"default-release": os.environ.get('MONGOBIN', '')}, 'default-release') PortPool().change_range()
def setUp(self): PortPool().change_range() self.rs = ReplicaSets() self.rs.set_settings(os.environ.get('MONGOBIN', None))
def setUp(self): PortPool().change_range() self.path = tempfile.mktemp(prefix="test-storage") self.servers = Servers() self.servers.set_settings(*TEST_RELEASES)
def setUp(self): self.bin_path = os.environ.get('MONGOBIN', '') set_releases({'default-release': self.bin_path}, 'default-release') PortPool().change_range()