summaryrefslogtreecommitdiff
path: root/ironic_python_agent/extensions/iscsi.py
diff options
context:
space:
mode:
Diffstat (limited to 'ironic_python_agent/extensions/iscsi.py')
-rw-r--r--ironic_python_agent/extensions/iscsi.py15
1 files changed, 13 insertions, 2 deletions
diff --git a/ironic_python_agent/extensions/iscsi.py b/ironic_python_agent/extensions/iscsi.py
index bc7ef0d4..7fca4154 100644
--- a/ironic_python_agent/extensions/iscsi.py
+++ b/ironic_python_agent/extensions/iscsi.py
@@ -113,8 +113,19 @@ def clean_up(device):
"""Clean up iSCSI for a given device."""
try:
rts_root = rtslib_fb.RTSRoot()
- except (EnvironmentError, rtslib_fb.RTSLibError) as exc:
- LOG.info('Linux-IO is not available, not cleaning up. Error: %s.', exc)
+ except (OSError, EnvironmentError, rtslib_fb.RTSLibError) as exc:
+ LOG.info('Linux-IO is not available, attemting to stop tgtd mapping. '
+ 'Error: %s.', exc)
+ cmd = ['tgtadm', '--lld', 'iscsi', '--mode', 'target', '--op',
+ 'unbind', '--tid', '1', '--initiator-address', 'ALL']
+ _execute(cmd, "Error when cleaning up iscsi binds.")
+
+ cmd = ['sync']
+ _execute(cmd, "Error flushing buffers to disk.")
+
+ cmd = ['tgtadm', '--lld', 'iscsi', '--mode', 'target', '--op',
+ 'delete', '--tid', '1']
+ _execute(cmd, "Error deleting the iscsi target configuration.")
return
storage = None