summaryrefslogtreecommitdiff
path: root/cinder/tests/unit/volume/drivers/ibm/test_storwize_svc.py
diff options
context:
space:
mode:
Diffstat (limited to 'cinder/tests/unit/volume/drivers/ibm/test_storwize_svc.py')
-rw-r--r--cinder/tests/unit/volume/drivers/ibm/test_storwize_svc.py75
1 files changed, 62 insertions, 13 deletions
diff --git a/cinder/tests/unit/volume/drivers/ibm/test_storwize_svc.py b/cinder/tests/unit/volume/drivers/ibm/test_storwize_svc.py
index 79d69cd0c..0b16810d3 100644
--- a/cinder/tests/unit/volume/drivers/ibm/test_storwize_svc.py
+++ b/cinder/tests/unit/volume/drivers/ibm/test_storwize_svc.py
@@ -4321,7 +4321,6 @@ class StorwizeSVCFcDriverTestCase(test.TestCase):
self.assertIsNotNone(host_name)
def test_storwize_get_host_from_connector_with_lshost_failure(self):
- self.skipTest('Bug 1640205')
self._connector.pop('initiator')
helper = self.fc_driver._helpers
# Create two hosts. The first is not related to the connector and
@@ -4341,12 +4340,6 @@ class StorwizeSVCFcDriverTestCase(test.TestCase):
host_name = helper.get_host_from_connector(self._connector)
self.assertIsNotNone(host_name)
- # Need to assert that lshost was actually called. The way
- # we do that is check that the next simulator error for lshost
- # has been reset.
- self.assertEqual(self.sim._next_cmd_error['lshost'], '',
- "lshost was not called in the simulator. The "
- "queued error still remains.")
def test_storwize_get_host_from_connector_with_lshost_failure2(self):
self._connector.pop('initiator')
@@ -6527,8 +6520,6 @@ class StorwizeSVCCommonDriverTestCase(test.TestCase):
self.assertTrue(each_pool['multiattach'])
self.assertLessEqual(each_pool['free_capacity_gb'],
each_pool['total_capacity_gb'])
- self.assertLessEqual(each_pool['allocated_capacity_gb'],
- each_pool['total_capacity_gb'])
self.assertEqual(25, each_pool['reserved_percentage'])
self.assertEqual(is_thin_provisioning_enabled,
each_pool['thin_provisioning_support'])
@@ -6543,8 +6534,6 @@ class StorwizeSVCCommonDriverTestCase(test.TestCase):
self._def_flags['storwize_svc_volpool_name'])
self.assertAlmostEqual(3328.0, each_pool['total_capacity_gb'])
self.assertAlmostEqual(3287.5, each_pool['free_capacity_gb'])
- self.assertAlmostEqual(25.0,
- each_pool['allocated_capacity_gb'])
if is_thin_provisioning_enabled:
self.assertAlmostEqual(
1576.96, each_pool['provisioned_capacity_gb'])
@@ -7257,7 +7246,7 @@ class StorwizeSVCCommonDriverTestCase(test.TestCase):
self.assertEqual(fields.GroupStatus.AVAILABLE,
model_update['status'])
# Delete Volume Group
- model_update = self.driver.delete_group(self.ctxt, volumegroup, None)
+ model_update = self.driver.delete_group(self.ctxt, volumegroup, [])
self.assertTrue(delete_volumegroup.called)
self.assertEqual(fields.GroupStatus.DELETED,
model_update[0]['status'])
@@ -7374,7 +7363,7 @@ class StorwizeSVCCommonDriverTestCase(test.TestCase):
# Delete Volume Group
model_update = self.driver.delete_group(self.ctxt, volumegroup,
- None)
+ [])
self.assertTrue(delete_volumegroup.called)
self.assertEqual(fields.GroupStatus.DELETED,
model_update[0]['status'])
@@ -7463,6 +7452,66 @@ class StorwizeSVCCommonDriverTestCase(test.TestCase):
@mock.patch.object(storwize_svc_common.StorwizeHelpers,
'get_system_info')
+ def test_storwize_delete_volumegroup_with_delete_volumes(self,
+ get_system_info):
+ """Test volume group creation and deletion"""
+
+ fake_system_info = {'code_level': (8, 5, 1, 0),
+ 'system_name': 'storwize-svc-sim',
+ 'system_id': '0123456789ABCDEF'}
+ get_system_info.return_value = fake_system_info
+ self.driver.do_setup(None)
+
+ # Seting the storwize_volume_group to True
+ self._set_flag('storwize_volume_group', True)
+
+ # Create volumegroup type
+ volumegroup_spec = {'volume_group_enabled': '<is> True'}
+ volumegroup_type_ref = group_types.create(self.ctxt,
+ 'volumegroup_type',
+ volumegroup_spec)
+ volumegroup_type = objects.GroupType.get_by_id(
+ self.ctxt, volumegroup_type_ref['id'])
+
+ # Create source volume
+ vol_type_ref = volume_types.create(self.ctxt, 'non_rep_type', {})
+ vol_type = objects.VolumeType.get_by_id(self.ctxt,
+ vol_type_ref['id'])
+ source_vol = self._generate_vol_info(vol_type)
+ self.driver.create_volume(source_vol)
+
+ # Create source volumegroup
+ source_volumegroup = testutils.create_group(
+ self.ctxt, group_type_id=volumegroup_type.id,
+ volume_type_ids=[vol_type_ref['id']])
+
+ model_update = self.driver.create_group(self.ctxt, source_volumegroup)
+ self.assertEqual(fields.GroupStatus.AVAILABLE,
+ model_update['status'])
+
+ # Add source volumes to source volumegroup
+ (model_update, add_volumes_update, remove_volumes_update) = (
+ self.driver.update_group(self.ctxt, source_volumegroup,
+ [source_vol], []))
+
+ self.assertEqual(fields.GroupStatus.AVAILABLE,
+ model_update['status'])
+ source_volumegroup_name = self.driver._get_volumegroup_name(
+ source_volumegroup)
+ self.assertEqual(source_volumegroup_name,
+ source_vol.metadata['Volume Group Name'])
+
+ # Delete Volume Group
+ model_update = self.driver.delete_group(self.ctxt,
+ source_volumegroup,
+ [source_vol])
+ self.assertEqual(fields.GroupStatus.DELETED,
+ model_update[0]['status'])
+ for volume in model_update[1]:
+ self.assertEqual('deleted', volume['status'])
+
+ @mock.patch.object(storwize_svc_common.StorwizeHelpers,
+ 'get_system_info')
@mock.patch.object(cinder.volume.volume_utils,
'is_group_a_type')
@mock.patch('cinder.volume.volume_utils.is_group_a_cg_snapshot_type')