Update the Openstack API to handle case where personality is set but null in the request to create a server.

This commit is contained in:
Dan Prince 2011-03-17 22:24:08 +00:00 committed by Tarmac
commit d6e6ba0780
2 changed files with 14 additions and 2 deletions

View File

@ -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']

View File

@ -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'),