diff options
| author | Jenkins <jenkins@review.openstack.org> | 2012-09-05 21:06:18 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2012-09-05 21:06:18 +0000 |
| commit | 936d0a49594e04e3ec08c7a2115784d072e61dee (patch) | |
| tree | c49faa3c90ecdb7f057df481980bd1727b907a2e /nova | |
| parent | fd893daa473d22b474b36ddcee5c71ce61bee320 (diff) | |
| parent | 851705db9596a418b0ea3928654e88fe84a23e52 (diff) | |
Merge "Add scope to extra_specs entries"
Diffstat (limited to 'nova')
| -rw-r--r-- | nova/scheduler/filters/aggregate_instance_extra_specs.py | 2 | ||||
| -rw-r--r-- | nova/scheduler/filters/compute_capabilities_filter.py | 2 | ||||
| -rw-r--r-- | nova/scheduler/filters/trusted_filter.py | 2 | ||||
| -rw-r--r-- | nova/tests/scheduler/test_host_filters.py | 21 |
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', {}) |
