summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--heatclient/tests/test_shell.py10
-rw-r--r--heatclient/v1/shell.py13
2 files changed, 19 insertions, 4 deletions
diff --git a/heatclient/tests/test_shell.py b/heatclient/tests/test_shell.py
index 9b196e2..9c15241 100644
--- a/heatclient/tests/test_shell.py
+++ b/heatclient/tests/test_shell.py
@@ -397,7 +397,8 @@ class ShellTestUserPass(ShellBase):
'limit': 2,
'status': ['COMPLETE', 'FAILED'],
'marker': 'fake_id',
- 'global_tenant': True
+ 'global_tenant': True,
+ 'show_deleted': 'True',
}, True)
fakes.script_heat_list(expected_url)
@@ -408,7 +409,8 @@ class ShellTestUserPass(ShellBase):
' --marker fake_id'
' --filters=status=COMPLETE'
' --filters=status=FAILED'
- ' --global-tenant')
+ ' --global-tenant'
+ ' --show-deleted')
required = [
'teststack',
@@ -820,7 +822,8 @@ class ShellTestUserPass(ShellBase):
'LinuxDistribution': 'F17"',
'"InstanceType': 'm1.large',
'DBPassword': 'verybadpassword'},
- 'timeout_mins': 123}
+ 'timeout_mins': 123,
+ 'disable_rollback': True}
http.HTTPClient.json_request(
'PUT', '/stacks/teststack2/2',
data=expected_data,
@@ -999,6 +1002,7 @@ class ShellTestUserPass(ShellBase):
update_text = self.shell(
'stack-update teststack2/2 '
'--template-file=%s '
+ '--enable-rollback '
'--parameters="InstanceType=m1.large;DBUsername=wp;'
'DBPassword=verybadpassword;KeyName=heat_key;'
'LinuxDistribution=F17"' % template_file)
diff --git a/heatclient/v1/shell.py b/heatclient/v1/shell.py
index f740eb2..2dedbc4 100644
--- a/heatclient/v1/shell.py
+++ b/heatclient/v1/shell.py
@@ -329,6 +329,11 @@ def do_stack_show(hc, args):
help='URL of template.')
@utils.arg('-o', '--template-object', metavar='<URL>',
help='URL to retrieve template object (e.g. from swift).')
+@utils.arg('-t', '--timeout', metavar='<TIMEOUT>',
+ type=int,
+ help='Stack update timeout in minutes.')
+@utils.arg('-r', '--enable-rollback', default=False, action="store_true",
+ help='Enable rollback on create/update failure.')
@utils.arg('-P', '--parameters', metavar='<KEY1=VALUE1;KEY2=VALUE2...>',
help='Parameter values used to create the stack. '
'This can be specified multiple times, or once with parameters '
@@ -353,6 +358,8 @@ def do_update(hc, args):
@utils.arg('-t', '--timeout', metavar='<TIMEOUT>',
type=int,
help='Stack update timeout in minutes.')
+@utils.arg('-r', '--enable-rollback', default=False, action="store_true",
+ help='Enable rollback on create/update failure.')
@utils.arg('-P', '--parameters', metavar='<KEY1=VALUE1;KEY2=VALUE2...>',
help='Parameter values used to create the stack. '
'This can be specified multiple times, or once with parameters '
@@ -374,6 +381,7 @@ def do_stack_update(hc, args):
fields = {
'stack_id': args.id,
+ 'disable_rollback': not(args.enable_rollback),
'parameters': utils.format_parameters(args.parameters),
'template': template,
'files': dict(list(tpl_files.items()) + list(env_files.items())),
@@ -393,6 +401,8 @@ def do_list(hc, args=None):
do_stack_list(hc)
+@utils.arg('-s', '--show-deleted', default=False, action="store_true",
+ help='Include soft-deleted stacks in the stack listing.')
@utils.arg('-f', '--filters', metavar='<KEY1=VALUE1;KEY2=VALUE2...>',
help='Filter parameters to apply on returned stacks. '
'This can be specified multiple times, or once with parameters '
@@ -414,7 +424,8 @@ def do_stack_list(hc, args=None):
kwargs = {'limit': args.limit,
'marker': args.marker,
'filters': utils.format_parameters(args.filters),
- 'global_tenant': args.global_tenant}
+ 'global_tenant': args.global_tenant,
+ 'show_deleted': args.show_deleted}
stacks = hc.stacks.list(**kwargs)
fields = ['id', 'stack_name', 'stack_status', 'creation_time']