diff options
| author | Huanxuan Ao <huanxuan.ao@easystack.cn> | 2016-08-09 13:21:40 +0800 |
|---|---|---|
| committer | Huanxuan Ao <huanxuan.ao@easystack.cn> | 2016-09-11 14:08:19 +0800 |
| commit | 6f4acc45c62310d925c8f33a33c14d37990b6636 (patch) | |
| tree | 47ca7dfb59bd697bd7e025b6281c4c91ef210c9c /openstackclient/volume | |
| parent | 30afdb9684789869ee42881cb14fa67683babce0 (diff) | |
| download | python-openstackclient-6f4acc45c62310d925c8f33a33c14d37990b6636.tar.gz | |
Implement "volume transfer request create" command
Add "volume transfer request create" command in
volume v1 and v2. Also add the unit tests, docs,
release note and functional tests
Change-Id: If362df1acf214efdf6ba129cd917d33eb54e1030
Implements: bp cinder-command-support
Co-Authored-By: Sheel Rana <ranasheel2000@gmail.com>
Diffstat (limited to 'openstackclient/volume')
| -rw-r--r-- | openstackclient/volume/v1/volume_transfer_request.py | 32 | ||||
| -rw-r--r-- | openstackclient/volume/v2/volume_transfer_request.py | 30 |
2 files changed, 61 insertions, 1 deletions
diff --git a/openstackclient/volume/v1/volume_transfer_request.py b/openstackclient/volume/v1/volume_transfer_request.py index 5d8ff683..b1167340 100644 --- a/openstackclient/volume/v1/volume_transfer_request.py +++ b/openstackclient/volume/v1/volume_transfer_request.py @@ -12,14 +12,44 @@ # under the License. # -"""Volume v2 transfer action implementations""" +"""Volume v1 transfer action implementations""" from osc_lib.command import command from osc_lib import utils +import six from openstackclient.i18n import _ +class CreateTransferRequest(command.ShowOne): + """Create volume transfer request.""" + + def get_parser(self, prog_name): + parser = super(CreateTransferRequest, self).get_parser(prog_name) + parser.add_argument( + '--name', + metavar="<name>", + help=_('New transfer request name (default to None)') + ) + parser.add_argument( + 'volume', + metavar="<volume>", + help=_('Volume to transfer (name or ID)') + ) + return parser + + def take_action(self, parsed_args): + volume_client = self.app.client_manager.volume + volume_id = utils.find_resource( + volume_client.volumes, parsed_args.volume).id + volume_transfer_request = volume_client.transfers.create( + volume_id, parsed_args.name, + ) + volume_transfer_request._info.pop("links", None) + + return zip(*sorted(six.iteritems(volume_transfer_request._info))) + + class ListTransferRequests(command.Lister): """Lists all volume transfer requests.""" diff --git a/openstackclient/volume/v2/volume_transfer_request.py b/openstackclient/volume/v2/volume_transfer_request.py index 5d8ff683..45581586 100644 --- a/openstackclient/volume/v2/volume_transfer_request.py +++ b/openstackclient/volume/v2/volume_transfer_request.py @@ -16,10 +16,40 @@ from osc_lib.command import command from osc_lib import utils +import six from openstackclient.i18n import _ +class CreateTransferRequest(command.ShowOne): + """Create volume transfer request.""" + + def get_parser(self, prog_name): + parser = super(CreateTransferRequest, self).get_parser(prog_name) + parser.add_argument( + '--name', + metavar="<name>", + help=_('New transfer request name (default to None)'), + ) + parser.add_argument( + 'volume', + metavar="<volume>", + help=_('Volume to transfer (name or ID)'), + ) + return parser + + def take_action(self, parsed_args): + volume_client = self.app.client_manager.volume + volume_id = utils.find_resource( + volume_client.volumes, parsed_args.volume).id + volume_transfer_request = volume_client.transfers.create( + volume_id, parsed_args.name, + ) + volume_transfer_request._info.pop("links", None) + + return zip(*sorted(six.iteritems(volume_transfer_request._info))) + + class ListTransferRequests(command.Lister): """Lists all volume transfer requests.""" |
