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(
|
||||
'--sort',
|
||||
metavar='<key>[:<direction>]',
|
||||
metavar='[<key>][:<direction>]',
|
||||
action='append',
|
||||
help=_('Sort output by selected keys and directions (asc or desc) '
|
||||
'(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(
|
||||
'--follow',
|
||||
|
@ -202,7 +206,13 @@ class ListEvent(command.Lister):
|
|||
limit=parsed_args.limit)
|
||||
|
||||
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':
|
||||
return [], events
|
||||
|
|
|
@ -182,13 +182,47 @@ class TestEventList(TestEvent):
|
|||
])
|
||||
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',
|
||||
'--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")
|
||||
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.assertEqual(self.fields, columns)
|
||||
|
||||
|
|
Loading…
Reference in New Issue