Merge "Add 'description' for cinder volume type"
This commit is contained in:
commit
364a864d03
@ -44,9 +44,9 @@ class CinderVolumeType(resource.Resource):
|
||||
support_status = support.SupportStatus(version='2015.1')
|
||||
|
||||
PROPERTIES = (
|
||||
NAME, METADATA, IS_PUBLIC,
|
||||
NAME, METADATA, IS_PUBLIC, DESCRIPTION,
|
||||
) = (
|
||||
'name', 'metadata', 'is_public',
|
||||
'name', 'metadata', 'is_public', 'description',
|
||||
)
|
||||
|
||||
properties_schema = {
|
||||
@ -66,12 +66,19 @@ class CinderVolumeType(resource.Resource):
|
||||
default=True,
|
||||
support_status=support.SupportStatus(version='2015.2'),
|
||||
),
|
||||
DESCRIPTION: properties.Schema(
|
||||
properties.Schema.STRING,
|
||||
_('Description of the volume type.'),
|
||||
update_allowed=True,
|
||||
support_status=support.SupportStatus(version='2015.2'),
|
||||
),
|
||||
}
|
||||
|
||||
def handle_create(self):
|
||||
args = {
|
||||
'name': self.properties[self.NAME],
|
||||
'is_public': self.properties[self.IS_PUBLIC]
|
||||
'is_public': self.properties[self.IS_PUBLIC],
|
||||
'description': self.properties[self.DESCRIPTION]
|
||||
}
|
||||
|
||||
volume_type = self.cinder().volume_types.create(**args)
|
||||
@ -81,7 +88,13 @@ class CinderVolumeType(resource.Resource):
|
||||
volume_type.set_keys(vtype_metadata)
|
||||
|
||||
def handle_update(self, json_snippet, tmpl_diff, prop_diff):
|
||||
"""Update the key-value pairs of cinder volume type."""
|
||||
"""Update the name, description and metadata for volume type."""
|
||||
|
||||
# Update the description of cinder volume type
|
||||
if self.DESCRIPTION in prop_diff:
|
||||
self.cinder().volume_types.update(
|
||||
self.resource_id, description=prop_diff.get(self.DESCRIPTION))
|
||||
# Update the key-value pairs of cinder volume type.
|
||||
if self.METADATA in prop_diff:
|
||||
volume_type = self.cinder().volume_types.get(self.resource_id)
|
||||
old_keys = volume_type.get_keys()
|
||||
|
@ -67,7 +67,7 @@ class CinderVolumeTypeTest(common.HeatTestCase):
|
||||
self.my_volume_type.t['Properties']['is_public'] = is_public
|
||||
self.my_volume_type.handle_create()
|
||||
self.volume_types.create.assert_called_once_with(
|
||||
name='volumeBackend', is_public=is_public)
|
||||
name='volumeBackend', is_public=is_public, description=None)
|
||||
value.set_keys.assert_called_once_with(
|
||||
{'volume_backend_name': 'lvmdriver'})
|
||||
self.assertEqual(volume_type_id, self.my_volume_type.resource_id)
|
||||
@ -78,6 +78,18 @@ class CinderVolumeTypeTest(common.HeatTestCase):
|
||||
def test_volume_type_handle_create_not_public(self):
|
||||
self._test_handle_create(is_public=False)
|
||||
|
||||
def test_volume_type_handle_update_description(self):
|
||||
volume_type_id = '927202df-1afb-497f-8368-9c2d2f26e5db'
|
||||
self.my_volume_type.resource_id = volume_type_id
|
||||
update_description = 'update'
|
||||
prop_diff = {'description': update_description}
|
||||
self.my_volume_type.handle_update(json_snippet=None,
|
||||
tmpl_diff=None,
|
||||
prop_diff=prop_diff)
|
||||
self.volume_types.update.assert_called_once_with(
|
||||
volume_type_id,
|
||||
description=update_description)
|
||||
|
||||
def test_volume_type_handle_update_matadata(self):
|
||||
value = mock.MagicMock()
|
||||
self.volume_types.get.return_value = value
|
||||
|
Loading…
Reference in New Issue
Block a user