Merge "Handle case where the Nova AZ extension is disabled"
This commit is contained in:
commit
0a8d40d909
@ -382,13 +382,12 @@ class Instance(resource.Resource, sh.SchedulerHintsMixin):
|
|||||||
if availability_zone is None:
|
if availability_zone is None:
|
||||||
try:
|
try:
|
||||||
server = self.client().servers.get(self.resource_id)
|
server = self.client().servers.get(self.resource_id)
|
||||||
availability_zone = getattr(server,
|
|
||||||
'OS-EXT-AZ:availability_zone')
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.client_plugin().ignore_not_found(e)
|
self.client_plugin().ignore_not_found(e)
|
||||||
return
|
return
|
||||||
|
# Default to None if Nova's
|
||||||
return availability_zone
|
# OS-EXT-AZ:availability_zone extension is disabled
|
||||||
|
return getattr(server, 'OS-EXT-AZ:availability_zone', None)
|
||||||
|
|
||||||
def _resolve_attribute(self, name):
|
def _resolve_attribute(self, name):
|
||||||
res = None
|
res = None
|
||||||
|
@ -399,6 +399,19 @@ class InstancesTest(common.HeatTestCase):
|
|||||||
self.assertEqual(expected_az, actual_az)
|
self.assertEqual(expected_az, actual_az)
|
||||||
self.m.VerifyAll()
|
self.m.VerifyAll()
|
||||||
|
|
||||||
|
def test_instance_create_resolve_az_attribute_nova_az_ext_disabled(self):
|
||||||
|
return_server = self.fc.servers.list()[1]
|
||||||
|
delattr(return_server, 'OS-EXT-AZ:availability_zone')
|
||||||
|
instance = self._setup_test_instance(return_server,
|
||||||
|
'create_resolve_az_attribute')
|
||||||
|
self.patchobject(self.fc.servers, 'get',
|
||||||
|
return_value=return_server)
|
||||||
|
self.m.ReplayAll()
|
||||||
|
scheduler.TaskRunner(instance.create)()
|
||||||
|
|
||||||
|
self.assertIsNone(instance._availability_zone())
|
||||||
|
self.m.VerifyAll()
|
||||||
|
|
||||||
def test_instance_create_image_name_err(self):
|
def test_instance_create_image_name_err(self):
|
||||||
stack_name = 'test_instance_create_image_name_err_stack'
|
stack_name = 'test_instance_create_image_name_err_stack'
|
||||||
(tmpl, stack) = self._setup_test_stack(stack_name)
|
(tmpl, stack) = self._setup_test_stack(stack_name)
|
||||||
|
Loading…
Reference in New Issue
Block a user