Fix iSCSI disconnect
We have some unlinking done in os-brick for iSCSI connections that only happen in some cases and uses a privsep python method to unlink, so when we call it we get and "ImportError: No module named rootwrap" error. This patch fixes this by calling as sudo the "unlink" command. (cherry picked from commit 65e675c129c4baa12dc78769fbb9d855a0a85b78)
This commit is contained in:
@@ -17,6 +17,7 @@ History
|
|||||||
- Accept id field set to None on resource creation.
|
- Accept id field set to None on resource creation.
|
||||||
- Disabling of sudo command wasn't working.
|
- Disabling of sudo command wasn't working.
|
||||||
- Fix volume cloning on XtremIO
|
- Fix volume cloning on XtremIO
|
||||||
|
- Fix iSCSI detach issue related to privsep
|
||||||
|
|
||||||
0.1.0 (2017-11-03)
|
0.1.0 (2017-11-03)
|
||||||
------------------
|
------------------
|
||||||
|
|||||||
@@ -226,6 +226,19 @@ class Backend(object):
|
|||||||
volume_cmd.logging.setup(volume_cmd.CONF, 'cinder')
|
volume_cmd.logging.setup(volume_cmd.CONF, 'cinder')
|
||||||
volume_cmd.python_logging.captureWarnings(True)
|
volume_cmd.python_logging.captureWarnings(True)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def unlink_root(*links, **kwargs):
|
||||||
|
no_errors = kwargs.get('no_errors', False)
|
||||||
|
raise_at_end = kwargs.get('raise_at_end', False)
|
||||||
|
exc = brick_exception.ExceptionChainer()
|
||||||
|
catch_exception = no_errors or raise_at_end
|
||||||
|
for link in links:
|
||||||
|
with exc.context(catch_exception, 'Unlink failed for %s', link):
|
||||||
|
putils.execute('unlink', link, run_as_root=True,
|
||||||
|
root_helper=Backend.root_helper)
|
||||||
|
if not no_errors and raise_at_end and exc:
|
||||||
|
raise exc
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def _set_priv_helper(cls, root_helper):
|
def _set_priv_helper(cls, root_helper):
|
||||||
utils.get_root_helper = lambda: root_helper
|
utils.get_root_helper = lambda: root_helper
|
||||||
@@ -254,6 +267,8 @@ class Backend(object):
|
|||||||
|
|
||||||
utils.connector.get_connector_properties = my_bgcp
|
utils.connector.get_connector_properties = my_bgcp
|
||||||
utils.connector.InitiatorConnector.factory = staticmethod(my_bgc)
|
utils.connector.InitiatorConnector.factory = staticmethod(my_bgc)
|
||||||
|
if hasattr(rootwrap, 'unlink_root'):
|
||||||
|
rootwrap.unlink_root = cls.unlink_root
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def _set_coordinator(cls, file_locks_path):
|
def _set_coordinator(cls, file_locks_path):
|
||||||
|
|||||||
Reference in New Issue
Block a user