Example #1
0
 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()
Example #7
0
 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()
Example #8
0
 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])
Example #9
0
 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)
Example #11
0
 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'))
Example #13
0
 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()
Example #14
0
 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
             }
         }]
     }
Example #15
0
 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
             }
         }]
     }
Example #16
0
 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()
Example #20
0
 def setUp(self):
     PortPool().change_range()
     self.path = tempfile.mktemp(prefix="test-storage")
     self.servers = Servers()
     self.servers.set_settings(os.environ.get('MONGOBIN', ""))
Example #21
0
 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()
Example #23
0
 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()