Fix iscsi volumes not being attached
The iscsi target session object returned by wmi can sometimes be uppercase while the one sent by nova is always lowercase. String comparisson for these names should take this into account. Change-Id: If592f875415e72062c9834fc7d52231856a689bf Closes-Bug: #1639765
This commit is contained in:
@@ -354,19 +354,19 @@ class ISCSIInitiatorUtilsTestCase(test_base.OsWinBaseTestCase):
|
||||
'_get_iscsi_sessions')
|
||||
def test_get_iscsi_target_sessions(self, mock_get_iscsi_sessions,
|
||||
target_sessions_found=True):
|
||||
fake_session = mock.Mock(TargetNodeName=mock.sentinel.target_name,
|
||||
fake_session = mock.Mock(TargetNodeName="FAKE_TARGET_NAME",
|
||||
ConnectionCount=1)
|
||||
fake_disconn_session = mock.Mock(
|
||||
TargetNodeName=mock.sentinel.target_name,
|
||||
TargetNodeName="fake_target_name",
|
||||
ConnectionCount=0)
|
||||
other_session = mock.Mock(TargetNodeName=mock.sentinel.other_target,
|
||||
other_session = mock.Mock(TargetNodeName="other_target_name",
|
||||
ConnectionCount=1)
|
||||
|
||||
sessions = [fake_session, fake_disconn_session, other_session]
|
||||
mock_get_iscsi_sessions.return_value = sessions
|
||||
|
||||
resulted_tgt_sessions = self._initiator._get_iscsi_target_sessions(
|
||||
mock.sentinel.target_name)
|
||||
"fake_target_name")
|
||||
|
||||
self.assertEqual([fake_session], resulted_tgt_sessions)
|
||||
|
||||
|
||||
@@ -205,8 +205,9 @@ class ISCSIInitiatorUtils(object):
|
||||
def _get_iscsi_target_sessions(self, target_name, connected_only=True):
|
||||
sessions = self._get_iscsi_sessions()
|
||||
return [session for session in sessions
|
||||
if session.TargetNodeName == target_name and
|
||||
(session.ConnectionCount > 0 or not connected_only)]
|
||||
if session.TargetNodeName
|
||||
and session.TargetNodeName.upper() == target_name.upper()
|
||||
and (session.ConnectionCount > 0 or not connected_only)]
|
||||
|
||||
@retry_decorator(error_codes=(iscsierr.ISDSC_SESSION_BUSY,
|
||||
iscsierr.ISDSC_DEVICE_BUSY_ON_SESSION))
|
||||
|
||||
Reference in New Issue
Block a user