allow error code 21 when checking iscsi session before login

On a node with no iscsi established sessions running (e.g. a new
node) 'iscsiadm -m session' may return error code 21 signifying
that there aren't any sessions, etc. to execute on. In this case
it's perfectly valid and the login should still proceed.

Change-Id: I1cee2a1aa55e44b9a66b8a1809d75c4cbd703777
This commit is contained in:
Paul Marshall 2013-12-17 10:54:17 -06:00
parent 42360fe65d
commit 0a8266d782
1 changed files with 5 additions and 3 deletions

View File

@ -90,10 +90,12 @@ class OVZISCSIStorageDriver(ovzvolume.OVZVolume):
if not self.iscsi_properties['target_discovered']:
self._run_iscsiadm(('--op', 'new'))
def session_currently_connected(self):
def session_currently_connected(self, **kwargs):
check_exit_code = kwargs.pop('check_exit_code', [0])
out = ovz_utils.execute(
'iscsiadm', '-m', 'session', run_as_root=True,
raise_on_error=False)
raise_on_error=False,
check_exit_code=check_exit_code)
if out:
for line in out.splitlines():
if self.iscsi_properties['target_iqn'] in line:
@ -117,7 +119,7 @@ class OVZISCSIStorageDriver(ovzvolume.OVZVolume):
self.set_iscsi_auth()
try:
if not self.session_currently_connected():
if not self.session_currently_connected(check_exit_code=[0, 21]):
LOG.debug(_('iSCSI session for %s not connected, '
'connecting now') %
self.iscsi_properties['target_iqn'])