summaryrefslogtreecommitdiffstats
path: root/nova
diff options
context:
space:
mode:
authorDan Prince <dan.prince@rackspace.com>2011-03-17 22:24:08 +0000
committerTarmac <>2011-03-17 22:24:08 +0000
commitd6e6ba0780faa962b35635dbd9f62818a98f5313 (patch)
treede4033b9219161ed9b0f36d8a8cdab6b1a0666e7 /nova
parent0d40b15dc011324a4ebf7a7c6150cf3e4fd151d9 (diff)
parentca267d0e52ed721f1236dc4b6030433fe92d0d51 (diff)
downloadnova-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.py7
-rw-r--r--nova/tests/api/openstack/test_servers.py9
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'),