Add new test case for volume retype
This test validates the change of volume's type from
non-multiattach to multiattach and vice versa.
Change-Id: Iad673e2a769e35708d058bbbac348dd3bb4811a7
Signed-off-by: Yosi Ben Shimon <ybenshim@redhat.com>
diff --git a/tempest/api/volume/admin/test_volume_retype.py b/tempest/api/volume/admin/test_volume_retype.py
index 4a3f494..251cf8e 100644
--- a/tempest/api/volume/admin/test_volume_retype.py
+++ b/tempest/api/volume/admin/test_volume_retype.py
@@ -204,3 +204,44 @@
# Retype the volume from snapshot
self._retype_volume(src_vol, migration_policy='never')
+
+
+class VolumeRetypeMultiattachTest(VolumeRetypeTest):
+ """Test volume retype with/without multiattach"""
+
+ volume_min_microversion = '3.50'
+ volume_max_microversion = 'latest'
+
+ @classmethod
+ def resource_setup(cls):
+ super(VolumeRetypeMultiattachTest, cls).resource_setup()
+ extra_specs_src = {"multiattach": '<is> True'}
+ cls.src_vol_type = cls.create_volume_type()
+ cls.dst_vol_type = cls.create_volume_type(extra_specs=extra_specs_src)
+
+ def _verify_migration(self, source_vol, dest_vol):
+ self.assertEqual(dest_vol['status'], "available")
+ self.assertEqual(dest_vol['volume_type'], self.dst_vol_type['name'])
+ if "multiattach" in self.dst_vol_type['extra_specs'].keys():
+ self.assertEqual(dest_vol['multiattach'], True)
+ else:
+ self.assertEqual(dest_vol['multiattach'], False)
+
+ @decorators.idempotent_id('c0521465-ed82-4d03-961d-a68d673a5051')
+ def test_volume_retype_multiattach(self):
+ """Test volume retype with/without multiattach
+
+ 1. Create dst_vol_type with "multiattach = '<is> True'"
+ 2. Create src_vol_type without the "multiattach" property
+ 3. Retype volume from src_vol_type (non-multiattach)
+ to dst_vol_type(multiattach) and vice versa
+ 4. Verify successful retype.
+ """
+ # Retype from non-multiattach to multiattach
+ vol = self.create_volume(volume_type=self.src_vol_type['name'])
+ self._retype_volume(vol, migration_policy='never')
+
+ self.dst_vol_type = self.src_vol_type
+
+ # Retype from multiattach to non-multiattach
+ self._retype_volume(vol, migration_policy='never')