Don't fail if volume has no name or description
Volume objects in the cinder client don't always provide the display_name and display_description attributes. Don't fail in this case. Change-Id: I08448f002912c2382fcc6728ce3ecf75038faec2
This commit is contained in:
parent
168d10bb1c
commit
7d2f8a5703
|
@ -525,13 +525,11 @@ class TemplateGenerator(object):
|
||||||
"Snapshot to create volume %s from" % resource_name)
|
"Snapshot to create volume %s from" % resource_name)
|
||||||
resource.add_parameter(key, description,
|
resource.add_parameter(key, description,
|
||||||
default=volume.snapshot_id)
|
default=volume.snapshot_id)
|
||||||
try:
|
if hasattr(volume, 'display_name') and volume.display_name:
|
||||||
if volume.display_name:
|
properties['name'] = volume.display_name
|
||||||
properties['name'] = volume.display_name
|
if (hasattr(volume, 'display_description') and
|
||||||
if volume.display_description:
|
volume.display_description):
|
||||||
properties['description'] = volume.display_description
|
properties['description'] = volume.display_description
|
||||||
except AttributeError:
|
|
||||||
pass
|
|
||||||
if volume.volume_type and volume.volume_type != 'None':
|
if volume.volume_type and volume.volume_type != 'None':
|
||||||
key = "%s_volume_type" % resource_name
|
key = "%s_volume_type" % resource_name
|
||||||
description = (
|
description = (
|
||||||
|
|
|
@ -48,6 +48,16 @@ class FakeVolume(FakeBase):
|
||||||
metadata = None
|
metadata = None
|
||||||
|
|
||||||
|
|
||||||
|
class FakeUnnamedVolume(FakeBase):
|
||||||
|
id = 1234
|
||||||
|
size = 1
|
||||||
|
source_volid = None
|
||||||
|
bootable = 'false'
|
||||||
|
snapshot_id = None
|
||||||
|
volume_type = 'fast'
|
||||||
|
metadata = None
|
||||||
|
|
||||||
|
|
||||||
class FakeServer(FakeBase):
|
class FakeServer(FakeBase):
|
||||||
id = '1234'
|
id = '1234'
|
||||||
name = 'server1'
|
name = 'server1'
|
||||||
|
@ -1280,6 +1290,29 @@ class VolumeTests(BaseTestCase):
|
||||||
self.check_template(generator._extract_volumes(), expected_resources,
|
self.check_template(generator._extract_volumes(), expected_resources,
|
||||||
expected_parameters)
|
expected_parameters)
|
||||||
|
|
||||||
|
def test_basic_unnamed(self):
|
||||||
|
self.fake.volumes = [FakeUnnamedVolume(), ]
|
||||||
|
generator = self.get_generator(False, False, False, True)
|
||||||
|
|
||||||
|
expected_parameters = {
|
||||||
|
'volume_0_volume_type': {
|
||||||
|
'default': 'fast',
|
||||||
|
'description': 'Volume type for volume volume_0',
|
||||||
|
'type': 'string'}
|
||||||
|
}
|
||||||
|
|
||||||
|
expected_resources = {
|
||||||
|
'volume_0': {
|
||||||
|
'type': 'OS::Cinder::Volume',
|
||||||
|
'properties': {
|
||||||
|
'volume_type': {'get_param': 'volume_0_volume_type'},
|
||||||
|
'size': 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
self.check_template(generator._extract_volumes(), expected_resources,
|
||||||
|
expected_parameters)
|
||||||
|
|
||||||
def test_source_volid_external(self):
|
def test_source_volid_external(self):
|
||||||
self.fake.volumes = [FakeVolume(source_volid=5678), ]
|
self.fake.volumes = [FakeVolume(source_volid=5678), ]
|
||||||
generator = self.get_generator(False, False, False, True)
|
generator = self.get_generator(False, False, False, True)
|
||||||
|
|
Loading…
Reference in New Issue