summaryrefslogtreecommitdiff
path: root/cinderclient/v3
diff options
context:
space:
mode:
authorSean McGinnis <sean.mcginnis@gmail.com>2018-07-31 13:59:32 -0500
committerSean McGinnis <sean.mcginnis@gmail.com>2018-07-31 16:22:17 -0500
commit460229c6099719dec0d027f798f9c751b8ec7e44 (patch)
treee866dfede929daa7597f892484cb71c30b4326da /cinderclient/v3
parente76c4958ea779a44f2d0351616c94b627aebe0fe (diff)
downloadpython-cinderclient-4.0.1.tar.gz
Allow volume-transfer creation < 3.55 microversion4.0.1
Handling for the new `no_snapshots` option was incorrectly handling microversion evaluation that would prevent anything less than the new microversion from working. This changes the check to only handle the changed argument for 3.55 and later. Change-Id: If96889ccde6044706e6a5dcd83fde3c20fe1c1fd Closes-bug: #1784703 Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
Diffstat (limited to 'cinderclient/v3')
-rw-r--r--cinderclient/v3/volume_transfers.py56
1 files changed, 3 insertions, 53 deletions
diff --git a/cinderclient/v3/volume_transfers.py b/cinderclient/v3/volume_transfers.py
index 4e80d20..aa33082 100644
--- a/cinderclient/v3/volume_transfers.py
+++ b/cinderclient/v3/volume_transfers.py
@@ -17,17 +17,10 @@
Volume transfer interface (v3 extension).
"""
-from cinderclient import api_versions
-from cinderclient import base
-from cinderclient import utils
from cinderclient.v2 import volume_transfers
-VolumeTransfer = volume_transfers.VolumeTransfer
-
-
class VolumeTransferManager(volume_transfers.VolumeTransferManager):
- @api_versions.wraps("3.55")
def create(self, volume_id, name=None, no_snapshots=False):
"""Creates a volume transfer.
@@ -37,50 +30,7 @@ class VolumeTransferManager(volume_transfers.VolumeTransferManager):
:rtype: :class:`VolumeTransfer`
"""
body = {'transfer': {'volume_id': volume_id,
- 'name': name,
- 'no_snapshots': no_snapshots}}
+ 'name': name}}
+ if self.api_version.matches('3.55'):
+ body['transfer']['no_snapshots'] = no_snapshots
return self._create('/volume-transfers', body, 'transfer')
-
- @api_versions.wraps("3.55")
- def accept(self, transfer_id, auth_key):
- """Accept a volume transfer.
-
- :param transfer_id: The ID of the transfer to accept.
- :param auth_key: The auth_key of the transfer.
- :rtype: :class:`VolumeTransfer`
- """
- body = {'accept': {'auth_key': auth_key}}
- return self._create('/volume-transfers/%s/accept' % transfer_id,
- body, 'transfer')
-
- @api_versions.wraps("3.55")
- def get(self, transfer_id):
- """Show details of a volume transfer.
-
- :param transfer_id: The ID of the volume transfer to display.
- :rtype: :class:`VolumeTransfer`
- """
- return self._get("/volume-transfers/%s" % transfer_id, "transfer")
-
- @api_versions.wraps("3.55")
- def list(self, detailed=True, search_opts=None):
- """Get a list of all volume transfer.
-
- :rtype: list of :class:`VolumeTransfer`
- """
- query_string = utils.build_query_param(search_opts)
-
- detail = ""
- if detailed:
- detail = "/detail"
-
- return self._list("/volume-transfers%s%s" % (detail, query_string),
- "transfers")
-
- @api_versions.wraps("3.55")
- def delete(self, transfer_id):
- """Delete a volume transfer.
-
- :param transfer_id: The :class:`VolumeTransfer` to delete.
- """
- return self._delete("/volume-transfers/%s" % base.getid(transfer_id))