blob: f1632010510075257dbc909e8e2745d584df56c6 [file] [log] [blame]
George Keishinge7e91712021-09-03 11:28:44 -05001#!/usr/bin/env python3
Michael Walsh6dbdfef2018-05-30 10:35:26 -05002
3r"""
4This file contains utilities associated with the host OS.
5"""
6
George Keishingb1cfbde2018-05-30 11:50:07 -05007import sys
8import os
9
10sys.path.append(os.path.join(os.path.dirname(__file__), "../lib"))
11
Michael Walsh6dbdfef2018-05-30 10:35:26 -050012import bmc_ssh_utils
13import var_funcs
14
Joy Onyerikwu004ad3c2018-06-11 16:29:56 -050015
Michael Walsh6dbdfef2018-05-30 10:35:26 -050016def get_os_release_info():
17 r"""
18
19 Get os-release info and return it as a dictionary.
20
21 An example of the contents of /etc/os-release:
22
23 NAME="Red Hat Enterprise Linux Server"
24 VERSION="7.5 (Maipo)"
25 ID="rhel"
26 ID_LIKE="fedora"
27 VARIANT="Server"
28 VARIANT_ID="server"
29 VERSION_ID="7.5"
30 PRETTY_NAME="Red Hat Enterprise Linux Server 7.5 Beta (Maipo)"
31 ANSI_COLOR="0;31"
32 CPE_NAME="cpe:/o:redhat:enterprise_linux:7.5:beta:server"
33 HOME_URL="https://www.redhat.com/"
34 BUG_REPORT_URL="https://bugzilla.redhat.com/"
35
36 REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 7"
37 REDHAT_BUGZILLA_PRODUCT_VERSION=7.5
38 REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux"
39 REDHAT_SUPPORT_PRODUCT_VERSION="7.5 Beta"
40
41 For the data shown above, this function will return the following
42 dictionary:
43
44 result:
45 [name]: Red Hat Enterprise Linux Server
46 [version]: 7.5 (Maipo)
47 [id]: rhel
48 [id_like]: fedora
49 [variant]: Server
50 [variant_id]: server
51 [version_id]: 7.5
52 [pretty_name]: Red Hat Enterprise Linux Server 7.5 Beta (Maipo)
53 [ansi_color]: 0;31
54 [cpe_name]: cpe:/o:redhat:enterprise_linux:7.5:beta:server
55 [home_url]: https://www.redhat.com/
56 [bug_report_url]: https://bugzilla.redhat.com/
57 [redhat_bugzilla_product]: Red Hat Enterprise Linux 7
58 [redhat_bugzilla_product_version]: 7.5
59 [redhat_support_product]: Red Hat Enterprise Linux
60 [redhat_support_product_version]: 7.5 Beta
61 """
62
63 stdout, stderr, rc =\
64 bmc_ssh_utils.os_execute_command("cat /etc/os-release")
65
66 return var_funcs.key_value_outbuf_to_dict(stdout, delim="=", strip='"')