Merge "Ensure anti affinity scheduling works" into stable/grizzly
This commit is contained in:
commit
4655df12b9
|
@ -240,7 +240,7 @@ def exact_filter(query, model, filters, legal_keys):
|
|||
# OK, filtering on this key; what value do we search for?
|
||||
value = filters.pop(key)
|
||||
|
||||
if key == 'metadata':
|
||||
if key == 'metadata' or key == 'system_metadata':
|
||||
column_attr = getattr(model, key)
|
||||
if isinstance(value, list):
|
||||
for item in value:
|
||||
|
@ -1691,7 +1691,8 @@ def instance_get_all_by_filters(context, filters, sort_key, sort_dir,
|
|||
# For other filters that don't match this, we will do regexp matching
|
||||
exact_match_filter_names = ['project_id', 'user_id', 'image_ref',
|
||||
'vm_state', 'instance_type_id', 'uuid',
|
||||
'metadata', 'task_state']
|
||||
'metadata', 'host', 'task_state',
|
||||
'system_metadata']
|
||||
|
||||
# Filter the query
|
||||
query_prefix = exact_filter(query_prefix, models.Instance,
|
||||
|
|
|
@ -144,7 +144,7 @@ class Scheduler(object):
|
|||
|
||||
# The system_metadata 'group' will be filtered
|
||||
members = db.instance_get_all_by_filters(context,
|
||||
{'deleted': False, 'group': group})
|
||||
{'deleted': False, 'system_metadata': {'group': group}})
|
||||
return [member['host']
|
||||
for member in members
|
||||
if member.get('host') is not None]
|
||||
|
|
|
@ -181,6 +181,14 @@ class DbApiTestCase(DbTestCase):
|
|||
{'metadata': {'foo': 'bar'}})
|
||||
self.assertEqual(1, len(result))
|
||||
|
||||
def test_instance_get_all_by_filters_system_metadata(self):
|
||||
instance = self.create_instances_with_args(
|
||||
system_metadata={'foo': 'bar'})
|
||||
self.create_instances_with_args()
|
||||
result = db.instance_get_all_by_filters(self.context,
|
||||
{'system_metadata': {'foo': 'bar'}})
|
||||
self.assertEqual(1, len(result))
|
||||
|
||||
def test_instance_get_all_by_filters_unicode_value(self):
|
||||
self.create_instances_with_args(display_name=u'test♥')
|
||||
result = db.instance_get_all_by_filters(self.context,
|
||||
|
|
Loading…
Reference in New Issue