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)
|
||||
resource.add_parameter(key, description,
|
||||
default=volume.snapshot_id)
|
||||
try:
|
||||
if volume.display_name:
|
||||
properties['name'] = volume.display_name
|
||||
if volume.display_description:
|
||||
properties['description'] = volume.display_description
|
||||
except AttributeError:
|
||||
pass
|
||||
if hasattr(volume, 'display_name') and volume.display_name:
|
||||
properties['name'] = volume.display_name
|
||||
if (hasattr(volume, 'display_description') and
|
||||
volume.display_description):
|
||||
properties['description'] = volume.display_description
|
||||
if volume.volume_type and volume.volume_type != 'None':
|
||||
key = "%s_volume_type" % resource_name
|
||||
description = (
|
||||
|
|
|
@ -48,6 +48,16 @@ class FakeVolume(FakeBase):
|
|||
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):
|
||||
id = '1234'
|
||||
name = 'server1'
|
||||
|
@ -1280,6 +1290,29 @@ class VolumeTests(BaseTestCase):
|
|||
self.check_template(generator._extract_volumes(), expected_resources,
|
||||
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):
|
||||
self.fake.volumes = [FakeVolume(source_volid=5678), ]
|
||||
generator = self.get_generator(False, False, False, True)
|
||||
|
|
Loading…
Reference in New Issue