Add --includes to s-m-s-r
Change-Id: I31d11af3fdba844c5cd632925b8fd774b109dbd1
This commit is contained in:
parent
a7b9d1ea69
commit
55386c836d
@ -273,6 +273,7 @@ def find_ranges(broker, args):
|
||||
|
||||
def show_shard_ranges(broker, args):
|
||||
shard_ranges = broker.get_shard_ranges(
|
||||
includes=getattr(args, 'includes', None),
|
||||
include_deleted=getattr(args, 'include_deleted', False))
|
||||
shard_data = [dict(sr, state=sr.state_text)
|
||||
for sr in shard_ranges]
|
||||
@ -552,6 +553,8 @@ def _make_parser():
|
||||
show_parser.add_argument(
|
||||
'--brief', '-b', action='store_true', default=False,
|
||||
help='Show only shard range bounds in output.')
|
||||
show_parser.add_argument('--includes',
|
||||
help='limit shard ranges to include key')
|
||||
show_parser.set_defaults(func=show_shard_ranges)
|
||||
|
||||
# info
|
||||
|
@ -423,6 +423,47 @@ class TestManageShardRanges(unittest.TestCase):
|
||||
self.assertEqual(['Loaded db broker for a/c.'],
|
||||
err.getvalue().splitlines())
|
||||
|
||||
def test_show(self):
|
||||
broker = self._make_broker()
|
||||
out = StringIO()
|
||||
err = StringIO()
|
||||
with mock.patch('sys.stdout', out), mock.patch('sys.stderr', err):
|
||||
main([broker.db_file, 'show'])
|
||||
expected = [
|
||||
'Loaded db broker for a/c.',
|
||||
'No shard data found.',
|
||||
]
|
||||
self.assertEqual(expected, err.getvalue().splitlines())
|
||||
self.assertEqual('', out.getvalue())
|
||||
|
||||
shard_ranges = make_shard_ranges(broker, self.shard_data, '.shards_')
|
||||
expected_shard_ranges = [
|
||||
dict(sr, state=ShardRange.STATES[sr.state])
|
||||
for sr in shard_ranges
|
||||
]
|
||||
broker.merge_shard_ranges(shard_ranges)
|
||||
out = StringIO()
|
||||
err = StringIO()
|
||||
with mock.patch('sys.stdout', out), mock.patch('sys.stderr', err):
|
||||
main([broker.db_file, 'show'])
|
||||
expected = [
|
||||
'Loaded db broker for a/c.',
|
||||
'Existing shard ranges:',
|
||||
]
|
||||
self.assertEqual(expected, err.getvalue().splitlines())
|
||||
self.assertEqual(expected_shard_ranges, json.loads(out.getvalue()))
|
||||
|
||||
out = StringIO()
|
||||
err = StringIO()
|
||||
with mock.patch('sys.stdout', out), mock.patch('sys.stderr', err):
|
||||
main([broker.db_file, 'show', '--includes', 'foo'])
|
||||
expected = [
|
||||
'Loaded db broker for a/c.',
|
||||
'Existing shard ranges:',
|
||||
]
|
||||
self.assertEqual(expected, err.getvalue().splitlines())
|
||||
self.assertEqual(expected_shard_ranges[:1], json.loads(out.getvalue()))
|
||||
|
||||
def test_replace(self):
|
||||
broker = self._make_broker()
|
||||
broker.update_metadata({'X-Container-Sysmeta-Sharding':
|
||||
|
Loading…
x
Reference in New Issue
Block a user