Merge "Set LVM driver default overprovisioning ratio to 1.0"

This commit is contained in:
Jenkins 2016-01-23 05:57:28 +00:00 committed by Gerrit Code Review
commit cbc99485fc
2 changed files with 34 additions and 1 deletions

View File

@ -6612,6 +6612,7 @@ class GenericVolumeDriverTestCase(DriverTestCase):
db.volume_destroy(self.context, dest_vol['id'])
@ddt.ddt
class LVMVolumeDriverTestCase(DriverTestCase):
"""Test case for VolumeDriver"""
driver_name = "cinder.volume.drivers.lvm.LVMVolumeDriver"
@ -7367,6 +7368,26 @@ class LVMVolumeDriverTestCase(DriverTestCase):
ret = self.volume.driver.unmanage(volume)
self.assertIsNone(ret)
# 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"""

View File

@ -60,7 +60,15 @@ volume_opts = [
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
@ -101,6 +109,10 @@ class LVMVolumeDriver(driver.VolumeDriver):
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