summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-06-18 22:05:05 +0000
committerGerrit Code Review <review@openstack.org>2013-06-18 22:05:05 +0000
commitcd74b67c33b0062e4f7dbb04e512f205da9e1e9a (patch)
tree8daf717679a6f693b24a756f8487a1c34c1e1fa0
parent888d4be61fb49b2fff9bd4cb28c5f1bacfb4f4d6 (diff)
parente5e0fddad9ac208087f4e5b5c644575ad6d5c796 (diff)
downloadnova-cd74b67c33b0062e4f7dbb04e512f205da9e1e9a.tar.gz
nova-cd74b67c33b0062e4f7dbb04e512f205da9e1e9a.tar.xz
nova-cd74b67c33b0062e4f7dbb04e512f205da9e1e9a.zip
Merge "Fix flavor extra_specs filter doesn't work for number"
-rw-r--r--nova/scheduler/filters/compute_capabilities_filter.py2
-rw-r--r--nova/tests/scheduler/test_host_filters.py13
2 files changed, 9 insertions, 6 deletions
diff --git a/nova/scheduler/filters/compute_capabilities_filter.py b/nova/scheduler/filters/compute_capabilities_filter.py
index 7fb5725b6..36629435c 100644
--- a/nova/scheduler/filters/compute_capabilities_filter.py
+++ b/nova/scheduler/filters/compute_capabilities_filter.py
@@ -46,7 +46,7 @@ class ComputeCapabilitiesFilter(filters.BaseHostFilter):
return False
if cap is None:
return False
- if not extra_specs_ops.match(cap, req):
+ if not extra_specs_ops.match(str(cap), req):
return False
return True
diff --git a/nova/tests/scheduler/test_host_filters.py b/nova/tests/scheduler/test_host_filters.py
index b09e23f1d..9306615ed 100644
--- a/nova/tests/scheduler/test_host_filters.py
+++ b/nova/tests/scheduler/test_host_filters.py
@@ -708,6 +708,9 @@ class HostFiltersTestCase(test.NoDBTestCase):
self.assertFalse(filt_cls.host_passes(host, filter_properties))
def _do_test_compute_filter_extra_specs(self, ecaps, especs, passes):
+ """In real Openstack runtime environment,compute capabilities
+ value may be number, so we should use number to do unit test.
+ """
self._stub_service_is_up(True)
filt_cls = self.class_map['ComputeCapabilitiesFilter']()
capabilities = {'enabled': True}
@@ -723,33 +726,33 @@ class HostFiltersTestCase(test.NoDBTestCase):
def test_compute_filter_passes_extra_specs_simple(self):
self._do_test_compute_filter_extra_specs(
- ecaps={'opt1': '1', 'opt2': '2'},
+ ecaps={'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'},
+ ecaps={'opt1': 1, 'opt2': 2},
especs={'opt1': '1', 'opt2': '222', 'trust:trusted_host': 'true'},
passes=False)
def test_compute_filter_pass_extra_specs_simple_with_scope(self):
self._do_test_compute_filter_extra_specs(
- ecaps={'opt1': '1', 'opt2': '2'},
+ ecaps={'opt1': 1, 'opt2': 2},
especs={'capabilities:opt1': '1',
'trust:trusted_host': 'true'},
passes=True)
def test_compute_filter_extra_specs_simple_with_wrong_scope(self):
self._do_test_compute_filter_extra_specs(
- ecaps={'opt1': '1', 'opt2': '2'},
+ ecaps={'opt1': 1, 'opt2': 2},
especs={'wrong_scope:opt1': '1',
'trust:trusted_host': 'true'},
passes=True)
def test_compute_filter_extra_specs_pass_multi_level_with_scope(self):
self._do_test_compute_filter_extra_specs(
- ecaps={'opt1': {'a': '1', 'b': {'aa': '2'}}, 'opt2': '2'},
+ ecaps={'opt1': {'a': 1, 'b': {'aa': 2}}, 'opt2': 2},
especs={'opt1:a': '1', 'capabilities:opt1:b:aa': '2',
'trust:trusted_host': 'true'},
passes=True)