Merge "Support handling empty string for volume AZ" into stable/train

This commit is contained in:
Zuul 2020-03-05 01:24:21 +00:00 committed by Gerrit Code Review
commit 8fc8034c09
3 changed files with 31 additions and 1 deletions

View File

@ -279,7 +279,8 @@ class CinderVolume(vb.BaseVolume, sh.SchedulerHintsMixin):
def _create_arguments(self):
arguments = {
'size': self.properties[self.SIZE],
'availability_zone': self.properties[self.AVAILABILITY_ZONE],
'availability_zone': (self.properties[self.AVAILABILITY_ZONE] or
None),
}
scheduler_hints = self._scheduler_hints(

View File

@ -1234,3 +1234,26 @@ class CinderVolumeTest(vt_base.VolumeTestCase):
}
self.assertEqual(expected, reality)
def test_empty_string_az(self):
fv = vt_base.FakeVolume('creating')
self.stack_name = 'test_cvolume_default_stack'
vol_name = utils.PhysName(self.stack_name, 'volume')
self.cinder_fc.volumes.create.return_value = fv
fv_ready = vt_base.FakeVolume('available', id=fv.id)
self.cinder_fc.volumes.get.side_effect = [fv, fv_ready]
self.t['resources']['volume']['properties'] = {
'size': '1',
'availability_zone': "",
}
stack = utils.parse_stack(self.t, stack_name=self.stack_name)
self.create_volume(self.t, stack, 'volume')
self.cinder_fc.volumes.create.assert_called_once_with(
size=1, availability_zone=None,
description=None,
name=vol_name,
metadata={}
)

View File

@ -0,0 +1,6 @@
---
fixes:
- |
Empty string passing in for volume availability_zone can be correctly
handled now. For this case, it's same as no AZ set, so the default AZ in
cinder.conf will be used.