Ejemplo n.º 1
0
 def test_host_map(self):
     config = PlProxyConfig.from_dict(TEST_PARTITION_CONFIG_HOST_MAP)
     shards = config.get_shards()
     self.assertEqual(shards, [
         ShardMeta(id=0, dbname='db1', host='localhost', port=5432),
         ShardMeta(id=1, dbname='db2', host='hqdb2', port=5432),
     ])
Ejemplo n.º 2
0
 def test_host_map(self):
     config = PartitionConfig()
     shards = config.get_shards()
     self.assertEquals(shards, [
         ShardMeta(id=0, dbname='db1', host='localhost', port=5432),
         ShardMeta(id=1, dbname='db2', host='hqdb2', port=5432),
     ])
Ejemplo n.º 3
0
    def test_parse_existing_shard(self):
        parsed = parse_existing_shard('p0001=dbname=db1 host=hqdb0 port=5432')
        self.assertEqual(
            ShardMeta(id=1, dbname='db1', host='hqdb0', port=5432), parsed)

        parsed = parse_existing_shard('p25=dbname=db2 host=hqdb1 port=6432')
        self.assertEqual(
            ShardMeta(id=25, dbname='db2', host='hqdb1', port=6432), parsed)
Ejemplo n.º 4
0
 def test_shard_mapping(self):
     config = PlProxyConfig.from_dict(TEST_PARTITION_CONFIG)
     shards = config.get_shards()
     self.assertEqual(shards, [
         ShardMeta(id=0, dbname='db1', host='hqdb1', port=5432),
         ShardMeta(id=1, dbname='db1', host='hqdb1', port=5432),
         ShardMeta(id=2, dbname='db2', host='hqdb2', port=5432),
         ShardMeta(id=3, dbname='db2', host='hqdb2', port=5432),
     ])
Ejemplo n.º 5
0
def parse_existing_shard(shard_option):
    shard_name, options = shard_option.split('=', 1)
    assert shard_name[0] == 'p'
    shard_id = int(shard_name[1:])
    options = options.split(' ')
    option_kwargs = dict(tuple(option.split('=')) for option in options)
    if 'port' in option_kwargs:
        option_kwargs['port'] = int(option_kwargs['port'])
    return ShardMeta(id=shard_id, **option_kwargs)
Ejemplo n.º 6
0
 def test_get_shards_to_update(self):
     existing = [
         ShardMeta(id=0, dbname='db0', host='hqdb0', port=5432),
         ShardMeta(id=1, dbname='db0', host='hqdb0', port=5432),
         ShardMeta(id=2, dbname='db1', host='hqdb1', port=5432),
         ShardMeta(id=3, dbname='db1', host='hqdb1', port=5432),
     ]
     new = [
         ShardMeta(id=0, dbname='db0', host='hqdb0', port=5432),
         ShardMeta(id=1, dbname='db2', host='hqdb2', port=5432),  # changed
         ShardMeta(id=2, dbname='db1', host='hqdb1', port=5432),
         ShardMeta(id=3, dbname='db3', host='hqdb3', port=5432),  # changed
     ]
     to_update = get_shards_to_update(existing, new)
     self.assertEqual([new[1], new[3]], to_update)
Ejemplo n.º 7
0
 def test_get_server_option_string(self):
     self.assertEqual(
         "p0000 'dbname=db1 host=hqdb0 port=5432'",
         ShardMeta(id=0, dbname='db1', host='hqdb0', port=5432).get_server_option_string()
     )