Merge "Support querying node history with sort_key and sort_dir"
This commit is contained in:
commit
eeed59435c
@ -2127,8 +2127,10 @@ class NodeHistoryController(rest.RestController):
|
||||
|
||||
@METRICS.timer('NodeHistoryController.get_all')
|
||||
@method.expose()
|
||||
@args.validate(detail=args.boolean, marker=args.uuid, limit=args.integer)
|
||||
def get_all(self, detail=False, marker=None, limit=None):
|
||||
@args.validate(detail=args.boolean, marker=args.uuid, limit=args.integer,
|
||||
sort_key=args.string, sort_dir=args.string)
|
||||
def get_all(self, detail=False, marker=None, limit=None,
|
||||
sort_key='created_at', sort_dir='asc'):
|
||||
"""List node history."""
|
||||
node = api_utils.check_node_policy_and_retrieve(
|
||||
'baremetal:node:history:get', self.node_ident)
|
||||
@ -2140,11 +2142,14 @@ class NodeHistoryController(rest.RestController):
|
||||
marker_obj = objects.NodeHistory.get_by_uuid(api.request.context,
|
||||
marker)
|
||||
limit = api_utils.validate_limit(limit)
|
||||
sort_dir = api_utils.validate_sort_dir(sort_dir)
|
||||
|
||||
events = objects.NodeHistory.list_by_node_id(api.request.context,
|
||||
node.id,
|
||||
marker=marker_obj,
|
||||
limit=limit)
|
||||
limit=limit,
|
||||
sort_key=sort_key,
|
||||
sort_dir=sort_dir)
|
||||
|
||||
return collection.list_convert_with_links(
|
||||
items=[
|
||||
@ -2156,6 +2161,8 @@ class NodeHistoryController(rest.RestController):
|
||||
fields=fields,
|
||||
marker=marker_obj,
|
||||
limit=limit,
|
||||
sort_key=sort_key,
|
||||
sort_dir=sort_dir
|
||||
)
|
||||
|
||||
@METRICS.timer('NodeHistoryController.get_one')
|
||||
|
@ -8425,6 +8425,18 @@ class TestNodeHistory(test_api_base.BaseApiTest):
|
||||
headers={api_base.Version.string: self.version})
|
||||
self.assertEqual({'history': []}, ret)
|
||||
|
||||
def test_get_all_history_with_sort(self):
|
||||
self._add_history_entries()
|
||||
# sort_key defaults to created_at
|
||||
ret = self.get_json(
|
||||
'/nodes/{}/history?sort_dir=desc'.format(
|
||||
self.node.uuid),
|
||||
headers={api_base.Version.string: self.version})
|
||||
self.assertEqual(
|
||||
[self.event3.uuid, self.event2.uuid, self.event1.uuid],
|
||||
[h['uuid'] for h in ret['history']]
|
||||
)
|
||||
|
||||
def test_get_all_old_version(self):
|
||||
ret = self.get_json('/nodes/%s/history' % self.node.uuid,
|
||||
headers={api_base.Version.string: "1.77"},
|
||||
|
@ -0,0 +1,4 @@
|
||||
---
|
||||
features:
|
||||
- |
|
||||
Node history API now support querying with sort_key and sort_dir.
|
Loading…
x
Reference in New Issue
Block a user