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')
|
@METRICS.timer('NodeHistoryController.get_all')
|
||||||
@method.expose()
|
@method.expose()
|
||||||
@args.validate(detail=args.boolean, marker=args.uuid, limit=args.integer)
|
@args.validate(detail=args.boolean, marker=args.uuid, limit=args.integer,
|
||||||
def get_all(self, detail=False, marker=None, limit=None):
|
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."""
|
"""List node history."""
|
||||||
node = api_utils.check_node_policy_and_retrieve(
|
node = api_utils.check_node_policy_and_retrieve(
|
||||||
'baremetal:node:history:get', self.node_ident)
|
'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_obj = objects.NodeHistory.get_by_uuid(api.request.context,
|
||||||
marker)
|
marker)
|
||||||
limit = api_utils.validate_limit(limit)
|
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,
|
events = objects.NodeHistory.list_by_node_id(api.request.context,
|
||||||
node.id,
|
node.id,
|
||||||
marker=marker_obj,
|
marker=marker_obj,
|
||||||
limit=limit)
|
limit=limit,
|
||||||
|
sort_key=sort_key,
|
||||||
|
sort_dir=sort_dir)
|
||||||
|
|
||||||
return collection.list_convert_with_links(
|
return collection.list_convert_with_links(
|
||||||
items=[
|
items=[
|
||||||
@ -2156,6 +2161,8 @@ class NodeHistoryController(rest.RestController):
|
|||||||
fields=fields,
|
fields=fields,
|
||||||
marker=marker_obj,
|
marker=marker_obj,
|
||||||
limit=limit,
|
limit=limit,
|
||||||
|
sort_key=sort_key,
|
||||||
|
sort_dir=sort_dir
|
||||||
)
|
)
|
||||||
|
|
||||||
@METRICS.timer('NodeHistoryController.get_one')
|
@METRICS.timer('NodeHistoryController.get_one')
|
||||||
|
@ -8425,6 +8425,18 @@ class TestNodeHistory(test_api_base.BaseApiTest):
|
|||||||
headers={api_base.Version.string: self.version})
|
headers={api_base.Version.string: self.version})
|
||||||
self.assertEqual({'history': []}, ret)
|
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):
|
def test_get_all_old_version(self):
|
||||||
ret = self.get_json('/nodes/%s/history' % self.node.uuid,
|
ret = self.get_json('/nodes/%s/history' % self.node.uuid,
|
||||||
headers={api_base.Version.string: "1.77"},
|
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