@@ -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