From 0d93ef1d789a409108b668aff4554cf3dbb8b6da Mon Sep 17 00:00:00 2001 From: Eyal Date: Mon, 10 Jun 2019 15:14:18 +0300 Subject: [PATCH] Add new api to list template versions supported Will print also the status which can be CURRENT, SUPPORTED or DEPRECATED Change-Id: I6c7aa8ee92136b8cea9eb4e431f86381dc79206a --- doc/source/contributor/cli.rst | 14 ++++++++++++++ .../add_template_versions-b4b5e87c06a795c7.yaml | 3 +++ setup.cfg | 1 + tools/vitrage.bash_completion | 11 ++++++----- vitrageclient/shell.py | 1 + vitrageclient/v1/cli/template.py | 16 ++++++++++++++++ vitrageclient/v1/template.py | 4 ++++ 7 files changed, 45 insertions(+), 5 deletions(-) create mode 100644 releasenotes/notes/add_template_versions-b4b5e87c06a795c7.yaml diff --git a/doc/source/contributor/cli.rst b/doc/source/contributor/cli.rst index 0165a02..d5b824a 100644 --- a/doc/source/contributor/cli.rst +++ b/doc/source/contributor/cli.rst @@ -1019,6 +1019,20 @@ Templates with parameters | 1a18a38b-99ee-4835-964d-a3fe2f17d4cd | Template1 | LOADING | Template validation is OK | 2019-02-11 11:57:31.077176 | standard | +--------------------------------------+-----------+---------+---------------------------+----------------------------+----------+ +template versions +^^^^^^^^^^^^^^^^^ +:: + + vitrage template versions + + +---------+-----------+ + | Version | Status | + +---------+-----------+ + | v1 | SUPPORTED | + | v2 | SUPPORTED | + | v3 | CURRENT | + +---------+-----------+ + Event Examples -------------- diff --git a/releasenotes/notes/add_template_versions-b4b5e87c06a795c7.yaml b/releasenotes/notes/add_template_versions-b4b5e87c06a795c7.yaml new file mode 100644 index 0000000..3b734ec --- /dev/null +++ b/releasenotes/notes/add_template_versions-b4b5e87c06a795c7.yaml @@ -0,0 +1,3 @@ +--- +features: + - Added a new API to list all vitrage template versions supported. \ No newline at end of file diff --git a/setup.cfg b/setup.cfg index 4fa8f2d..8ba121a 100644 --- a/setup.cfg +++ b/setup.cfg @@ -51,6 +51,7 @@ openstack.rca.v1 = rca_resource_show = vitrageclient.v1.cli.resource:ResourceShow rca_resource_count = vitrageclient.v1.cli.resource:ResourceCount rca_template_list = vitrageclient.v1.cli.template:TemplateList + rca_template_versions = vitrageclient.v1.cli.template:TemplateVersions rca_template_show = vitrageclient.v1.cli.template:TemplateShow rca_template_validate = vitrageclient.v1.cli.template:TemplateValidate rca_template_add = vitrageclient.v1.cli.template:TemplateAdd diff --git a/tools/vitrage.bash_completion b/tools/vitrage.bash_completion index 7c060f0..b321bea 100755 --- a/tools/vitrage.bash_completion +++ b/tools/vitrage.bash_completion @@ -24,12 +24,13 @@ _vitrage() cmds_resource_show='-h --help -f --format -c --column --noindent --variable --prefix --max-width --fit-width --print-empty' cmds_service='list' cmds_service_list='-h --help -f --format -c --column --quote --noindent --max-width --fit-width --print-empty --sort-column' - cmds_template='add delete list show validate' - cmds_template_add='-h --help -f --format -c --column --quote --noindent --max-width --fit-width --print-empty --sort-column --path --type' - cmds_template_delete='-h --help' + cmds_template='add delete list show validate versions' + cmds_template_add='-h --help -f --format -c --column --quote --noindent --max-width --fit-width --print-empty --sort-column --path --type --params --wait' + cmds_template_delete='-h --help --wait' cmds_template_list='-h --help -f --format -c --column --quote --noindent --max-width --fit-width --print-empty --sort-column' cmds_template_show='-h --help -f --format -c --column --noindent --variable --prefix --max-width --fit-width --print-empty' - cmds_template_validate='-h --help -f --format -c --column --noindent --variable --prefix --max-width --fit-width --print-empty --path --type' + cmds_template_validate='-h --help -f --format -c --column --noindent --variable --prefix --max-width --fit-width --print-empty --path --type --params' + cmds_template_versions='-h --help -f --format -c --column --quote --noindent --max-width --fit-width --print-empty --sort-column' cmds_topology='show' cmds_topology_show='-h --help -f --format -c --column --noindent --variable --prefix --max-width --fit-width --print-empty --filter --limit --root --graph-type --all-tenants' cmds_webhook='add delete list show' @@ -76,4 +77,4 @@ _vitrage() fi return 0 } -complete -F _vitrage vitrage +complete -F _vitrage vitrage \ No newline at end of file diff --git a/vitrageclient/shell.py b/vitrageclient/shell.py index 1dd66cc..1541abc 100755 --- a/vitrageclient/shell.py +++ b/vitrageclient/shell.py @@ -60,6 +60,7 @@ class VitrageCommandManager(commandmanager.CommandManager): 'rca show': rca.RcaShow, 'template validate': template.TemplateValidate, 'template list': template.TemplateList, + 'template versions': template.TemplateVersions, 'template show': template.TemplateShow, 'template add': template.TemplateAdd, 'template delete': template.TemplateDelete, diff --git a/vitrageclient/v1/cli/template.py b/vitrageclient/v1/cli/template.py index da568d7..ed35aa8 100644 --- a/vitrageclient/v1/cli/template.py +++ b/vitrageclient/v1/cli/template.py @@ -68,6 +68,22 @@ class TemplateValidate(show.ShowOne): return self.dict2columns(result) +class TemplateVersions(lister.Lister): + """List all template versions""" + + def get_parser(self, prog_name): + parser = super(TemplateVersions, self).get_parser(prog_name) + return parser + + def take_action(self, parsed_args): + templates = utils.get_client(self).template.versions() + return utils.list2cols_with_rename( + ( + ('Version', 'version'), + ('Status', 'status'), + ), templates) + + class TemplateList(lister.Lister): """List all templates""" diff --git a/vitrageclient/v1/template.py b/vitrageclient/v1/template.py index 5322163..998cc83 100644 --- a/vitrageclient/v1/template.py +++ b/vitrageclient/v1/template.py @@ -29,6 +29,10 @@ class Template(object): """Get templates list""" return self.api.get(self.url).json() + def versions(self): + """Get templates versions""" + return self.api.get(self.url + 'versions').json() + def show(self, _id): """Show template content"""