| #!/usr/bin/env python3 |
| |
| r""" |
| This file contains utilities associated with the host OS. |
| """ |
| |
| import sys |
| import os |
| |
| sys.path.append(os.path.join(os.path.dirname(__file__), "../lib")) |
| |
| import bmc_ssh_utils |
| import var_funcs |
| |
| |
| def get_os_release_info(): |
| 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 |
| """ |
| |
| stdout, stderr, rc =\ |
| bmc_ssh_utils.os_execute_command("cat /etc/os-release") |
| |
| return var_funcs.key_value_outbuf_to_dict(stdout, delim="=", strip='"') |