┌────────────────────────────────┐ │ ░░░ ░░▓ ░▓▓ ███ ▓▓░ ▓░░ │ │ ~ M O O N ~ │ └────────────────────────────────┘
lin150.itlinks.com
LOCATION:
/opt/cloudlinux/venv/lib/python3.11/site-packages/cllimits/lib
☗ ROOT
↻ REFRESH
✎ EDIT FILE
EDITING: __init__.py
# -*- coding: utf-8 -*- # Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2019 All Rights Reserved # # Licensed under CLOUD LINUX LICENSE AGREEMENT # http://cloudlinux.com/docs/LICENSE.TXT import os import subprocess # The child interpreter acts on PYTHON* before the spawned script's first # statement, so it must not inherit them. Keep by name, not drop by name: a drop # list stops covering every name nobody listed and every name CPython adds later. # PYTHONWARNINGS is the one that must survive - sixteen scripts under # jenkins_tests/rpm_tests/p_lve-utils/ set PYTHONWARNINGS=error::UnicodeWarning # and then drive lve-utils binaries, and fifteen of them assert only on exit # codes, so dropping it would turn their detection into a silent no-op rather # than a visible failure. Analysis: CLOS-5881. CHILD_PYTHON_VARS_KEPT = ("PYTHONWARNINGS",) # The dynamic linker and the locale loader act earlier still, and no interpreter # flag suppresses these. lvectl loads the pylve C extension, so the linker is in # play for this child. CHILD_LOADER_VAR_PREFIX = "LD_" CHILD_LOADER_VARS = ("GCONV_PATH", "NLSPATH") def isolated_child_env(): """ Builds the environment for a root utility spawned by exec_utility(). Removes the variables that let the child interpreter or its dynamic linker resolve code from a location this process did not choose, and keeps the rest so the child behaves exactly as it does under an inherited environment. :return: dict to hand to exec_utility(env=...) :rtype: dict[str, str] """ env = {} for name, value in os.environ.items(): if name.startswith("PYTHON") and name not in CHILD_PYTHON_VARS_KEPT: continue if name.startswith(CHILD_LOADER_VAR_PREFIX) or name in CHILD_LOADER_VARS: continue env[name] = value # Assert the user-site suppression here instead of inheriting it from the # venv's pyvenv.cfg, which a different package owns. env["PYTHONNOUSERSITE"] = "1" return env def exec_utility(util_path, params, stderr=False, env=None): """ Executes supplied utility with supplied parameters :param util_path: string with path to callable utility :param params: utility parameters :param stderr: trigger to return stderr or not :param env: environment for the child; None inherits this process' own :return: Cortege (ret_code, cagefsctl_stdout) if stderr is False Cortege (ret_code, cagefsctl_stdout, cagefsctl_stderr) otherwise """ args = [] args.append(util_path) args.extend(params) with subprocess.Popen( args, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, env=env, ) as proc: out, err = proc.communicate() retcode = proc.returncode if stderr: return retcode, out.strip(), err.strip() return retcode, out.strip()
CANCEL
Name
Type
Size
Modified
Actions
↩ ..
DIR
—
—
📁 __pycache__/
DIR
—
2026-09-10 23:50
📄 __init__.py
PY
2.9 KB
2026-08-19 19:02
EDIT
📄 arg_parsers.py
PY
16.1 KB
2026-08-19 19:02
EDIT
📄 limits.py
PY
54.5 KB
2026-08-19 19:02
EDIT
📄 utils.py
PY
8.4 KB
2026-08-19 19:02
EDIT