Skip to content

Commit 1df8632

Browse files
author
suraksha
committed
Soft restart - Handled code even if os file is removed
Signed-off-by: suraksha <p.v.sai.suraksha@ibm.com>
1 parent 8fa3736 commit 1df8632

File tree

1 file changed

+51
-48
lines changed

1 file changed

+51
-48
lines changed

zvmsdk/smtclient.py

Lines changed: 51 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1407,56 +1407,59 @@ def guest_capture(self, userid, image_name, capture_type='rootonly',
14071407

14081408
def guest_get_os_version(self, userid):
14091409
os_version = ''
1410-
release_file = self.execute_cmd(userid, 'ls /etc/*-release')
1411-
if '/etc/os-release' in release_file:
1412-
# Parse os-release file, part of the output looks like:
1413-
# NAME="Red Hat Enterprise Linux Server"
1414-
# ID="rhel"
1415-
# VERSION_ID="7.0"
1416-
1417-
release_info = self.execute_cmd(userid, 'cat /etc/os-release')
1418-
release_dict = {}
1419-
for item in release_info:
1420-
if item:
1421-
release_dict[item.split('=')[0]] = item.split('=')[1]
1422-
distro = release_dict['ID']
1423-
version = release_dict['VERSION_ID']
1424-
if '"' in distro:
1425-
distro = eval(distro)
1426-
if '"' in version:
1427-
version = eval(version)
1428-
os_version = '%s%s' % (distro, version)
1429-
return os_version
1430-
elif '/etc/redhat-release' in release_file:
1431-
# The output looks like:
1432-
# "Red Hat Enterprise Linux Server release 6.7 (Santiago)"
1433-
distro = 'rhel'
1434-
release_info = self.execute_cmd(userid, 'cat /etc/redhat-release')
1435-
distro_version = release_info[0].split()[6]
1436-
os_version = ''.join((distro, distro_version))
1437-
return os_version
1438-
elif '/etc/SuSE-release' in release_file:
1439-
# The output for this file looks like:
1440-
# SUSE Linux Enterprise Server 11 (s390x)
1441-
# VERSION = 11
1442-
# PATCHLEVEL = 3
1443-
distro = 'sles'
1444-
release_info = self.execute_cmd(userid, 'cat /etc/SuSE-release')
1445-
LOG.debug('OS release info is %s' % release_info)
1446-
release_version = '.'.join((release_info[1].split('=')[1].strip(),
1447-
release_info[2].split('=')[1].strip()))
1448-
os_version = ''.join((distro, release_version))
1449-
return os_version
1450-
elif '/etc/system-release' in release_file:
1451-
# For some rhel6.7 system, it only have system-release file and
1452-
# the output looks like:
1453-
# "Red Hat Enterprise Linux Server release 6.7 (Santiago)"
1454-
distro = 'rhel'
1455-
release_info = self.execute_cmd(userid, 'cat /etc/system-release')
1456-
distro_version = release_info[0].split()[6]
1457-
os_version = ''.join((distro, distro_version))
1410+
1411+
# Check IUCV channel configured or not
1412+
try:
1413+
self.execute_cmd(userid, 'date')
1414+
except Exception as err:
14581415
return os_version
14591416

1417+
# Check OS release file
1418+
try:
1419+
release_file = self.execute_cmd(userid, 'ls /etc/*-release')
1420+
1421+
if '/etc/os-release' in release_file:
1422+
release_info = self.execute_cmd(userid, 'cat /etc/os-release')
1423+
release_dict = {
1424+
item.split('=')[0]: item.split('=')[1]
1425+
for item in release_info if item
1426+
}
1427+
distro = eval(release_dict.get('ID', '')) if '"' in release_dict.get('ID', '') else release_dict.get(
1428+
'ID', '')
1429+
version = eval(release_dict.get('VERSION_ID', '')) if '"' in release_dict.get('VERSION_ID',
1430+
'') else release_dict.get(
1431+
'VERSION_ID', '')
1432+
os_version = f'{distro}{version}'
1433+
1434+
elif '/etc/redhat-release' in release_file:
1435+
distro = 'rhel'
1436+
release_info = self.execute_cmd(userid, 'cat /etc/redhat-release')
1437+
distro_version = release_info[0].split()[6]
1438+
os_version = f'{distro}{distro_version}'
1439+
1440+
elif '/etc/SuSE-release' in release_file:
1441+
distro = 'sles'
1442+
release_info = self.execute_cmd(userid, 'cat /etc/SuSE-release')
1443+
release_version = '.'.join((
1444+
release_info[1].split('=')[1].strip(),
1445+
release_info[2].split('=')[1].strip()
1446+
))
1447+
os_version = f'{distro}{release_version}'
1448+
1449+
elif '/etc/system-release' in release_file:
1450+
distro = 'rhel'
1451+
release_info = self.execute_cmd(userid, 'cat /etc/system-release')
1452+
distro_version = release_info[0].split()[6]
1453+
os_version = f'{distro}{distro_version}'
1454+
1455+
else:
1456+
os_version = "-"
1457+
1458+
except Exception as err:
1459+
os_version = "-"
1460+
1461+
return os_version
1462+
14601463
def _get_capture_devices(self, userid, capture_type='rootonly'):
14611464
capture_devices = []
14621465
if capture_type == 'rootonly':

0 commit comments

Comments
 (0)