db.volume_destroy(self.context, dest_vol['id'])
+@ddt.ddt
class LVMVolumeDriverTestCase(DriverTestCase):
"""Test case for VolumeDriver"""
driver_name = "cinder.volume.drivers.lvm.LVMVolumeDriver"
ret = self.volume.driver.unmanage(volume)
self.assertEqual(ret, None)
+ # Global setting, LVM setting, expected outcome
+ @ddt.data((10.0, 2.0, 2.0))
+ @ddt.data((10.0, None, 10.0))
+ @ddt.unpack
+ def test_lvm_max_over_subscription_ratio(self,
+ global_value,
+ lvm_value,
+ expected_value):
+ configuration = conf.Configuration(fake_opt, 'fake_group')
+ configuration.max_over_subscription_ratio = global_value
+ configuration.lvm_max_over_subscription_ratio = lvm_value
+
+ fake_vg = mock.Mock(fake_lvm.FakeBrickLVM('cinder-volumes', False,
+ None, 'default'))
+ lvm_driver = lvm.LVMVolumeDriver(configuration=configuration,
+ vg_obj=fake_vg, db=db)
+
+ self.assertEqual(expected_value,
+ lvm_driver.configuration.max_over_subscription_ratio)
+
class ISCSITestCase(DriverTestCase):
"""Test Case for ISCSIDriver"""
help='LVM conf file to use for the LVM driver in Cinder; '
'this setting is ignored if the specified file does '
'not exist (You can also specify \'None\' to not use '
- 'a conf file even if one exists).')
+ 'a conf file even if one exists).'),
+ cfg.FloatOpt('lvm_max_over_subscription_ratio',
+ # This option exists to provide a default value for the
+ # LVM driver which is different than the global default.
+ default=1.0,
+ help='max_over_subscription_ratio setting for the LVM '
+ 'driver. If set, this takes precedence over the '
+ 'general max_over_subscription_ratio option. If '
+ 'None, the general option is used.')
]
CONF = cfg.CONF
self.protocol = self.target_driver.protocol
self._sparse_copy_volume = False
+ if self.configuration.lvm_max_over_subscription_ratio is not None:
+ self.configuration.max_over_subscription_ratio = \
+ self.configuration.lvm_max_over_subscription_ratio
+
def _sizestr(self, size_in_g):
return '%sg' % size_in_g