diff options
| author | Dan Prince <dan.prince@rackspace.com> | 2011-03-17 22:24:08 +0000 |
|---|---|---|
| committer | Tarmac <> | 2011-03-17 22:24:08 +0000 |
| commit | d6e6ba0780faa962b35635dbd9f62818a98f5313 (patch) | |
| tree | de4033b9219161ed9b0f36d8a8cdab6b1a0666e7 /nova | |
| parent | 0d40b15dc011324a4ebf7a7c6150cf3e4fd151d9 (diff) | |
| parent | ca267d0e52ed721f1236dc4b6030433fe92d0d51 (diff) | |
| download | nova-d6e6ba0780faa962b35635dbd9f62818a98f5313.tar.gz nova-d6e6ba0780faa962b35635dbd9f62818a98f5313.tar.xz nova-d6e6ba0780faa962b35635dbd9f62818a98f5313.zip | |
Update the Openstack API to handle case where personality is set but null in the request to create a server.
Diffstat (limited to 'nova')
| -rw-r--r-- | nova/api/openstack/servers.py | 7 | ||||
| -rw-r--r-- | nova/tests/api/openstack/test_servers.py | 9 |
2 files changed, 14 insertions, 2 deletions
diff --git a/nova/api/openstack/servers.py b/nova/api/openstack/servers.py index 2fbe02d9a..830bc2659 100644 --- a/nova/api/openstack/servers.py +++ b/nova/api/openstack/servers.py @@ -134,8 +134,10 @@ class Controller(wsgi.Controller): for k, v in env['server']['metadata'].items(): metadata.append({'key': k, 'value': v}) - personality = env['server'].get('personality', []) - injected_files = self._get_injected_files(personality) + personality = env['server'].get('personality') + injected_files = [] + if personality: + injected_files = self._get_injected_files(personality) try: instances = self.compute_api.create( @@ -183,6 +185,7 @@ class Controller(wsgi.Controller): underlying compute service. """ injected_files = [] + for item in personality: try: path = item['path'] diff --git a/nova/tests/api/openstack/test_servers.py b/nova/tests/api/openstack/test_servers.py index 6afe145b6..a5fd4140f 100644 --- a/nova/tests/api/openstack/test_servers.py +++ b/nova/tests/api/openstack/test_servers.py @@ -1126,6 +1126,15 @@ class TestServerInstanceCreation(test.TestCase): self.assertEquals(response.status_int, 400) self.assertEquals(injected_files, None) + def test_create_instance_with_null_personality(self): + personality = None + body_dict = self._create_personality_request_dict(personality) + body_dict['server']['personality'] = None + request = self._get_create_request_json(body_dict) + compute_api, response = \ + self._run_create_instance_with_mock_compute_api(request) + self.assertEquals(response.status_int, 200) + def test_create_instance_with_three_personalities(self): files = [ ('/etc/sudoers', 'ALL ALL=NOPASSWD: ALL\n'), |
