| Server IP : 172.67.206.42 / Your IP : 104.23.243.50 Web Server : Apache System : Linux server.localhost.com 6.8.0-85-generic #85-Ubuntu SMP PREEMPT_DYNAMIC Thu Sep 18 15:26:59 UTC 2025 x86_64 User : pahana ( 1029) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /usr/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