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
|
||||
elif i.field.startswith('metadata.'):
|
||||
metaquery[i.field] = i._get_value_as_type()
|
||||
elif i.field.startswith('resource_metadata.'):
|
||||
metaquery[i.field[9:]] = i._get_value_as_type()
|
||||
else:
|
||||
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),
|
||||
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):
|
||||
data = self.get_json('/meters/meter.test',
|
||||
q=[{'field': 'metadata.tag',
|
||||
|
Loading…
x
Reference in New Issue
Block a user