Fix up image and flavor by name in create_server
Nodepool has a problem with passing in {'id': image.id} which is what the stated workaround for excess API calls is. Fix the call, and add a functional test that should catch this. Change-Id: I4938037decf51001ab5789ee383f6c7ed34889b1
This commit is contained in:
parent
28f6e66621
commit
4decd44861
@ -4520,11 +4520,11 @@ class OpenStackCloud(object):
|
|||||||
|
|
||||||
if image:
|
if image:
|
||||||
if isinstance(image, dict):
|
if isinstance(image, dict):
|
||||||
kwargs['image'] = image
|
kwargs['image'] = image['id']
|
||||||
else:
|
else:
|
||||||
kwargs['image'] = self.get_image(image)
|
kwargs['image'] = self.get_image(image)
|
||||||
if flavor and isinstance(flavor, dict):
|
if flavor and isinstance(flavor, dict):
|
||||||
kwargs['flavor'] = flavor
|
kwargs['flavor'] = flavor['id']
|
||||||
else:
|
else:
|
||||||
kwargs['flavor'] = self.get_flavor(flavor, get_extra=False)
|
kwargs['flavor'] = self.get_flavor(flavor, get_extra=False)
|
||||||
|
|
||||||
|
@ -70,6 +70,21 @@ class TestCompute(base.BaseFunctionalTestCase):
|
|||||||
self.demo_cloud.delete_server(self.server_name, wait=True))
|
self.demo_cloud.delete_server(self.server_name, wait=True))
|
||||||
self.assertIsNone(self.demo_cloud.get_server(self.server_name))
|
self.assertIsNone(self.demo_cloud.get_server(self.server_name))
|
||||||
|
|
||||||
|
def test_create_server_image_flavor_dict(self):
|
||||||
|
self.addCleanup(self._cleanup_servers_and_volumes, self.server_name)
|
||||||
|
server = self.demo_cloud.create_server(
|
||||||
|
name=self.server_name,
|
||||||
|
image={'id': self.image.id},
|
||||||
|
flavor={'id': self.flavor.id},
|
||||||
|
wait=True)
|
||||||
|
self.assertEqual(self.server_name, server['name'])
|
||||||
|
self.assertEqual(self.image.id, server['image']['id'])
|
||||||
|
self.assertEqual(self.flavor.id, server['flavor']['id'])
|
||||||
|
self.assertIsNotNone(server['adminPass'])
|
||||||
|
self.assertTrue(
|
||||||
|
self.demo_cloud.delete_server(self.server_name, wait=True))
|
||||||
|
self.assertIsNone(self.demo_cloud.get_server(self.server_name))
|
||||||
|
|
||||||
def test_get_server_console(self):
|
def test_get_server_console(self):
|
||||||
self.addCleanup(self._cleanup_servers_and_volumes, self.server_name)
|
self.addCleanup(self._cleanup_servers_and_volumes, self.server_name)
|
||||||
server = self.demo_cloud.create_server(
|
server = self.demo_cloud.create_server(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user