summaryrefslogtreecommitdiff
path: root/cinderclient/v2/volumes.py
diff options
context:
space:
mode:
Diffstat (limited to 'cinderclient/v2/volumes.py')
-rw-r--r--cinderclient/v2/volumes.py28
1 files changed, 27 insertions, 1 deletions
diff --git a/cinderclient/v2/volumes.py b/cinderclient/v2/volumes.py
index 093b911..37c87c3 100644
--- a/cinderclient/v2/volumes.py
+++ b/cinderclient/v2/volumes.py
@@ -15,5 +15,31 @@
"""Volume interface (v2 extension)."""
-from cinderclient.v3.volumes import * # flake8: noqa
+from cinderclient import api_versions
+from cinderclient.v3 import volumes
+
+class Volume(volumes.Volume):
+ def upload_to_image(self, force, image_name, container_format,
+ disk_format):
+ """Upload a volume to image service as an image."""
+ return self.manager.upload_to_image(self, force, image_name,
+ container_format, disk_format)
+
+
+class VolumeManager(volumes.VolumeManager):
+ resource_class = Volume
+
+ @api_versions.wraps("2.0")
+ def upload_to_image(self, volume, force, image_name, container_format,
+ disk_format):
+ """Upload volume to image service as image.
+
+ :param volume: The :class:`Volume` to upload.
+ """
+ return self._action('os-volume_upload_image',
+ volume,
+ {'force': force,
+ 'image_name': image_name,
+ 'container_format': container_format,
+ 'disk_format': disk_format})