Tests for volume<->image dependencies
Detect problems related to Cinder volumes not allowing Glance images to be deleted. Change-Id: I5fee23951958fc0031b59ce437a963c4cea28529
This commit is contained in:
parent
5a5e1bf665
commit
755e755c68
|
@ -13,6 +13,7 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from tempest.common import waiters
|
||||
from tempest import config
|
||||
from tempest.lib import decorators
|
||||
|
||||
|
@ -119,3 +120,84 @@ class VolumeDependencyTests(base.BaseVolumeTest):
|
|||
self._delete_vol_and_wait(volume_1)
|
||||
self._delete_vol_and_wait(volume_2)
|
||||
self._delete_vol_and_wait(volume_3)
|
||||
|
||||
@classmethod
|
||||
def del_image(cls, id):
|
||||
images_client = cls.os_primary.image_client_v2
|
||||
images_client.delete_image(id)
|
||||
images_client.wait_for_resource_deletion(id)
|
||||
|
||||
@decorators.idempotent_id('0e20bd6e-440f-41d8-9b5d-fc047ac00423')
|
||||
def test_image_volume_dependencies(self):
|
||||
image_args = {
|
||||
'disk_format': 'raw',
|
||||
'container_format': 'bare',
|
||||
'name': 'image-for-test-0e20bd6e-440f-41d8-9b5d-fc047ac00423'
|
||||
}
|
||||
image = self.create_image_with_data(**image_args)
|
||||
|
||||
# create a volume from the image
|
||||
vol_args = {'name': ('volume1-for-test'
|
||||
'0e20bd6e-440f-41d8-9b5d-fc047ac00423'),
|
||||
'imageRef': image['id']}
|
||||
volume1 = self.create_volume(**vol_args)
|
||||
waiters.wait_for_volume_resource_status(self.volumes_client,
|
||||
volume1['id'],
|
||||
'available')
|
||||
|
||||
snapshot1 = self.create_snapshot(volume1['id'])
|
||||
|
||||
vol2_args = {'name': ('volume2-for-test-'
|
||||
'0e20bd6e-440f-41d8-9b5d-fc047ac00423'),
|
||||
'snapshot_id': snapshot1['id']}
|
||||
volume2 = self.create_volume(**vol2_args)
|
||||
waiters.wait_for_volume_resource_status(self.volumes_client,
|
||||
volume2['id'],
|
||||
'available')
|
||||
|
||||
self.snapshots_client.delete_snapshot(snapshot1['id'])
|
||||
self.snapshots_client.wait_for_resource_deletion(snapshot1['id'])
|
||||
|
||||
self.volumes_client.delete_volume(volume1['id'])
|
||||
self.volumes_client.wait_for_resource_deletion(volume1['id'])
|
||||
|
||||
self.del_image(image['id'])
|
||||
|
||||
@decorators.idempotent_id('e6050452-06bd-4c7f-9912-45178c83e379')
|
||||
def test_image_volume_dependencies_2(self):
|
||||
image_args = {
|
||||
'disk_format': 'raw',
|
||||
'container_format': 'bare',
|
||||
'name': 'image-for-test-e6050452-06bd-4c7f-9912-45178c83e379'
|
||||
}
|
||||
image = self.create_image_with_data(**image_args)
|
||||
|
||||
# create a volume from the image
|
||||
vol_args = {'name': ('volume1-for-test'
|
||||
'e6050452-06bd-4c7f-9912-45178c83e379'),
|
||||
'imageRef': image['id']}
|
||||
volume1 = self.create_volume(**vol_args)
|
||||
waiters.wait_for_volume_resource_status(self.volumes_client,
|
||||
volume1['id'],
|
||||
'available')
|
||||
|
||||
snapshot1 = self.create_snapshot(volume1['id'])
|
||||
|
||||
vol2_args = {'name': ('volume2-for-test-'
|
||||
'e6050452-06bd-4c7f-9912-45178c83e379'),
|
||||
'snapshot_id': snapshot1['id']}
|
||||
volume2 = self.create_volume(**vol2_args)
|
||||
waiters.wait_for_volume_resource_status(self.volumes_client,
|
||||
volume2['id'],
|
||||
'available')
|
||||
|
||||
self.snapshots_client.delete_snapshot(snapshot1['id'])
|
||||
self.snapshots_client.wait_for_resource_deletion(snapshot1['id'])
|
||||
|
||||
self.volumes_client.delete_volume(volume2['id'])
|
||||
self.volumes_client.wait_for_resource_deletion(volume2['id'])
|
||||
|
||||
self.del_image(image['id'])
|
||||
|
||||
self.volumes_client.delete_volume(volume1['id'])
|
||||
self.volumes_client.wait_for_resource_deletion(volume1['id'])
|
||||
|
|
Loading…
Reference in New Issue