api: allow usage of resource_metadata in query
When returning samples, they have a field called resource_metadata, and therefore it may seem nature to filter on it using this as a prefix in queries. Let's allow use of it. Fixes-Bug: #1195765 Change-Id: I82f591e0d38a3063a9762de1ac64dc3ef9d29ee7
This commit is contained in:
parent
3eadb6b07d
commit
502824ad2c
@ -256,6 +256,8 @@ def _query_to_kwargs(query, db_func):
|
|||||||
stamp['search_offset'] = i.value
|
stamp['search_offset'] = i.value
|
||||||
elif i.field.startswith('metadata.'):
|
elif i.field.startswith('metadata.'):
|
||||||
metaquery[i.field] = i._get_value_as_type()
|
metaquery[i.field] = i._get_value_as_type()
|
||||||
|
elif i.field.startswith('resource_metadata.'):
|
||||||
|
metaquery[i.field[9:]] = i._get_value_as_type()
|
||||||
else:
|
else:
|
||||||
trans[translation.get(i.field, i.field)] = i.value
|
trans[translation.get(i.field, i.field)] = i.value
|
||||||
|
|
||||||
|
@ -173,6 +173,20 @@ class TestListMeters(FunctionalTest,
|
|||||||
self.assertEqual(set(r['counter_name'] for r in data),
|
self.assertEqual(set(r['counter_name'] for r in data),
|
||||||
set(['meter.test']))
|
set(['meter.test']))
|
||||||
|
|
||||||
|
def test_list_meters_resource_metadata_query(self):
|
||||||
|
# NOTE(jd) Same test as above, but with the alias resource_metadata
|
||||||
|
# as query field
|
||||||
|
data = self.get_json('/meters/meter.test',
|
||||||
|
q=[{'field': 'resource_metadata.tag',
|
||||||
|
'op': 'eq',
|
||||||
|
'value': 'self.sample1',
|
||||||
|
}],)
|
||||||
|
self.assertEqual(1, len(data))
|
||||||
|
self.assertEqual(set(r['resource_id'] for r in data),
|
||||||
|
set(['resource-id']))
|
||||||
|
self.assertEqual(set(r['counter_name'] for r in data),
|
||||||
|
set(['meter.test']))
|
||||||
|
|
||||||
def test_list_meters_multi_metadata_query(self):
|
def test_list_meters_multi_metadata_query(self):
|
||||||
data = self.get_json('/meters/meter.test',
|
data = self.get_json('/meters/meter.test',
|
||||||
q=[{'field': 'metadata.tag',
|
q=[{'field': 'metadata.tag',
|
||||||
|
Loading…
x
Reference in New Issue
Block a user