Add show_resource function to Manila resources (5)

AWS resources will not be changed as they do not support additional
attributes. So 'show' attribute will be presented in their schemas, but
will return always None.

This patch adds show_resource method for heat (manila) resources:
 - share
 - share type
 - share network
 - security service

Change-Id: I2e38c38476060b367ef5ad15a38e9dd8ac92b471
This commit is contained in:
Oleksii Chuprykov 2015-07-28 07:56:37 -04:00
parent 02275f8901
commit cb89b2081d
8 changed files with 32 additions and 0 deletions

View File

@ -84,6 +84,8 @@ class SecurityService(resource.Resource):
default_client_name = 'manila'
entity = 'security_services'
def handle_create(self):
args = dict((k, v) for k, v in self.properties.items()
if v is not None)

View File

@ -187,6 +187,8 @@ class ManilaShare(resource.Resource):
default_client_name = 'manila'
entity = 'shares'
def _request_share(self):
return self.client().shares.get(self.resource_id)

View File

@ -105,6 +105,8 @@ class ManilaShareNetwork(resource.Resource):
default_client_name = 'manila'
entity = 'share_networks'
def _request_network(self):
return self.client().share_networks.get(self.resource_id)

View File

@ -65,6 +65,8 @@ class ManilaShareType(resource.Resource):
default_client_name = 'manila'
entity = 'share_types'
def handle_create(self):
share_type = self.client().share_types.create(
name=self.properties.get(self.NAME),

View File

@ -170,3 +170,10 @@ class ManilaSecurityServiceTest(common.HeatTestCase):
scheduler.TaskRunner(ss.update, new_ss))
msg = 'The Resource security_service requires replacement.'
self.assertEqual(msg, six.text_type(err))
def test_show_resource(self):
sservice = self._create_resource('service', self.rsrc_defn, self.stack)
service = mock.Mock()
service.to_dict.return_value = {'attr': 'val'}
self.client.security_services.get.return_value = service
self.assertEqual({'attr': 'val'}, sservice.FnGetAtt('show'))

View File

@ -54,6 +54,7 @@ class DummyShare(object):
self.created_at = 'ca'
self.status = 's'
self.project_id = 'p_id'
self.to_dict = lambda: {'attr': 'val'}
class ManilaShareTest(common.HeatTestCase):
@ -241,3 +242,4 @@ class ManilaShareTest(common.HeatTestCase):
self.assertEqual('ca', share.FnGetAtt('created_at'))
self.assertEqual('s', share.FnGetAtt('status'))
self.assertEqual('p_id', share.FnGetAtt('project_id'))
self.assertEqual({'attr': 'val'}, share.FnGetAtt('show'))

View File

@ -37,6 +37,11 @@ resources:
"""
class DummyShare(object):
def __init__(self):
self.to_dict = lambda: {'attr': 'val'}
class ManilaShareTypeTest(common.HeatTestCase):
def setUp(self):
@ -112,3 +117,11 @@ class ManilaShareTypeTest(common.HeatTestCase):
fake_share_type.unset_keys.assert_called_once_with({"test": "test"})
fake_share_type.set_keys.assert_called_with(
updated_props[mshare_type.ManilaShareType.EXTRA_SPECS])
def test_show_resource(self):
share_type = self._init_share("stack_share_type_create")
share_type.client().share_types.create.return_value = mock.Mock(
id='type_id')
share_type.client().share_types.get.return_value = DummyShare()
scheduler.TaskRunner(share_type.create)()
self.assertEqual({'attr': 'val'}, share_type.FnGetAtt('show'))

View File

@ -45,6 +45,7 @@ class DummyShareNetwork(object):
self.cidr = '3'
self.ip_version = '5'
self.network_type = '6'
self.to_dict = lambda: {'attr': 'val'}
class ManilaShareNetworkTest(common.HeatTestCase):
@ -208,6 +209,7 @@ class ManilaShareNetworkTest(common.HeatTestCase):
self.assertEqual('3', net.FnGetAtt('cidr'))
self.assertEqual('5', net.FnGetAtt('ip_version'))
self.assertEqual('6', net.FnGetAtt('network_type'))
self.assertEqual({'attr': 'val'}, net.FnGetAtt('show'))
def test_resource_mapping(self):
mapping = share_network.resource_mapping()