Merge "Implement a new test case for volume cloning functionality"
diff --git a/tempest/api/volume/base.py b/tempest/api/volume/base.py
index 2839da4..fc510cb 100644
--- a/tempest/api/volume/base.py
+++ b/tempest/api/volume/base.py
@@ -128,9 +128,9 @@
resp, snapshot = cls.snapshots_client.create_snapshot(volume_id,
**kwargs)
assert 200 == resp.status
+ cls.snapshots.append(snapshot)
cls.snapshots_client.wait_for_snapshot_status(snapshot['id'],
'available')
- cls.snapshots.append(snapshot)
return snapshot
#NOTE(afazekas): these create_* and clean_* could be defined
@@ -141,8 +141,8 @@
"""Wrapper utility that returns a test volume."""
resp, volume = cls.volumes_client.create_volume(size, **kwargs)
assert 200 == resp.status
- cls.volumes_client.wait_for_volume_status(volume['id'], 'available')
cls.volumes.append(volume)
+ cls.volumes_client.wait_for_volume_status(volume['id'], 'available')
return volume
@classmethod
diff --git a/tempest/api/volume/test_volumes_get.py b/tempest/api/volume/test_volumes_get.py
index 68ab745..eda7153 100644
--- a/tempest/api/volume/test_volumes_get.py
+++ b/tempest/api/volume/test_volumes_get.py
@@ -21,7 +21,6 @@
class VolumesGetTest(base.BaseVolumeTest):
-
_interface = "json"
@classmethod
@@ -29,22 +28,17 @@
super(VolumesGetTest, cls).setUpClass()
cls.client = cls.volumes_client
- def _volume_create_get_delete(self, image_ref=None):
+ def _volume_create_get_delete(self, **kwargs):
# Create a volume, Get it's details and Delete the volume
try:
volume = {}
- v_name = rand_name('Volume-')
- metadata = {'Type': 'work'}
+ v_name = rand_name('Volume')
+ metadata = {'Type': 'Test'}
#Create a volume
- if not image_ref:
- resp, volume = self.client.create_volume(size=1,
- display_name=v_name,
- metadata=metadata)
- else:
- resp, volume = self.client.create_volume(size=1,
- display_name=v_name,
- metadata=metadata,
- imageRef=image_ref)
+ resp, volume = self.client.create_volume(size=1,
+ display_name=v_name,
+ metadata=metadata,
+ **kwargs)
self.assertEqual(200, resp.status)
self.assertTrue('id' in volume)
self.assertTrue('display_name' in volume)
@@ -107,11 +101,17 @@
@attr(type='smoke')
def test_volume_create_get_delete(self):
- self._volume_create_get_delete(image_ref=None)
+ self._volume_create_get_delete()
@attr(type='smoke')
- def test_volume_from_image(self):
- self._volume_create_get_delete(image_ref=self.config.compute.image_ref)
+ def test_volume_create_get_delete_from_image(self):
+ self._volume_create_get_delete(imageRef=self.config.compute.image_ref)
+
+ @attr(type='gate')
+ def test_volume_create_get_delete_as_clone(self):
+ origin = self.create_volume(size=1,
+ display_name="Volume Origin")
+ self._volume_create_get_delete(source_volid=origin['id'])
class VolumesGetTestXML(VolumesGetTest):