1*a28061a0SGeorge Keishing#!/usr/bin/env python3 2*a28061a0SGeorge Keishing 3*a28061a0SGeorge Keishingr""" 4*a28061a0SGeorge KeishingThis file contains utilities associated with the host OS. 5*a28061a0SGeorge Keishing""" 6*a28061a0SGeorge Keishing 7*a28061a0SGeorge Keishingimport os 8*a28061a0SGeorge Keishingimport sys 9*a28061a0SGeorge Keishing 10*a28061a0SGeorge Keishingsys.path.append(os.path.join(os.path.dirname(__file__), "../lib")) 11*a28061a0SGeorge Keishing 12*a28061a0SGeorge Keishingimport bmc_ssh_utils # NOQA 13*a28061a0SGeorge Keishingimport var_funcs # NOQA 14*a28061a0SGeorge Keishing 15*a28061a0SGeorge Keishing 16*a28061a0SGeorge Keishingdef get_os_release_info(default_cmd="cat /etc/os-release"): 17*a28061a0SGeorge Keishing r""" 18*a28061a0SGeorge Keishing 19*a28061a0SGeorge Keishing Get os-release info and return it as a dictionary. 20*a28061a0SGeorge Keishing 21*a28061a0SGeorge Keishing An example of the contents of /etc/os-release: 22*a28061a0SGeorge Keishing 23*a28061a0SGeorge Keishing NAME="Red Hat Enterprise Linux Server" 24*a28061a0SGeorge Keishing VERSION="7.5 (Maipo)" 25*a28061a0SGeorge Keishing ID="rhel" 26*a28061a0SGeorge Keishing ID_LIKE="fedora" 27*a28061a0SGeorge Keishing VARIANT="Server" 28*a28061a0SGeorge Keishing VARIANT_ID="server" 29*a28061a0SGeorge Keishing VERSION_ID="7.5" 30*a28061a0SGeorge Keishing PRETTY_NAME="Red Hat Enterprise Linux Server 7.5 Beta (Maipo)" 31*a28061a0SGeorge Keishing ANSI_COLOR="0;31" 32*a28061a0SGeorge Keishing CPE_NAME="cpe:/o:redhat:enterprise_linux:7.5:beta:server" 33*a28061a0SGeorge Keishing HOME_URL="https://www.redhat.com/" 34*a28061a0SGeorge Keishing BUG_REPORT_URL="https://bugzilla.redhat.com/" 35*a28061a0SGeorge Keishing 36*a28061a0SGeorge Keishing REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 7" 37*a28061a0SGeorge Keishing REDHAT_BUGZILLA_PRODUCT_VERSION=7.5 38*a28061a0SGeorge Keishing REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux" 39*a28061a0SGeorge Keishing REDHAT_SUPPORT_PRODUCT_VERSION="7.5 Beta" 40*a28061a0SGeorge Keishing 41*a28061a0SGeorge Keishing For the data shown above, this function will return the following 42*a28061a0SGeorge Keishing dictionary: 43*a28061a0SGeorge Keishing 44*a28061a0SGeorge Keishing result: 45*a28061a0SGeorge Keishing [name]: Red Hat Enterprise Linux Server 46*a28061a0SGeorge Keishing [version]: 7.5 (Maipo) 47*a28061a0SGeorge Keishing [id]: rhel 48*a28061a0SGeorge Keishing [id_like]: fedora 49*a28061a0SGeorge Keishing [variant]: Server 50*a28061a0SGeorge Keishing [variant_id]: server 51*a28061a0SGeorge Keishing [version_id]: 7.5 52*a28061a0SGeorge Keishing [pretty_name]: Red Hat Enterprise Linux Server 7.5 Beta (Maipo) 53*a28061a0SGeorge Keishing [ansi_color]: 0;31 54*a28061a0SGeorge Keishing [cpe_name]: cpe:/o:redhat:enterprise_linux:7.5:beta:server 55*a28061a0SGeorge Keishing [home_url]: https://www.redhat.com/ 56*a28061a0SGeorge Keishing [bug_report_url]: https://bugzilla.redhat.com/ 57*a28061a0SGeorge Keishing [redhat_bugzilla_product]: Red Hat Enterprise Linux 7 58*a28061a0SGeorge Keishing [redhat_bugzilla_product_version]: 7.5 59*a28061a0SGeorge Keishing [redhat_support_product]: Red Hat Enterprise Linux 60*a28061a0SGeorge Keishing [redhat_support_product_version]: 7.5 Beta 61*a28061a0SGeorge Keishing 62*a28061a0SGeorge Keishing 63*a28061a0SGeorge Keishing . Description of argument(s): 64*a28061a0SGeorge Keishing default_cmd A string command to be executed (e.g cat /etc/os-release). 65*a28061a0SGeorge Keishing 66*a28061a0SGeorge Keishing """ 67*a28061a0SGeorge Keishing 68*a28061a0SGeorge Keishing stdout, stderr, rc = bmc_ssh_utils.os_execute_command(default_cmd) 69*a28061a0SGeorge Keishing 70*a28061a0SGeorge Keishing return var_funcs.key_value_outbuf_to_dict(stdout, delim="=", strip='"') 71