Use event_time as default event sort key in OSC
Closes-Bug: #1599568 Change-Id: Id1e6e7669b03f5dd4a66a1e786a08eb9ade79307
This commit is contained in:
parent
9a255f593c
commit
988824784b
|
@ -133,11 +133,15 @@ class ListEvent(command.Lister):
|
||||||
)
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--sort',
|
'--sort',
|
||||||
metavar='<key>[:<direction>]',
|
metavar='[<key>][:<direction>]',
|
||||||
action='append',
|
action='append',
|
||||||
help=_('Sort output by selected keys and directions (asc or desc) '
|
help=_('Sort output by selected keys and directions (asc or desc) '
|
||||||
'(default: asc). Specify multiple times to sort on '
|
'(default: asc). Specify multiple times to sort on '
|
||||||
'multiple keys')
|
'multiple keys. Sort key can be: '
|
||||||
|
'"event_time" (default), "resource_name", "links", '
|
||||||
|
'"logical_resource_id", "resource_status", '
|
||||||
|
'"resource_status_reason", "physical_resource_id", or '
|
||||||
|
'"id".')
|
||||||
)
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--follow',
|
'--follow',
|
||||||
|
@ -202,7 +206,13 @@ class ListEvent(command.Lister):
|
||||||
limit=parsed_args.limit)
|
limit=parsed_args.limit)
|
||||||
|
|
||||||
if parsed_args.sort:
|
if parsed_args.sort:
|
||||||
events = utils.sort_items(events, ','.join(parsed_args.sort))
|
sorts = []
|
||||||
|
for sort in parsed_args.sort:
|
||||||
|
if sort.startswith(":"):
|
||||||
|
sorts.append(":".join(["event_time", sort.lstrip(":")]))
|
||||||
|
else:
|
||||||
|
sorts.append(sort)
|
||||||
|
events = utils.sort_items(events, ','.join(sorts))
|
||||||
|
|
||||||
if parsed_args.formatter == 'log':
|
if parsed_args.formatter == 'log':
|
||||||
return [], events
|
return [], events
|
||||||
|
|
|
@ -182,13 +182,47 @@ class TestEventList(TestEvent):
|
||||||
])
|
])
|
||||||
self.assertEqual(cols, columns)
|
self.assertEqual(cols, columns)
|
||||||
|
|
||||||
def test_event_list_sort(self):
|
@mock.patch('osc_lib.utils.sort_items')
|
||||||
|
def test_event_list_sort(self, mock_sort_items):
|
||||||
arglist = ['my_stack', '--sort', 'resource_name:desc',
|
arglist = ['my_stack', '--sort', 'resource_name:desc',
|
||||||
'--format', 'table']
|
'--format', 'table']
|
||||||
parsed_args = self.check_parser(self.cmd, arglist, [])
|
parsed_args = self.check_parser(self.cmd, arglist, [])
|
||||||
|
|
||||||
|
mock_event = self.MockEvent()
|
||||||
|
mock_sort_items.return_value = [mock_event]
|
||||||
columns, data = self.cmd.take_action(parsed_args)
|
columns, data = self.cmd.take_action(parsed_args)
|
||||||
|
|
||||||
|
mock_sort_items.assert_called_with(mock.ANY,
|
||||||
|
"resource_name:desc")
|
||||||
|
self.event_client.list.assert_called_with(**self.defaults)
|
||||||
|
self.assertEqual(self.fields, columns)
|
||||||
|
|
||||||
|
@mock.patch('osc_lib.utils.sort_items')
|
||||||
|
def test_event_list_sort_multiple(self, mock_sort_items):
|
||||||
|
arglist = ['my_stack', '--sort', 'resource_name:desc',
|
||||||
|
'--sort', 'id:asc', '--format', 'table']
|
||||||
|
parsed_args = self.check_parser(self.cmd, arglist, [])
|
||||||
|
|
||||||
|
mock_event = self.MockEvent()
|
||||||
|
mock_sort_items.return_value = [mock_event]
|
||||||
|
columns, data = self.cmd.take_action(parsed_args)
|
||||||
|
|
||||||
|
mock_sort_items.assert_called_with(mock.ANY,
|
||||||
|
"resource_name:desc,id:asc")
|
||||||
|
self.event_client.list.assert_called_with(**self.defaults)
|
||||||
|
self.assertEqual(self.fields, columns)
|
||||||
|
|
||||||
|
@mock.patch('osc_lib.utils.sort_items')
|
||||||
|
def test_event_list_sort_default_key(self, mock_sort_items):
|
||||||
|
arglist = ['my_stack', '--sort', ':desc',
|
||||||
|
'--format', 'table']
|
||||||
|
parsed_args = self.check_parser(self.cmd, arglist, [])
|
||||||
|
|
||||||
|
mock_event = self.MockEvent()
|
||||||
|
mock_sort_items.return_value = [mock_event]
|
||||||
|
columns, data = self.cmd.take_action(parsed_args)
|
||||||
|
|
||||||
|
mock_sort_items.assert_called_with(mock.ANY, "event_time:desc")
|
||||||
self.event_client.list.assert_called_with(**self.defaults)
|
self.event_client.list.assert_called_with(**self.defaults)
|
||||||
self.assertEqual(self.fields, columns)
|
self.assertEqual(self.fields, columns)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue