Add sort_keys retrieving function
This patch provides a tool function to retrieve valid sort keys from `attr_info` dict. And it's necessary prerequisite to fix bug-1659175. Related-bug: #1659175 Change-Id: I5ef7a0730122011f5ef18c1b4e2c0bfe82ed585b
This commit is contained in:
parent
b04ea0d031
commit
65264a936a
|
@ -297,3 +297,16 @@ def _core_resource_attributes():
|
||||||
|
|
||||||
# populate core resources into singleton global
|
# populate core resources into singleton global
|
||||||
RESOURCES = _core_resource_attributes()
|
RESOURCES = _core_resource_attributes()
|
||||||
|
|
||||||
|
|
||||||
|
def retrieve_valid_sort_keys(attr_info):
|
||||||
|
"""Retrieve sort keys from `attr_info` dict.
|
||||||
|
|
||||||
|
Iterate the `attr_info`, filter and return the attributes that are
|
||||||
|
defined with `is_sort_key=True`.
|
||||||
|
|
||||||
|
:param attr_info: The attribute dict for common neutron resource.
|
||||||
|
:returns: Set of sort keys.
|
||||||
|
"""
|
||||||
|
return set(attr for attr, schema in attr_info.items()
|
||||||
|
if schema.get('is_sort_key', False))
|
||||||
|
|
|
@ -321,3 +321,26 @@ class TestValidatePriviliges(base.BaseTestCase):
|
||||||
attributes._validate_privileges(ctx, res_dict)
|
attributes._validate_privileges(ctx, res_dict)
|
||||||
except exc.HTTPBadRequest:
|
except exc.HTTPBadRequest:
|
||||||
self.fail("HTTPBadRequest exception should not be raised.")
|
self.fail("HTTPBadRequest exception should not be raised.")
|
||||||
|
|
||||||
|
|
||||||
|
class TestRetrieveValidSortKeys(base.BaseTestCase):
|
||||||
|
|
||||||
|
def test_retrieve_valid_sort_keys(self):
|
||||||
|
attr_info = {
|
||||||
|
"id": {
|
||||||
|
"visible": True,
|
||||||
|
"is_sort_key": True
|
||||||
|
},
|
||||||
|
"name": {
|
||||||
|
"is_sort_key": True
|
||||||
|
},
|
||||||
|
"created_at": {
|
||||||
|
"is_sort_key": False
|
||||||
|
},
|
||||||
|
"tenant_id": {
|
||||||
|
"visible": True,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
expect_val = set(["id", "name"])
|
||||||
|
actual_val = attributes.retrieve_valid_sort_keys(attr_info)
|
||||||
|
self.assertEqual(expect_val, actual_val)
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
A new method ``retrieve_valid_sort_keys`` was added to ``neutron_lib.api.attributes``.
|
||||||
|
This method can help retrieve valid sort keys from a given resource attribute map.
|
Loading…
Reference in New Issue