summaryrefslogtreecommitdiffstats
path: root/nova
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-09-05 21:06:18 +0000
committerGerrit Code Review <review@openstack.org>2012-09-05 21:06:18 +0000
commit936d0a49594e04e3ec08c7a2115784d072e61dee (patch)
treec49faa3c90ecdb7f057df481980bd1727b907a2e /nova
parentfd893daa473d22b474b36ddcee5c71ce61bee320 (diff)
parent851705db9596a418b0ea3928654e88fe84a23e52 (diff)
Merge "Add scope to extra_specs entries"
Diffstat (limited to 'nova')
-rw-r--r--nova/scheduler/filters/aggregate_instance_extra_specs.py2
-rw-r--r--nova/scheduler/filters/compute_capabilities_filter.py2
-rw-r--r--nova/scheduler/filters/trusted_filter.py2
-rw-r--r--nova/tests/scheduler/test_host_filters.py21
4 files changed, 17 insertions, 10 deletions
diff --git a/nova/scheduler/filters/aggregate_instance_extra_specs.py b/nova/scheduler/filters/aggregate_instance_extra_specs.py
index 51eb22482..e09cc040b 100644
--- a/nova/scheduler/filters/aggregate_instance_extra_specs.py
+++ b/nova/scheduler/filters/aggregate_instance_extra_specs.py
@@ -40,6 +40,8 @@ class AggregateInstanceExtraSpecsFilter(filters.BaseHostFilter):
metadata = db.aggregate_metadata_get_by_host(context, host_state.host)
for key, req in instance_type['extra_specs'].iteritems():
+ if key.count(':'):
+ continue
aggregate_vals = metadata.get(key, None)
if not aggregate_vals:
LOG.debug(_("%(host_state)s fails instance_type extra_specs "
diff --git a/nova/scheduler/filters/compute_capabilities_filter.py b/nova/scheduler/filters/compute_capabilities_filter.py
index b4c044370..1bb5dae68 100644
--- a/nova/scheduler/filters/compute_capabilities_filter.py
+++ b/nova/scheduler/filters/compute_capabilities_filter.py
@@ -31,6 +31,8 @@ class ComputeCapabilitiesFilter(filters.BaseHostFilter):
return True
for key, req in instance_type['extra_specs'].iteritems():
+ if key.count(':'):
+ continue
cap = capabilities.get(key, None)
if not extra_specs_ops.match(cap, req):
return False
diff --git a/nova/scheduler/filters/trusted_filter.py b/nova/scheduler/filters/trusted_filter.py
index d4085b7f4..99fc289a0 100644
--- a/nova/scheduler/filters/trusted_filter.py
+++ b/nova/scheduler/filters/trusted_filter.py
@@ -199,7 +199,7 @@ class TrustedFilter(filters.BaseHostFilter):
def host_passes(self, host_state, filter_properties):
instance = filter_properties.get('instance_type', {})
extra = instance.get('extra_specs', {})
- trust = extra.get('trusted_host')
+ trust = extra.get('trust:trusted_host')
host = host_state.host
if trust:
return self._is_trusted(host, trust)
diff --git a/nova/tests/scheduler/test_host_filters.py b/nova/tests/scheduler/test_host_filters.py
index 69de5bb87..b87db7b06 100644
--- a/nova/tests/scheduler/test_host_filters.py
+++ b/nova/tests/scheduler/test_host_filters.py
@@ -693,13 +693,13 @@ class HostFiltersTestCase(test.TestCase):
def test_compute_filter_passes_extra_specs_simple(self):
self._do_test_compute_filter_extra_specs(
ecaps={'opt1': '1', 'opt2': '2'},
- especs={'opt1': '1', 'opt2': '2'},
+ especs={'opt1': '1', 'opt2': '2', 'trust:trusted_host': 'true'},
passes=True)
def test_compute_filter_fails_extra_specs_simple(self):
self._do_test_compute_filter_extra_specs(
ecaps={'opt1': '1', 'opt2': '2'},
- especs={'opt1': '1', 'opt2': '222'},
+ especs={'opt1': '1', 'opt2': '222', 'trust:trusted_host': 'true'},
passes=False)
def test_aggregate_filter_passes_no_extra_specs(self):
@@ -736,7 +736,8 @@ class HostFiltersTestCase(test.TestCase):
def test_aggregate_filter_fails_extra_specs_deleted_host(self):
self._stub_service_is_up(True)
filt_cls = self.class_map['AggregateInstanceExtraSpecsFilter']()
- extra_specs = {'opt1': 's== 1', 'opt2': 's== 2'}
+ extra_specs = {'opt1': 's== 1', 'opt2': 's== 2',
+ 'trust:trusted_host': 'true'}
self._create_aggregate_with_host(metadata={'opt1': '1'})
agg2 = self._create_aggregate_with_host(name='fake2',
metadata={'opt2': '2'})
@@ -749,13 +750,15 @@ class HostFiltersTestCase(test.TestCase):
def test_aggregate_filter_passes_extra_specs_simple(self):
self._do_test_aggregate_filter_extra_specs(
emeta={'opt1': '1', 'opt2': '2'},
- especs={'opt1': '1', 'opt2': '2'},
+ especs={'opt1': '1', 'opt2': '2',
+ 'trust:trusted_host': 'true'},
passes=True)
def test_aggregate_filter_fails_extra_specs_simple(self):
self._do_test_aggregate_filter_extra_specs(
emeta={'opt1': '1', 'opt2': '2'},
- especs={'opt1': '1', 'opt2': '222'},
+ especs={'opt1': '1', 'opt2': '222',
+ 'trust:trusted_host': 'true'},
passes=False)
def test_isolated_hosts_fails_isolated_on_non_isolated(self):
@@ -1116,7 +1119,7 @@ class HostFiltersTestCase(test.TestCase):
DATA = '{"hosts":[{"host_name":"host1","trust_lvl":"trusted"}]}'
self._stub_service_is_up(True)
filt_cls = self.class_map['TrustedFilter']()
- extra_specs = {'trusted_host': 'trusted'}
+ extra_specs = {'trust:trusted_host': 'trusted'}
filter_properties = {'instance_type': {'memory_mb': 1024,
'extra_specs': extra_specs}}
host = fakes.FakeHostState('host1', 'compute', {})
@@ -1127,7 +1130,7 @@ class HostFiltersTestCase(test.TestCase):
DATA = '{"hosts":[{"host_name":"host1","trust_lvl":"untrusted"}]}'
self._stub_service_is_up(True)
filt_cls = self.class_map['TrustedFilter']()
- extra_specs = {'trusted_host': 'trusted'}
+ extra_specs = {'trust:trusted_host': 'trusted'}
filter_properties = {'instance_type': {'memory_mb': 1024,
'extra_specs': extra_specs}}
host = fakes.FakeHostState('host1', 'compute', {})
@@ -1138,7 +1141,7 @@ class HostFiltersTestCase(test.TestCase):
DATA = '{"hosts":[{"host_name":"host1","trust_lvl":"trusted"}]}'
self._stub_service_is_up(True)
filt_cls = self.class_map['TrustedFilter']()
- extra_specs = {'trusted_host': 'untrusted'}
+ extra_specs = {'trust:trusted_host': 'untrusted'}
filter_properties = {'instance_type': {'memory_mb': 1024,
'extra_specs': extra_specs}}
host = fakes.FakeHostState('host1', 'compute', {})
@@ -1149,7 +1152,7 @@ class HostFiltersTestCase(test.TestCase):
DATA = '{"hosts":[{"host_name":"host1","trust_lvl":"untrusted"}]}'
self._stub_service_is_up(True)
filt_cls = self.class_map['TrustedFilter']()
- extra_specs = {'trusted_host': 'untrusted'}
+ extra_specs = {'trust:trusted_host': 'untrusted'}
filter_properties = {'instance_type': {'memory_mb': 1024,
'extra_specs': extra_specs}}
host = fakes.FakeHostState('host1', 'compute', {})