blob: a1b4223bb5b41f5a2076c0d2a6f6fa0a1796efd0 [file] [log] [blame]
#!/usr/bin/env python3
r"""
This file contains utilities associated with the host OS.
"""
import os
import sys
sys.path.append(os.path.join(os.path.dirname(__file__), "../lib"))
import bmc_ssh_utils # NOQA
import var_funcs # NOQA
def get_os_release_info(default_cmd="cat /etc/os-release"):
r"""
Get os-release info and return it as a dictionary.
An example of the contents of /etc/os-release:
NAME="Red Hat Enterprise Linux Server"
VERSION="7.5 (Maipo)"
ID="rhel"
ID_LIKE="fedora"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="7.5"
PRETTY_NAME="Red Hat Enterprise Linux Server 7.5 Beta (Maipo)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:redhat:enterprise_linux:7.5:beta:server"
HOME_URL="https://www.redhat.com/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 7"
REDHAT_BUGZILLA_PRODUCT_VERSION=7.5
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="7.5 Beta"
For the data shown above, this function will return the following
dictionary:
result:
[name]: Red Hat Enterprise Linux Server
[version]: 7.5 (Maipo)
[id]: rhel
[id_like]: fedora
[variant]: Server
[variant_id]: server
[version_id]: 7.5
[pretty_name]: Red Hat Enterprise Linux Server 7.5 Beta (Maipo)
[ansi_color]: 0;31
[cpe_name]: cpe:/o:redhat:enterprise_linux:7.5:beta:server
[home_url]: https://www.redhat.com/
[bug_report_url]: https://bugzilla.redhat.com/
[redhat_bugzilla_product]: Red Hat Enterprise Linux 7
[redhat_bugzilla_product_version]: 7.5
[redhat_support_product]: Red Hat Enterprise Linux
[redhat_support_product_version]: 7.5 Beta
. Description of argument(s):
default_cmd A string command to be executed (e.g cat /etc/os-release).
"""
stdout, stderr, rc = bmc_ssh_utils.os_execute_command(default_cmd)
return var_funcs.key_value_outbuf_to_dict(stdout, delim="=", strip='"')