'''
Get system information
'''
import os
import pkg_resources
DMI_FIELDS = [
"bios_date",
"bios_vendor",
"bios_version",
"product_name",
"product_serial",
"product_version",
"sys_vendor"
]
[docs]def getOSVersion():
"""
Return a string identifying the host OS.
"""
try:
with open('/proc/version_signature', 'r') as source:
return source.read().strip()
except:
return None
[docs]def getPackageVersion(name):
"""
Get a python package version.
Returns: a string or None
"""
try:
pkg = pkg_resources.get_distribution(name)
return pkg.version
except:
return None
[docs]def getDMI():
"""
Read hardware information from DMI.
This function attempts to read from known files in /sys/class/dmi/id/. If
any are missing or an error occurs, those fields will be omitted from the
result.
Returns: a dictionary with fields such as bios_version and product_serial.
"""
dmi = dict()
for field in DMI_FIELDS:
path = os.path.join("/sys/class/dmi/id", field)
try:
with open(path, 'r') as source:
value = source.read().strip()
dmi[field] = value
except:
pass
return dmi