Add aliases to orchestration template version list

Recently we added aliases to the API response, so display these
if they exist.

Change-Id: Iadd499d59acf3bf8cee3e208372340ff1a29112a
This commit is contained in:
Steven Hardy 2016-12-14 08:51:46 +00:00
parent 0c246f3259
commit 9b60f057a5
2 changed files with 36 additions and 14 deletions

View File

@ -37,12 +37,23 @@ class VersionList(command.Lister):
client = self.app.client_manager.orchestration
versions = client.template_versions.list()
fields = ['Version', 'Type']
try:
versions[1].aliases
return (
fields,
(utils.get_item_properties(s, fields) for s in versions)
)
def format_alias(aliases):
return ','.join(aliases)
fields = ['Version', 'Type', 'Aliases']
formatters = {'Aliases': format_alias}
except AttributeError:
fields = ['Version', 'Type']
formatters = None
items = (utils.get_item_properties(s, fields,
formatters=formatters)
for s in versions)
return (fields, items)
class FunctionList(command.Lister):

View File

@ -29,19 +29,17 @@ class TestTemplate(fakes.TestOrchestrationv1):
class TestTemplateVersionList(TestTemplate):
defaults = [
{'version': 'HOT123', 'type': 'hot'},
{'version': 'CFN456', 'type': 'cfn'}
]
def setUp(self):
super(TestTemplateVersionList, self).setUp()
tv1 = template_versions.TemplateVersion(None, self.defaults[0])
tv2 = template_versions.TemplateVersion(None, self.defaults[1])
def _stub_versions_list(self, ret_data):
tv1 = template_versions.TemplateVersion(None, ret_data[0])
tv2 = template_versions.TemplateVersion(None, ret_data[1])
self.template_versions.list.return_value = [tv1, tv2]
self.cmd = template.VersionList(self.app, None)
def test_version_list(self):
ret_data = [
{'version': 'HOT123', 'type': 'hot'},
{'version': 'CFN456', 'type': 'cfn'}]
self._stub_versions_list(ret_data)
parsed_args = self.check_parser(self.cmd, [], [])
columns, data = self.cmd.take_action(parsed_args)
@ -49,6 +47,19 @@ class TestTemplateVersionList(TestTemplate):
self.assertEqual(['Version', 'Type'], columns)
self.assertEqual([('HOT123', 'hot'), ('CFN456', 'cfn')], list(data))
def test_version_list_with_aliases(self):
ret_data = [
{'version': 'HOT123', 'type': 'hot', 'aliases': ['releasex']},
{'version': 'CFN456', 'type': 'cfn', 'aliases': ['releasey']}]
self._stub_versions_list(ret_data)
parsed_args = self.check_parser(self.cmd, [], [])
columns, data = self.cmd.take_action(parsed_args)
self.assertEqual(['Version', 'Type', 'Aliases'], columns)
self.assertEqual([('HOT123', 'hot', 'releasex'),
('CFN456', 'cfn', 'releasey')], list(data))
class TestTemplateFunctionList(TestTemplate):