From dec1531f1defacfba77454c05acef229dab9bc06 Mon Sep 17 00:00:00 2001 From: Nachi Ueno Date: Fri, 10 Aug 2012 23:04:58 +0000 Subject: Key config_drive off of config-drive extension partially implements blueprint disable-server-extensions Change-Id: I42743efeb74b3286c158589eb6af7b1d9ba215d5 --- nova/api/openstack/compute/servers.py | 4 +++- nova/tests/api/openstack/compute/test_servers.py | 16 ++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/nova/api/openstack/compute/servers.py b/nova/api/openstack/compute/servers.py index 6756338d8..85231a3ed 100644 --- a/nova/api/openstack/compute/servers.py +++ b/nova/api/openstack/compute/servers.py @@ -604,7 +604,9 @@ class Controller(wsgi.Controller): image_href = self._image_uuid_from_href(image_href) personality = server_dict.get('personality') - config_drive = server_dict.get('config_drive') + config_drive = None + if self.ext_mgr.is_loaded('os-config-drive'): + config_drive = server_dict.get('config_drive') injected_files = [] if personality: diff --git a/nova/tests/api/openstack/compute/test_servers.py b/nova/tests/api/openstack/compute/test_servers.py index edd53446a..6c471bcba 100644 --- a/nova/tests/api/openstack/compute/test_servers.py +++ b/nova/tests/api/openstack/compute/test_servers.py @@ -2230,6 +2230,7 @@ class ServersControllerCreateTest(test.TestCase): self.controller.create, req, body) def test_create_instance_with_config_drive(self): + self.ext_mgr.extensions = {'os-config-drive': 'fake'} image_href = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6' flavor_ref = 'http://localhost/v2/fake/flavors/3' body = { @@ -2256,6 +2257,7 @@ class ServersControllerCreateTest(test.TestCase): self.assertEqual(FAKE_UUID, server['id']) def test_create_instance_with_config_drive_as_id(self): + self.ext_mgr.extensions = {'os-config-drive': 'fake'} image_href = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6' flavor_ref = 'http://localhost/v2/fake/flavors/3' body = { @@ -2282,6 +2284,7 @@ class ServersControllerCreateTest(test.TestCase): self.assertEqual(FAKE_UUID, server['id']) def test_create_instance_with_bad_config_drive(self): + self.ext_mgr.extensions = {'os-config-drive': 'fake'} image_href = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6' flavor_ref = 'http://localhost/v2/fake/flavors/3' body = { @@ -2307,6 +2310,7 @@ class ServersControllerCreateTest(test.TestCase): self.controller.create, req, body) def test_create_instance_without_config_drive(self): + self.ext_mgr.extensions = {'os-config-drive': 'fake'} image_href = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6' flavor_ref = 'http://localhost/v2/fake/flavors/3' body = { @@ -2332,6 +2336,18 @@ class ServersControllerCreateTest(test.TestCase): server = res['server'] self.assertEqual(FAKE_UUID, server['id']) + def test_create_instance_with_config_drive_disabled(self): + config_drive = [{'config_drive': 'foo'}] + params = {'config_drive': config_drive} + old_create = nova.compute.api.API.create + + def create(*args, **kwargs): + self.assertEqual(kwargs['config_drive'], None) + return old_create(*args, **kwargs) + + self.stubs.Set(nova.compute.api.API, 'create', create) + self._test_create_extra(params) + def test_create_instance_bad_href(self): image_href = 'asdf' flavor_ref = 'http://localhost/v2/flavors/3' -- cgit