Fix availability_zone issues in nova driver
When getting availability_zones from Nova, SDK will return an
object of AvailabilityZone class which is processed further by
SDK instead of a respond body from Nova.
Change-Id: Idf1eaf092b2bb860e1784604fd44d3974cd0572c
Closes-bug: #1680359
(cherry picked from commit 18c66f9db5
)
This commit is contained in:
parent
6de9fceaeb
commit
ce509a040a
|
@ -211,8 +211,7 @@ class NovaClient(base.DriverBase):
|
|||
:returns: A list of zones that are found available on Nova.
|
||||
"""
|
||||
known = self.availability_zone_list()
|
||||
names = [az['zoneName'] for az in known
|
||||
if az['zoneState']['available']]
|
||||
names = [az.name for az in known if az.state['available']]
|
||||
|
||||
found = []
|
||||
for az in azs:
|
||||
|
|
|
@ -425,12 +425,16 @@ class TestNovaV2(base.SenlinTestCase):
|
|||
def test_validate_azs(self):
|
||||
nc = nova_v2.NovaClient(self.conn_params)
|
||||
|
||||
fake_azs = [
|
||||
{'zoneState': {'available': 1}, 'zoneName': 'AZ1'},
|
||||
{'zoneState': {'available': 1}, 'zoneName': 'AZ2'},
|
||||
{'zoneState': {'available': 1}, 'zoneName': 'AZ3'},
|
||||
{'zoneState': {'available': 1}, 'zoneName': 'AZ4'}
|
||||
]
|
||||
az1 = mock.Mock()
|
||||
az1.name = 'AZ1'
|
||||
az1.state = {'available': True}
|
||||
az2 = mock.Mock()
|
||||
az2.name = 'AZ2'
|
||||
az2.state = {'available': True}
|
||||
az3 = mock.Mock()
|
||||
az3.name = 'AZ3'
|
||||
az3.state = {'available': True}
|
||||
fake_azs = [az1, az2, az3]
|
||||
|
||||
self.patchobject(nc, 'availability_zone_list', return_value=fake_azs)
|
||||
|
||||
|
|
Loading…
Reference in New Issue