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:
|
||||
try:
|
||||
server = self.client().servers.get(self.resource_id)
|
||||
availability_zone = getattr(server,
|
||||
'OS-EXT-AZ:availability_zone')
|
||||
except Exception as e:
|
||||
self.client_plugin().ignore_not_found(e)
|
||||
return
|
||||
|
||||
return availability_zone
|
||||
# Default to None if Nova's
|
||||
# OS-EXT-AZ:availability_zone extension is disabled
|
||||
return getattr(server, 'OS-EXT-AZ:availability_zone', None)
|
||||
|
||||
def _resolve_attribute(self, name):
|
||||
res = None
|
||||
|
@ -399,6 +399,19 @@ class InstancesTest(common.HeatTestCase):
|
||||
self.assertEqual(expected_az, actual_az)
|
||||
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):
|
||||
stack_name = 'test_instance_create_image_name_err_stack'
|
||||
(tmpl, stack) = self._setup_test_stack(stack_name)
|
||||
|
Loading…
Reference in New Issue
Block a user