diff options
| author | Jenkins <jenkins@review.openstack.org> | 2012-08-10 23:05:02 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2012-08-10 23:05:02 +0000 |
| commit | 95dbc97a2ce7a9be585c7e7fe44ff0b9e8594b30 (patch) | |
| tree | a78bed1737bfc6db9fcafa593b16d47414f8fb40 | |
| parent | faa0b5e88bba74437599ff3e7f250b6eb359339f (diff) | |
| parent | f54a91603933a9a67ee3ed7bb0010017bcc1193e (diff) | |
| download | nova-95dbc97a2ce7a9be585c7e7fe44ff0b9e8594b30.tar.gz nova-95dbc97a2ce7a9be585c7e7fe44ff0b9e8594b30.tar.xz nova-95dbc97a2ce7a9be585c7e7fe44ff0b9e8594b30.zip | |
Merge "Don't accept scheduler_hints if not enabled"
| -rw-r--r-- | nova/api/openstack/compute/servers.py | 5 | ||||
| -rw-r--r-- | nova/tests/api/openstack/compute/test_servers.py | 25 |
2 files changed, 29 insertions, 1 deletions
diff --git a/nova/api/openstack/compute/servers.py b/nova/api/openstack/compute/servers.py index b378d4139..41742df15 100644 --- a/nova/api/openstack/compute/servers.py +++ b/nova/api/openstack/compute/servers.py @@ -666,7 +666,10 @@ class Controller(wsgi.Controller): min_count = max_count auto_disk_config = server_dict.get('auto_disk_config') - scheduler_hints = server_dict.get('scheduler_hints', {}) + + scheduler_hints = {} + if self.ext_mgr.is_loaded('os-scheduler-hints'): + scheduler_hints = server_dict.get('scheduler_hints', {}) try: _get_inst_type = instance_types.get_instance_type_by_flavor_id diff --git a/nova/tests/api/openstack/compute/test_servers.py b/nova/tests/api/openstack/compute/test_servers.py index 6e81d99bc..86312d6b5 100644 --- a/nova/tests/api/openstack/compute/test_servers.py +++ b/nova/tests/api/openstack/compute/test_servers.py @@ -1787,6 +1787,31 @@ class ServersControllerCreateTest(test.TestCase): self.stubs.Set(nova.compute.api.API, 'create', create) self._test_create_extra(params) + def test_create_instance_with_scheduler_hints_enabled(self): + self.ext_mgr.extensions = {'os-scheduler-hints': 'fake'} + hints = {'a': 'b'} + params = {'scheduler_hints': hints} + old_create = nova.compute.api.API.create + + def create(*args, **kwargs): + self.assertEqual(kwargs['scheduler_hints'], hints) + return old_create(*args, **kwargs) + + self.stubs.Set(nova.compute.api.API, 'create', create) + self._test_create_extra(params) + + def test_create_instance_with_scheduler_hints_disabled(self): + hints = {'a': 'b'} + params = {'scheduler_hints': hints} + old_create = nova.compute.api.API.create + + def create(*args, **kwargs): + self.assertEqual(kwargs['scheduler_hints'], {}) + return old_create(*args, **kwargs) + + self.stubs.Set(nova.compute.api.API, 'create', create) + self._test_create_extra(params) + def test_create_instance_with_volumes_enabled(self): self.ext_mgr.extensions = {'os-volumes': 'fake'} bdm = [{'device_name': 'foo'}] |
