Server IP : 15.235.198.142 / Your IP : 216.73.216.126 Web Server : Apache/2.4.58 (Ubuntu) System : Linux ballsack 6.8.0-45-generic #45-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 30 12:02:04 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /lib/python3/dist-packages/landscape/lib/ |
Upload File : |
"""Get information from os-release.""" import os OS_RELEASE_FILENAME = "/var/lib/snapd/hostfs/etc/os-release" OS_RELEASE_FILENAME_FALLBACK = "/etc/os-release" OS_RELEASE_FILENAME_SECONDARY_FALLBACK = "/usr/lib/os-release" OS_RELEASE_FILE_KEYS = { "NAME": "distributor-id", "PRETTY_NAME": "description", "VERSION_ID": "release", "VERSION_CODENAME": "code-name", } def get_os_filename(): """ Provide the appropriate file for os release info. If a snap, we want the host os so need to use /var/lib/snapd/hostfs/etc/os-release, if not a snap /etc/os-release will be used as first fallback or /usr/lib/os-release as a fallback as indicated in os-release at Freedesktop.org """ os_filename = OS_RELEASE_FILENAME if not os.path.exists(os_filename) or not os.access( os_filename, os.R_OK, ): os_filename = OS_RELEASE_FILENAME_FALLBACK if not os.path.exists(os_filename) or not os.access( os_filename, os.R_OK, ): os_filename = OS_RELEASE_FILENAME_FALLBACK return os_filename def parse_os_release(os_release_filename=None): """ Returns a C{dict} holding information about the system LSB release by attempting to parse C{os_release_filename} if specified. If no filename is provided @raises: A FileNotFoundError if C{filename} does not exist. """ info = {} if os_release_filename is None: os_release_filename = get_os_filename() with open(os_release_filename) as fd: for line in fd: key, value = line.split("=") if key in OS_RELEASE_FILE_KEYS: key = OS_RELEASE_FILE_KEYS[key.strip()] value = value.strip().strip('"') info[key] = value return info