summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2020-03-05 01:24:21 +0000
committerGerrit Code Review <review@openstack.org>2020-03-05 01:24:21 +0000
commit8fc8034c0981de9b6b34af619d272dbd1bbf02c4 (patch)
tree191e46ff4b9f7c3074a1bd54c758dfcb737ef991
parentab227b32137fb40e93fa4750755bee0091add040 (diff)
parent77b8395e7dc5aa863364367461aaf571d2b0793e (diff)
downloadheat-8fc8034c0981de9b6b34af619d272dbd1bbf02c4.tar.gz
Merge "Support handling empty string for volume AZ" into stable/train13.0.1
-rw-r--r--heat/engine/resources/openstack/cinder/volume.py3
-rw-r--r--heat/tests/openstack/cinder/test_volume.py23
-rw-r--r--releasenotes/notes/support-handling-empty-string-for-volume-az-22ad78eb0f931954.yaml6
3 files changed, 31 insertions, 1 deletions
diff --git a/heat/engine/resources/openstack/cinder/volume.py b/heat/engine/resources/openstack/cinder/volume.py
index 2d089860f..b9a51c760 100644
--- a/heat/engine/resources/openstack/cinder/volume.py
+++ b/heat/engine/resources/openstack/cinder/volume.py
@@ -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(
diff --git a/heat/tests/openstack/cinder/test_volume.py b/heat/tests/openstack/cinder/test_volume.py
index 254483736..26557ff26 100644
--- a/heat/tests/openstack/cinder/test_volume.py
+++ b/heat/tests/openstack/cinder/test_volume.py
@@ -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={}
+ )
diff --git a/releasenotes/notes/support-handling-empty-string-for-volume-az-22ad78eb0f931954.yaml b/releasenotes/notes/support-handling-empty-string-for-volume-az-22ad78eb0f931954.yaml
new file mode 100644
index 000000000..e1b71be43
--- /dev/null
+++ b/releasenotes/notes/support-handling-empty-string-for-volume-az-22ad78eb0f931954.yaml
@@ -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.