def terminate_connection(self, volume, connector, **kwargs): if volume['provider_location'] is None: LOG.debug('No provider_location for volume %s.', volume['id']) return volume_iqn = volume['provider_location'].split(' ')[1] # Delete initiator iqns from target ACL LOG.info(('Terminating iscsi initiator: %(initiator)s ' 'for volume: %(id)s'), {"initiator": volume_iqn, "id": volume["id"]}) try: self._execute('cinder-rtstool', 'delete-initiator', volume_iqn, connector['initiator'], run_as_root=True) except putils.ProcessExecutionError: LOG.exception( "Failed to delete initiator iqn %s from target.", connector['initiator']) raise exception.ISCSITargetDetachFailed(volume_id=volume['id']) # We make changes persistent self._persist_configuration(volume['id']) LOG.info(('Terminated iscsi initiator ' 'for volume: %s'), volume["id"])
def test_terminate_connection_fail(self, _mock_execute): _mock_execute.side_effect = \ exception.ISCSITargetDetachFailed(self.testvol_1['id']) connector = {'initiator': 'fake_init'} self.assertRaises(exception.ISCSITargetDetachFailed, self.target.terminate_connection, self.testvol_1, connector)
def terminate_connection(self, volume, connector, **kwargs): volume_iqn = volume['provider_location'].split(' ')[1] # Delete initiator iqns from target ACL try: utils.execute('cinder-rtstool', 'delete-initiator', volume_iqn, connector['initiator'], run_as_root=True) except putils.ProcessExecutionError: LOG.error(_LE("Failed to delete initiator iqn %s to target.") % connector['initiator']) raise exception.ISCSITargetDetachFailed(volume_id=volume['id'])