Remove driver.set_execute()
This method doesn't appear to really be needed, and mostly exists to help unit tests. Update a few tests to mock out the required execute calls, and remove the method to make the driver interface a bit simpler. Change-Id: I70d8a7e74761ce7bc1e51bf9f3c49eb0ce0986e0
This commit is contained in:
parent
8e53849075
commit
9e494b1be6
@ -119,19 +119,6 @@ class GlusterFsDriverTestCase(test.TestCase):
|
|||||||
if not caught:
|
if not caught:
|
||||||
self.fail('Expected raised exception but nothing caught.')
|
self.fail('Expected raised exception but nothing caught.')
|
||||||
|
|
||||||
def test_set_execute(self):
|
|
||||||
drv = self._driver
|
|
||||||
|
|
||||||
rfsclient = os_brick.remotefs.remotefs.RemoteFsClient
|
|
||||||
|
|
||||||
with mock.patch.object(rfsclient, 'set_execute') as mock_set_execute:
|
|
||||||
def my_execute(*a, **k):
|
|
||||||
pass
|
|
||||||
|
|
||||||
drv.set_execute(my_execute)
|
|
||||||
|
|
||||||
mock_set_execute.assert_called_once_with(my_execute)
|
|
||||||
|
|
||||||
def test_local_path(self):
|
def test_local_path(self):
|
||||||
"""local_path common use case."""
|
"""local_path common use case."""
|
||||||
self.override_config("glusterfs_mount_point_base",
|
self.override_config("glusterfs_mount_point_base",
|
||||||
|
@ -65,7 +65,10 @@ class GPFSDriverTestCase(test.TestCase):
|
|||||||
|
|
||||||
self.driver = gpfs.GPFSDriver(configuration=conf.Configuration(None))
|
self.driver = gpfs.GPFSDriver(configuration=conf.Configuration(None))
|
||||||
self.driver.gpfs_execute = self._execute_wrapper
|
self.driver.gpfs_execute = self._execute_wrapper
|
||||||
self.driver.set_execute(self._execute_wrapper)
|
exec_patcher = mock.patch.object(self.driver, '_execute',
|
||||||
|
self._execute_wrapper)
|
||||||
|
exec_patcher.start()
|
||||||
|
self.addCleanup(exec_patcher.stop)
|
||||||
self.driver._cluster_id = '123456'
|
self.driver._cluster_id = '123456'
|
||||||
self.driver._gpfs_device = '/dev/gpfs'
|
self.driver._gpfs_device = '/dev/gpfs'
|
||||||
self.driver._storage_pool = 'system'
|
self.driver._storage_pool = 'system'
|
||||||
@ -1915,7 +1918,6 @@ class GPFSNFSDriverTestCase(test.TestCase):
|
|||||||
self.driver = gpfs.GPFSNFSDriver(configuration=conf.
|
self.driver = gpfs.GPFSNFSDriver(configuration=conf.
|
||||||
Configuration(None))
|
Configuration(None))
|
||||||
self.driver.gpfs_execute = self._execute_wrapper
|
self.driver.gpfs_execute = self._execute_wrapper
|
||||||
self.driver.set_execute(self._execute_wrapper)
|
|
||||||
self.context = context.get_admin_context()
|
self.context = context.get_admin_context()
|
||||||
self.context.user_id = 'fake'
|
self.context.user_id = 'fake'
|
||||||
self.context.project_id = 'fake'
|
self.context.project_id = 'fake'
|
||||||
|
@ -82,6 +82,10 @@ class ScalityDriverTestCase(test.TestCase):
|
|||||||
|
|
||||||
self.assertRaises(exception.VolumeBackendAPIException,
|
self.assertRaises(exception.VolumeBackendAPIException,
|
||||||
self.drv.check_for_setup_error)
|
self.drv.check_for_setup_error)
|
||||||
|
exec_patcher = mock.patch.object(self.drv, '_execute',
|
||||||
|
mock.MagicMock())
|
||||||
|
exec_patcher.start()
|
||||||
|
self.addCleanup(exec_patcher.stop)
|
||||||
|
|
||||||
@mock.patch.object(driver.urllib.request, 'urlopen')
|
@mock.patch.object(driver.urllib.request, 'urlopen')
|
||||||
def test_check_for_setup_error_with_urlerror(self, mock_urlopen):
|
def test_check_for_setup_error_with_urlerror(self, mock_urlopen):
|
||||||
|
@ -56,52 +56,51 @@ class SRBLvmTestCase(test_brick_lvm.BrickLvmTestCase):
|
|||||||
raise AssertionError('unexpected command called: %s' % cmd_string)
|
raise AssertionError('unexpected command called: %s' % cmd_string)
|
||||||
|
|
||||||
def test_activate_vg(self):
|
def test_activate_vg(self):
|
||||||
executor = mock.MagicMock()
|
with mock.patch.object(self.vg, '_execute') as executor:
|
||||||
self.vg.set_execute(executor)
|
self.vg.activate_vg()
|
||||||
self.vg.activate_vg()
|
executor.assert_called_once_with(
|
||||||
executor.assert_called_once_with('vgchange', '-ay',
|
'vgchange', '-ay',
|
||||||
self.configuration.volume_group_name,
|
self.configuration.volume_group_name,
|
||||||
root_helper=self.vg._root_helper,
|
root_helper=self.vg._root_helper,
|
||||||
run_as_root=True)
|
run_as_root=True)
|
||||||
|
|
||||||
def test_deactivate_vg(self):
|
def test_deactivate_vg(self):
|
||||||
executor = mock.MagicMock()
|
with mock.patch.object(self.vg, '_execute') as executor:
|
||||||
self.vg.set_execute(executor)
|
self.vg.deactivate_vg()
|
||||||
self.vg.deactivate_vg()
|
executor.assert_called_once_with(
|
||||||
executor.assert_called_once_with('vgchange', '-an',
|
'vgchange', '-an',
|
||||||
self.configuration.volume_group_name,
|
self.configuration.volume_group_name,
|
||||||
root_helper=self.vg._root_helper,
|
root_helper=self.vg._root_helper,
|
||||||
run_as_root=True)
|
run_as_root=True)
|
||||||
|
|
||||||
def test_destroy_vg(self):
|
def test_destroy_vg(self):
|
||||||
executor = mock.MagicMock()
|
with mock.patch.object(self.vg, '_execute') as executor:
|
||||||
self.vg.set_execute(executor)
|
self.vg.destroy_vg()
|
||||||
self.vg.destroy_vg()
|
executor.assert_called_once_with(
|
||||||
executor.assert_called_once_with('vgremove', '-f',
|
'vgremove', '-f',
|
||||||
self.configuration.volume_group_name,
|
self.configuration.volume_group_name,
|
||||||
root_helper=self.vg._root_helper,
|
root_helper=self.vg._root_helper,
|
||||||
run_as_root=True)
|
run_as_root=True)
|
||||||
|
|
||||||
def test_pv_resize(self):
|
def test_pv_resize(self):
|
||||||
executor = mock.MagicMock()
|
with mock.patch.object(self.vg, '_execute') as executor:
|
||||||
self.vg.set_execute(executor)
|
self.vg.pv_resize('fake-pv', '50G')
|
||||||
self.vg.pv_resize('fake-pv', '50G')
|
executor.assert_called_once_with(
|
||||||
executor.assert_called_once_with('pvresize',
|
'pvresize',
|
||||||
'--setphysicalvolumesize',
|
'--setphysicalvolumesize',
|
||||||
'50G', 'fake-pv',
|
'50G', 'fake-pv',
|
||||||
root_helper=self.vg._root_helper,
|
root_helper=self.vg._root_helper,
|
||||||
run_as_root=True)
|
run_as_root=True)
|
||||||
|
|
||||||
def test_extend_thin_pool_nothin(self):
|
def test_extend_thin_pool_nothin(self):
|
||||||
executor =\
|
with mock.patch.object(self.vg, '_execute') as executor:
|
||||||
mock.MagicMock(side_effect=Exception('Unexpected call to execute'))
|
executor.side_effect = AssertionError
|
||||||
self.vg.set_execute(executor)
|
thin_calc =\
|
||||||
thin_calc =\
|
mock.MagicMock(
|
||||||
mock.MagicMock(
|
side_effect=
|
||||||
side_effect=
|
Exception('Unexpected call to _calculate_thin_pool_size'))
|
||||||
Exception('Unexpected call to _calculate_thin_pool_size'))
|
self.vg._calculate_thin_pool_size = thin_calc
|
||||||
self.vg._calculate_thin_pool_size = thin_calc
|
self.vg.extend_thin_pool()
|
||||||
self.vg.extend_thin_pool()
|
|
||||||
|
|
||||||
def test_extend_thin_pool_thin(self):
|
def test_extend_thin_pool_thin(self):
|
||||||
self.stubs.Set(processutils, 'execute', self.fake_execute)
|
self.stubs.Set(processutils, 'execute', self.fake_execute)
|
||||||
@ -737,7 +736,11 @@ class SRBDriverTestCase(test.TestCase):
|
|||||||
self._driver = srb.SRBDriver(configuration=self.configuration)
|
self._driver = srb.SRBDriver(configuration=self.configuration)
|
||||||
# Stub processutils.execute for static methods
|
# Stub processutils.execute for static methods
|
||||||
self.stubs.Set(processutils, 'execute', self._fake_execute)
|
self.stubs.Set(processutils, 'execute', self._fake_execute)
|
||||||
self._driver.set_execute(self._fake_execute)
|
exec_patcher = mock.patch.object(self._driver,
|
||||||
|
'_execute',
|
||||||
|
self._fake_execute)
|
||||||
|
exec_patcher.start()
|
||||||
|
self.addCleanup(exec_patcher.stop)
|
||||||
self._configure_driver()
|
self._configure_driver()
|
||||||
|
|
||||||
def test_setup(self):
|
def test_setup(self):
|
||||||
|
@ -5616,7 +5616,10 @@ class DriverTestCase(test.TestCase):
|
|||||||
def _fake_execute(_command, *_args, **_kwargs):
|
def _fake_execute(_command, *_args, **_kwargs):
|
||||||
"""Fake _execute."""
|
"""Fake _execute."""
|
||||||
return self.output, None
|
return self.output, None
|
||||||
self.volume.driver.set_execute(_fake_execute)
|
exec_patcher = mock.patch.object(self.volume.driver, '_execute',
|
||||||
|
_fake_execute)
|
||||||
|
exec_patcher.start()
|
||||||
|
self.addCleanup(exec_patcher.stop)
|
||||||
self.volume.driver.set_initialized()
|
self.volume.driver.set_initialized()
|
||||||
self.addCleanup(self._cleanup)
|
self.addCleanup(self._cleanup)
|
||||||
|
|
||||||
|
@ -306,7 +306,7 @@ class BaseVD(object):
|
|||||||
self.configuration.append_config_values(iser_opts)
|
self.configuration.append_config_values(iser_opts)
|
||||||
utils.setup_tracing(self.configuration.safe_get('trace_flags'))
|
utils.setup_tracing(self.configuration.safe_get('trace_flags'))
|
||||||
|
|
||||||
self.set_execute(execute)
|
self._execute = execute
|
||||||
self._stats = {}
|
self._stats = {}
|
||||||
|
|
||||||
self.pools = []
|
self.pools = []
|
||||||
@ -439,9 +439,6 @@ class BaseVD(object):
|
|||||||
raise exception.RemoveExportException(volume=snapshot.id,
|
raise exception.RemoveExportException(volume=snapshot.id,
|
||||||
reason=ex)
|
reason=ex)
|
||||||
|
|
||||||
def set_execute(self, execute):
|
|
||||||
self._execute = execute
|
|
||||||
|
|
||||||
def set_initialized(self):
|
def set_initialized(self):
|
||||||
self._initialized = True
|
self._initialized = True
|
||||||
|
|
||||||
|
@ -76,11 +76,6 @@ class GlusterfsDriver(remotefs_drv.RemoteFSSnapDriver, driver.CloneableVD,
|
|||||||
'glusterfs', root_helper, execute,
|
'glusterfs', root_helper, execute,
|
||||||
glusterfs_mount_point_base=self.base)
|
glusterfs_mount_point_base=self.base)
|
||||||
|
|
||||||
def set_execute(self, execute):
|
|
||||||
super(GlusterfsDriver, self).set_execute(execute)
|
|
||||||
if self._remotefsclient:
|
|
||||||
self._remotefsclient.set_execute(execute)
|
|
||||||
|
|
||||||
def do_setup(self, context):
|
def do_setup(self, context):
|
||||||
"""Any initialization the volume driver does while starting."""
|
"""Any initialization the volume driver does while starting."""
|
||||||
super(GlusterfsDriver, self).do_setup(context)
|
super(GlusterfsDriver, self).do_setup(context)
|
||||||
|
@ -221,9 +221,6 @@ class HDSNFSDriver(nfs.NfsDriver):
|
|||||||
|
|
||||||
return service
|
return service
|
||||||
|
|
||||||
def set_execute(self, execute):
|
|
||||||
self._execute = execute
|
|
||||||
|
|
||||||
def extend_volume(self, volume, new_size):
|
def extend_volume(self, volume, new_size):
|
||||||
"""Extend an existing volume.
|
"""Extend an existing volume.
|
||||||
|
|
||||||
|
@ -90,12 +90,10 @@ class IBMNAS_NFSDriver(nfs.NfsDriver, san.SanDriver):
|
|||||||
self.configuration.san_ssh_port = self.configuration.nas_ssh_port
|
self.configuration.san_ssh_port = self.configuration.nas_ssh_port
|
||||||
self.configuration.ibmnas_platform_type = \
|
self.configuration.ibmnas_platform_type = \
|
||||||
self.configuration.ibmnas_platform_type.lower()
|
self.configuration.ibmnas_platform_type.lower()
|
||||||
|
self._execute = execute
|
||||||
LOG.info(_LI('Initialized driver for IBMNAS Platform: %s.'),
|
LOG.info(_LI('Initialized driver for IBMNAS Platform: %s.'),
|
||||||
self.configuration.ibmnas_platform_type)
|
self.configuration.ibmnas_platform_type)
|
||||||
|
|
||||||
def set_execute(self, execute):
|
|
||||||
self._execute = utils.execute
|
|
||||||
|
|
||||||
def do_setup(self, context):
|
def do_setup(self, context):
|
||||||
"""Any initialization the volume driver does while starting."""
|
"""Any initialization the volume driver does while starting."""
|
||||||
super(IBMNAS_NFSDriver, self).do_setup(context)
|
super(IBMNAS_NFSDriver, self).do_setup(context)
|
||||||
|
@ -75,9 +75,6 @@ class NetAppNfsDriver(driver.ManageableVD,
|
|||||||
self.configuration.append_config_values(na_opts.netapp_img_cache_opts)
|
self.configuration.append_config_values(na_opts.netapp_img_cache_opts)
|
||||||
self.configuration.append_config_values(na_opts.netapp_nfs_extra_opts)
|
self.configuration.append_config_values(na_opts.netapp_nfs_extra_opts)
|
||||||
|
|
||||||
def set_execute(self, execute):
|
|
||||||
self._execute = execute
|
|
||||||
|
|
||||||
def do_setup(self, context):
|
def do_setup(self, context):
|
||||||
super(NetAppNfsDriver, self).do_setup(context)
|
super(NetAppNfsDriver, self).do_setup(context)
|
||||||
self._context = context
|
self._context = context
|
||||||
|
@ -112,11 +112,6 @@ class NfsDriver(driver.ExtendVD, remotefs.RemoteFSDriver):
|
|||||||
|
|
||||||
self._sparse_copy_volume_data = True
|
self._sparse_copy_volume_data = True
|
||||||
|
|
||||||
def set_execute(self, execute):
|
|
||||||
super(NfsDriver, self).set_execute(execute)
|
|
||||||
if self._remotefsclient:
|
|
||||||
self._remotefsclient.set_execute(execute)
|
|
||||||
|
|
||||||
def do_setup(self, context):
|
def do_setup(self, context):
|
||||||
"""Any initialization the volume driver does while starting."""
|
"""Any initialization the volume driver does while starting."""
|
||||||
super(NfsDriver, self).do_setup(context)
|
super(NfsDriver, self).do_setup(context)
|
||||||
|
@ -836,11 +836,6 @@ class SRBISCSIDriver(SRBDriver, driver.ISCSIDriver):
|
|||||||
self.configuration.safe_get('volume_backend_name') or 'SRB_iSCSI'
|
self.configuration.safe_get('volume_backend_name') or 'SRB_iSCSI'
|
||||||
self.protocol = 'iSCSI'
|
self.protocol = 'iSCSI'
|
||||||
|
|
||||||
def set_execute(self, execute):
|
|
||||||
super(SRBISCSIDriver, self).set_execute(execute)
|
|
||||||
if self.target_driver is not None:
|
|
||||||
self.target_driver.set_execute(execute)
|
|
||||||
|
|
||||||
def ensure_export(self, context, volume):
|
def ensure_export(self, context, volume):
|
||||||
device_path = self._mapper_path(volume)
|
device_path = self._mapper_path(volume)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user