[Negative] Create a volume from deactivated image
This test validates that creating a volume from a deactivated image
is not possible.
Change-Id: Id243918cd895af9b8548c928cad32914dc84942d
diff --git a/tempest/api/volume/test_volumes_negative.py b/tempest/api/volume/test_volumes_negative.py
index 0516c69..fc3bcab 100644
--- a/tempest/api/volume/test_volumes_negative.py
+++ b/tempest/api/volume/test_volumes_negative.py
@@ -37,6 +37,25 @@
cls.volume = cls.create_volume()
cls.mountpoint = "/dev/vdc"
+ def create_image(self):
+ # Create image
+ image_name = data_utils.rand_name(self.__class__.__name__ + "-image")
+ image = self.images_client.create_image(
+ name=image_name,
+ container_format=CONF.image.container_formats[0],
+ disk_format=CONF.image.disk_formats[0],
+ visibility='private',
+ min_disk=CONF.volume.volume_size + 1)
+ self.addCleanup(test_utils.call_and_ignore_notfound_exc,
+ self.images_client.delete_image, image['id'])
+
+ # Upload image with 1KB data
+ image_file = six.BytesIO(data_utils.random_bytes())
+ self.images_client.store_image_file(image['id'], image_file)
+ waiters.wait_for_image_status(self.images_client,
+ image['id'], 'active')
+ return image
+
@decorators.attr(type=['negative'])
@decorators.idempotent_id('f131c586-9448-44a4-a8b0-54ca838aa43e')
def test_volume_get_nonexistent_volume_id(self):
@@ -276,21 +295,7 @@
@test.services('image')
def test_create_volume_from_image_with_decreasing_size(self):
# Create image
- image_name = data_utils.rand_name(self.__class__.__name__ + "-image")
- image = self.images_client.create_image(
- name=image_name,
- container_format=CONF.image.container_formats[0],
- disk_format=CONF.image.disk_formats[0],
- visibility='private',
- min_disk=CONF.volume.volume_size + 1)
- self.addCleanup(test_utils.call_and_ignore_notfound_exc,
- self.images_client.delete_image, image['id'])
-
- # Upload image with 1KB data
- image_file = six.BytesIO(data_utils.random_bytes())
- self.images_client.store_image_file(image['id'], image_file)
- waiters.wait_for_image_status(self.images_client,
- image['id'], 'active')
+ image = self.create_image()
# Note(jeremyZ): To shorten the test time (uploading a big size image
# is time-consuming), here just consider the scenario that volume size
@@ -299,3 +304,19 @@
self.volumes_client.create_volume,
size=CONF.volume.volume_size,
imageRef=image['id'])
+
+ @decorators.attr(type=['negative'])
+ @decorators.idempotent_id('d15e7f35-2cfc-48c8-9418-c8223a89bcbb')
+ @test.services('image')
+ def test_create_volume_from_deactivated_image(self):
+ # Create image
+ image = self.create_image()
+
+ # Deactivate the image
+ self.images_client.deactivate_image(image['id'])
+ body = self.images_client.show_image(image['id'])
+ self.assertEqual("deactivated", body['status'])
+ # Try creating a volume from deactivated image
+ self.assertRaises(lib_exc.BadRequest,
+ self.create_volume,
+ imageRef=image['id'])