summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-05-30 07:47:15 +0000
committerGerrit Code Review <review@openstack.org>2016-05-30 07:47:15 +0000
commite95df61c64824be8747a1f130bce6febe03b921b (patch)
tree744d78a7ad414c6cd6fbe5e8786dce9a4db67818
parentb8407bd9411106f8ca3e370df013530c473bb3e3 (diff)
parent52cb12d86e8d1a7ae3422d02f567c3387eb14809 (diff)
downloadpython-heatclient-e95df61c64824be8747a1f130bce6febe03b921b.tar.gz
Merge "osc resource-type-show description option"
-rw-r--r--heatclient/osc/v1/resource_type.py13
-rw-r--r--heatclient/tests/unit/osc/v1/test_resource_type.py18
-rw-r--r--heatclient/v1/resource_types.py6
3 files changed, 32 insertions, 5 deletions
diff --git a/heatclient/osc/v1/resource_type.py b/heatclient/osc/v1/resource_type.py
index 9a4b8c6..3fafbb4 100644
--- a/heatclient/osc/v1/resource_type.py
+++ b/heatclient/osc/v1/resource_type.py
@@ -42,11 +42,21 @@ class ResourceTypeShow(format_utils.YamlFormat):
metavar='<template-type>',
help=_('Optional template type to generate, hot or cfn')
)
+ parser.add_argument(
+ '--long',
+ default=False,
+ action='store_true',
+ help=_('Show resource type with corresponding description.')
+ )
return parser
def take_action(self, parsed_args):
self.log.debug("take_action(%s)", parsed_args)
+ if parsed_args.template_type is not None and parsed_args.long:
+ msg = _('Cannot use --template-type and --long in one time.')
+ raise exc.CommandError(msg)
+
heat_client = self.app.client_manager.orchestration
return _show_resourcetype(heat_client, parsed_args)
@@ -63,7 +73,8 @@ def _show_resourcetype(heat_client, parsed_args):
'template_type': template_type}
data = heat_client.resource_types.generate_template(**fields)
else:
- data = heat_client.resource_types.get(parsed_args.resource_type)
+ data = heat_client.resource_types.get(parsed_args.resource_type,
+ parsed_args.long)
except heat_exc.HTTPNotFound:
raise exc.CommandError(
_('Resource type not found: %s') % parsed_args.resource_type)
diff --git a/heatclient/tests/unit/osc/v1/test_resource_type.py b/heatclient/tests/unit/osc/v1/test_resource_type.py
index ba1ed9c..738915d 100644
--- a/heatclient/tests/unit/osc/v1/test_resource_type.py
+++ b/heatclient/tests/unit/osc/v1/test_resource_type.py
@@ -38,7 +38,7 @@ class TestResourceTypeShow(TestResourceType):
parsed_args = self.check_parser(self.cmd, arglist, [])
self.cmd.take_action(parsed_args)
self.mock_client.resource_types.get.assert_called_once_with(
- 'OS::Heat::None')
+ 'OS::Heat::None', False)
def test_resourcetype_show_json(self):
arglist = ['OS::Heat::None',
@@ -46,7 +46,7 @@ class TestResourceTypeShow(TestResourceType):
parsed_args = self.check_parser(self.cmd, arglist, [])
self.cmd.take_action(parsed_args)
self.mock_client.resource_types.get.assert_called_once_with(
- 'OS::Heat::None')
+ 'OS::Heat::None', False)
def test_resourcetype_show_error_get(self):
arglist = ['OS::Heat::None']
@@ -96,6 +96,20 @@ class TestResourceTypeShow(TestResourceType):
parsed_args = self.check_parser(self.cmd, arglist, [])
self.assertRaises(exc.CommandError, self.cmd.take_action, parsed_args)
+ def test_resourcetype_show_with_description(self):
+ arglist = ['OS::Heat::None', '--long']
+ parsed_args = self.check_parser(self.cmd, arglist, [])
+ self.cmd.take_action(parsed_args)
+ self.mock_client.resource_types.get.assert_called_with(
+ 'OS::Heat::None', True)
+
+ def test_resourcetype_show_long_and_template_type_error(self):
+ arglist = ['OS::Heat::None',
+ '--template-type', 'cfn',
+ '--long']
+ parsed_args = self.check_parser(self.cmd, arglist, [])
+ self.assertRaises(exc.CommandError, self.cmd.take_action, parsed_args)
+
class TestTypeList(TestResourceType):
diff --git a/heatclient/v1/resource_types.py b/heatclient/v1/resource_types.py
index 6f307ff..b4039d1 100644
--- a/heatclient/v1/resource_types.py
+++ b/heatclient/v1/resource_types.py
@@ -62,15 +62,17 @@ class ResourceTypeManager(base.BaseManager):
return self._list(url, self.KEY)
- def get(self, resource_type):
+ def get(self, resource_type, with_description=False):
"""Get the details for a specific resource_type.
:param resource_type: name of the resource type to get the details for
+ :param with_description: return result with description or not
"""
url_str = '/%s/%s' % (
self.KEY,
parse.quote(encodeutils.safe_encode(resource_type), ''))
- resp = self.client.get(url_str)
+ resp = self.client.get(url_str,
+ params={'with_description': with_description})
body = utils.get_response_body(resp)
return body