X7ROOT File Manager
Current Path:
/opt/cloudlinux/venv/lib/python3.11/site-packages/clcommon
opt
/
cloudlinux
/
venv
/
lib
/
python3.11
/
site-packages
/
clcommon
/
ðŸ“
..
📄
__init__.py
(1.37 KB)
ðŸ“
__pycache__
📄
clcagefs.py
(10.99 KB)
📄
clcaptain.py
(1.96 KB)
📄
clconfig.py
(1.68 KB)
📄
clconfpars.py
(12.09 KB)
📄
clcustomscript.py
(1.16 KB)
📄
cldebug.py
(905 B)
📄
clemail.py
(1.65 KB)
📄
clexception.py
(1.14 KB)
📄
clfunc.py
(6.47 KB)
📄
clhook.py
(3.86 KB)
📄
cllog.py
(1.45 KB)
📄
cloutput.py
(471 B)
📄
clproc.py
(4.05 KB)
📄
clpwd.py
(7.74 KB)
📄
clquota.py
(1.27 KB)
📄
clsec.py
(657 B)
📄
clwpos_lib.py
(16.6 KB)
📄
const.py
(277 B)
ðŸ“
cpapi
📄
evr_utils.py
(3.55 KB)
📄
features.py
(4.96 KB)
📄
group_info_reader.py
(5.29 KB)
ðŸ“
lib
📄
lock.py
(1.02 KB)
📄
mail_helper.py
(4.45 KB)
📄
mysql_lib.py
(5.84 KB)
📄
php_conf_reader.py
(9.77 KB)
ðŸ“
public_hooks
📄
sysctl.py
(7.61 KB)
📄
ui_config.py
(3.12 KB)
📄
utils.py
(33.13 KB)
📄
utils_cmd.py
(2.71 KB)
Editing: clproc.py
# -*- coding: utf-8 -*- # Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2018 All Rights Reserved # # Licensed under CLOUD LINUX LICENSE AGREEMENT # http://cloudlinux.com/docs/LICENSE.TXT # import os PROC_LVE = '/proc/lve' LIMIT_LVP_ID = 4294967295 class ProcLveError(Exception): pass class NoSuchLvp(ProcLveError): pass class ProcLve: def __init__(self, proc_lve=PROC_LVE): self._lvp = 'lvp' self.list = 'list' self.proc_lve = proc_lve self._version = None def proc_lve_list(self): """ Return path to /proc/lve/list """ return os.path.join(self.proc_lve, self.list) def version(self): """ Return /proc/lve filesystem version """ if self._version is not None: return self._version with open(self.proc_lve_list(), encoding='utf-8') as f: line = f.read(3) # we need only first three symbols for parse version self._version = int(line.rsplit(':', 1)[0]) return self._version def proc_lve_map(self): return os.path.join(self.proc_lve, 'map') def proc_lve_resellers(self): """ Return path to /proc/lve/resellers """ return os.path.join(self.proc_lve, 'resellers') def resellers_supported(self): """ Check present /proc/lve/resellers """ return os.path.exists(self.proc_lve_resellers()) def get_list_path(self, lvp_id=0): """ Generate path to list file """ if lvp_id == 0: return self.proc_lve_list() else: return os.path.join(self.proc_lve_resellers(), self._lvp + str(lvp_id), self.list) def _extract_id(self, line): return int(line.split()[0].split(',')[-1]) def _lines(self, lvp_id=0): path = self.get_list_path(lvp_id=lvp_id) try: with open(path, encoding='utf-8') as list_: lines = list_.read().strip() except IOError as e: if e.errno == 2: # 2 code error - No such file or directory raise NoSuchLvp(f'No such lvp id {lvp_id}') from e else: raise lines = lines.split('\n')[1:] for line in lines: yield self._extract_id(line), line.rstrip(os.linesep) def lines(self, lvp_id=0, without_limits=True): for lve_id, line in self._lines(lvp_id=lvp_id): if lve_id == LIMIT_LVP_ID and without_limits: continue yield line def lve_id_list(self, lvp_id=0): for lve_id, _ in self._lines(lvp_id=lvp_id): if lve_id in (LIMIT_LVP_ID, 0): continue yield lve_id def lvp_id_list(self): """ Obtain from /proc/lve/resellers lvp id list """ for lvp_dir in os.listdir(self.proc_lve_resellers()): if lvp_dir.startswith(self._lvp): yield int(lvp_dir[len(self._lvp):]) def check_inside_list(self, id_, lvp_id=0): for lve_id in self.lve_id_list(lvp_id=lvp_id): if lve_id == id_: return True def exist_lvp(self, lvp_id): """ Check present lve top container """ return os.path.exists(self.get_list_path(lvp_id)) def detect_inside_lvp(self, id_): """ Find in which lve top container """ for lvp_id in self.lvp_id_list(): if self.exist_lvp(lvp_id) and self.check_inside_list(id_, lvp_id): return lvp_id def map(self): """ Obtain map from /proc/lve/map as dict """ map_dict = {} with open(self.proc_lve_map(), encoding='utf-8') as map_: lines = map_.read().strip() lines = lines.split('\n')[1:] for line in lines: lve_id_str, lvp_id_str = line.strip().split() map_dict[int(lve_id_str)] = int(lvp_id_str) return map_dict def map_lve_id_list(self, lvp_id): return [lve_id_ for lve_id_, lvp_id_ in list(self.map().items()) if lvp_id_ == lvp_id]
Upload File
Create Folder