Add volume dependency test coverage
These tests are handy for testing the current RBD
deletion work.
Change-Id: I281f881ad565e565839522ddf02057f7545c7146
diff --git a/cinder_tempest_plugin/api/volume/test_volume_dependency.py b/cinder_tempest_plugin/api/volume/test_volume_dependency.py
index 96a3c83..b204e84 100644
--- a/cinder_tempest_plugin/api/volume/test_volume_dependency.py
+++ b/cinder_tempest_plugin/api/volume/test_volume_dependency.py
@@ -63,3 +63,59 @@
snapshot_source_volume['id'])
self.volumes_client.delete_volume(source_volume['id'])
self.volumes_client.wait_for_resource_deletion(source_volume['id'])
+
+ def _delete_vol_and_wait(self, vol_id):
+ self.volumes_client.delete_volume(vol_id)
+
+ self.volumes_client.wait_for_resource_deletion(vol_id)
+
+ def _delete_snap_and_wait(self, snap_id):
+ self.snapshots_client.delete_snapshot(snap_id)
+
+ self.snapshots_client.wait_for_resource_deletion(snap_id)
+
+ @decorators.idempotent_id('f8278e5c-50ff-4a1d-8670-3ca0866d411a')
+ def test_delete_dep_chain(self):
+ """Test a complex chain of volume and snapshot dependency deletion."""
+ volume_1 = self.create_volume()['id']
+ snapshot_of_vol_1 = self.create_snapshot(volume_1)['id']
+
+ volume_2_args = {'snapshot_id': snapshot_of_vol_1}
+ volume_2 = self.create_volume(**volume_2_args)['id']
+
+ snapshot_of_vol_2 = self.create_snapshot(volume_2)['id']
+
+ volume_3_args = {'snapshot_id': snapshot_of_vol_2}
+ volume_3 = self.create_volume(**volume_3_args)['id']
+
+ volume_4_args = {'source_volid': volume_3}
+ volume_4 = self.create_volume(**volume_4_args)['id']
+
+ self._delete_snap_and_wait(snapshot_of_vol_1)
+ self._delete_snap_and_wait(snapshot_of_vol_2)
+
+ self._delete_vol_and_wait(volume_3)
+ self._delete_vol_and_wait(volume_1)
+ self._delete_vol_and_wait(volume_2)
+ self._delete_vol_and_wait(volume_4)
+
+ @decorators.idempotent_id('63447ef8-e667-4796-ba66-1b9b883af1f1')
+ def test_delete_dep_chain_2(self):
+ """Test a different chain of volume/snapshot dependency deletion."""
+ volume_1 = self.create_volume()['id']
+ snapshot_of_vol_1 = self.create_snapshot(volume_1)['id']
+
+ volume_2_args = {'snapshot_id': snapshot_of_vol_1}
+ volume_2 = self.create_volume(**volume_2_args)['id']
+
+ snapshot_of_vol_2 = self.create_snapshot(volume_2)['id']
+
+ volume_3_args = {'snapshot_id': snapshot_of_vol_2}
+ volume_3 = self.create_volume(**volume_3_args)['id']
+
+ self._delete_snap_and_wait(snapshot_of_vol_1)
+ self._delete_snap_and_wait(snapshot_of_vol_2)
+
+ self._delete_vol_and_wait(volume_1)
+ self._delete_vol_and_wait(volume_2)
+ self._delete_vol_and_wait(volume_3)