diff options
| author | Huanxuan Ao <huanxuan.ao@easystack.cn> | 2016-08-08 12:09:19 +0800 |
|---|---|---|
| committer | Huanxuan Ao <huanxuan.ao@easystack.cn> | 2016-09-11 14:08:27 +0800 |
| commit | d2273ecea5d540f4dacc89772870722355f2492f (patch) | |
| tree | 61e3a4cadd4800abea2ae9758a4f9ab830294a8e /openstackclient/volume/v2/volume_transfer_request.py | |
| parent | 6f4acc45c62310d925c8f33a33c14d37990b6636 (diff) | |
| download | python-openstackclient-d2273ecea5d540f4dacc89772870722355f2492f.tar.gz | |
Implement "volume transfer request delete" command
Add "volume transfer request delete" command in
volume v1 and v2. Also add the unit tests, docs,
release note and functional tests
Change-Id: Ic3d375bc8df3312fac53c1800d75f48376b8c91c
Implements: bp cinder-command-support
Co-Authored-By: Sheel Rana <ranasheel2000@gmail.com>
Diffstat (limited to 'openstackclient/volume/v2/volume_transfer_request.py')
| -rw-r--r-- | openstackclient/volume/v2/volume_transfer_request.py | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/openstackclient/volume/v2/volume_transfer_request.py b/openstackclient/volume/v2/volume_transfer_request.py index 45581586..f5de8d7a 100644 --- a/openstackclient/volume/v2/volume_transfer_request.py +++ b/openstackclient/volume/v2/volume_transfer_request.py @@ -14,13 +14,19 @@ """Volume v2 transfer action implementations""" +import logging + from osc_lib.command import command +from osc_lib import exceptions from osc_lib import utils import six from openstackclient.i18n import _ +LOG = logging.getLogger(__name__) + + class CreateTransferRequest(command.ShowOne): """Create volume transfer request.""" @@ -50,6 +56,41 @@ class CreateTransferRequest(command.ShowOne): return zip(*sorted(six.iteritems(volume_transfer_request._info))) +class DeleteTransferRequest(command.Command): + """Delete volume transfer request(s).""" + + def get_parser(self, prog_name): + parser = super(DeleteTransferRequest, self).get_parser(prog_name) + parser.add_argument( + 'transfer_request', + metavar="<transfer-request>", + nargs="+", + help=_('Volume transfer request(s) to delete (name or ID)'), + ) + return parser + + def take_action(self, parsed_args): + volume_client = self.app.client_manager.volume + result = 0 + + for t in parsed_args.transfer_request: + try: + transfer_request_id = utils.find_resource( + volume_client.transfers, t).id + volume_client.transfers.delete(transfer_request_id) + except Exception as e: + result += 1 + LOG.error(_("Failed to delete volume transfer request " + "with name or ID '%(transfer)s': %(e)s") + % {'transfer': t, 'e': e}) + + if result > 0: + total = len(parsed_args.transfer_request) + msg = (_("%(result)s of %(total)s volume transfer requests failed" + " to delete.") % {'result': result, 'total': total}) + raise exceptions.CommandError(msg) + + class ListTransferRequests(command.Lister): """Lists all volume transfer requests.""" |
