summaryrefslogtreecommitdiff
path: root/heatclient/osc
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2017-05-17 03:49:22 +0000
committerGerrit Code Review <review@openstack.org>2017-05-17 03:49:22 +0000
commit1ba31b9609cde6eac72a0fc2f501e3926a17d57a (patch)
tree8ac1fc4dee838f7b30a81c588b34f71e8e5abed9 /heatclient/osc
parent31160e2b844f7e3a5143da37c1909e49b396351c (diff)
parente2d92f7930a3f493510c098111d287c71ed9d96b (diff)
downloadpython-heatclient-1ba31b9609cde6eac72a0fc2f501e3926a17d57a.tar.gz
Merge "Add '--yes' for openstack stack snapshot delete"
Diffstat (limited to 'heatclient/osc')
-rw-r--r--heatclient/osc/v1/snapshot.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/heatclient/osc/v1/snapshot.py b/heatclient/osc/v1/snapshot.py
index 13818f8..b07add9 100644
--- a/heatclient/osc/v1/snapshot.py
+++ b/heatclient/osc/v1/snapshot.py
@@ -14,6 +14,7 @@
"""Orchestration v1 Stack Snapshot implementations."""
import logging
+import sys
from osc_lib.command import command
from osc_lib import exceptions as exc
@@ -192,11 +193,34 @@ class DeleteSnapshot(command.Command):
metavar='<snapshot>',
help=_('ID of stack snapshot')
)
+ parser.add_argument(
+ '-y', '--yes',
+ action='store_true',
+ help=_('Skip yes/no prompt (assume yes)')
+ )
return parser
def take_action(self, parsed_args):
self.log.debug('take_action(%s)', parsed_args)
heat_client = self.app.client_manager.orchestration
+ msg = ('User did not confirm snapshot delete '
+ '%sso taking no action.')
+ try:
+ if not parsed_args.yes and sys.stdin.isatty():
+ sys.stdout.write(
+ _('Are you sure you want to delete the snapshot of this '
+ 'stack [Y/N]?'))
+ prompt_response = sys.stdin.readline().lower()
+ if not prompt_response.startswith('y'):
+ self.log.info(msg, '')
+ return
+ except KeyboardInterrupt: # ctrl-c
+ self.log.info(msg, '(ctrl-c) ')
+ return
+ except EOFError: # ctrl-d
+ self.log.info(msg, '(ctrl-d) ')
+ return
+
try:
heat_client.stacks.snapshot_delete(parsed_args.stack,
parsed_args.snapshot)