From e2d92f7930a3f493510c098111d287c71ed9d96b Mon Sep 17 00:00:00 2001 From: ricolin Date: Wed, 16 Nov 2016 11:48:54 +0800 Subject: Add '--yes' for openstack stack snapshot delete Add optional arguments '--yes' or '-y' in osc cli `openstack stack snapshot delete`. There is no judgement before use that cli So propose to add it in case that we delete the snapshot unintentionally. Closes-Bug: #1642874 Change-Id: If7b515dff64a18f56046b890279c2c59b0ab9dc7 --- heatclient/osc/v1/snapshot.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'heatclient/osc') diff --git a/heatclient/osc/v1/snapshot.py b/heatclient/osc/v1/snapshot.py index b5cc781..dd404ad 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='', 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) -- cgit v1.2.1