ACIL FM
Dark
Refresh
Current DIR:
/opt/cloudlinux/venv/lib/python3.11/site-packages/clcommon
/
opt
cloudlinux
venv
lib
python3.11
site-packages
clcommon
Upload
Zip Selected
Delete Selected
Pilih semua
Nama
Ukuran
Permission
Aksi
cpapi
-
chmod
Open
Rename
Delete
lib
-
chmod
Open
Rename
Delete
public_hooks
-
chmod
Open
Rename
Delete
__pycache__
-
chmod
Open
Rename
Delete
clcagefs.py
10.99 MB
chmod
View
DL
Edit
Rename
Delete
clcaptain.py
1.96 MB
chmod
View
DL
Edit
Rename
Delete
clconfig.py
1.68 MB
chmod
View
DL
Edit
Rename
Delete
clconfpars.py
12.09 MB
chmod
View
DL
Edit
Rename
Delete
clcustomscript.py
1.16 MB
chmod
View
DL
Edit
Rename
Delete
cldebug.py
905 B
chmod
View
DL
Edit
Rename
Delete
clemail.py
1.65 MB
chmod
View
DL
Edit
Rename
Delete
clexception.py
1.14 MB
chmod
View
DL
Edit
Rename
Delete
clfunc.py
6.47 MB
chmod
View
DL
Edit
Rename
Delete
clhook.py
3.86 MB
chmod
View
DL
Edit
Rename
Delete
cllog.py
1.45 MB
chmod
View
DL
Edit
Rename
Delete
cloutput.py
471 B
chmod
View
DL
Edit
Rename
Delete
clproc.py
4.05 MB
chmod
View
DL
Edit
Rename
Delete
clpwd.py
7.74 MB
chmod
View
DL
Edit
Rename
Delete
clquota.py
1.27 MB
chmod
View
DL
Edit
Rename
Delete
clsec.py
657 B
chmod
View
DL
Edit
Rename
Delete
clwpos_lib.py
16.6 MB
chmod
View
DL
Edit
Rename
Delete
const.py
277 B
chmod
View
DL
Edit
Rename
Delete
evr_utils.py
3.55 MB
chmod
View
DL
Edit
Rename
Delete
features.py
5.01 MB
chmod
View
DL
Edit
Rename
Delete
group_info_reader.py
5.31 MB
chmod
View
DL
Edit
Rename
Delete
lock.py
1.02 MB
chmod
View
DL
Edit
Rename
Delete
mail_helper.py
4.45 MB
chmod
View
DL
Edit
Rename
Delete
mysql_lib.py
5.84 MB
chmod
View
DL
Edit
Rename
Delete
php_conf_reader.py
9.77 MB
chmod
View
DL
Edit
Rename
Delete
sysctl.py
7.61 MB
chmod
View
DL
Edit
Rename
Delete
ui_config.py
3.12 MB
chmod
View
DL
Edit
Rename
Delete
utils.py
33.03 MB
chmod
View
DL
Edit
Rename
Delete
utils_cmd.py
2.71 MB
chmod
View
DL
Edit
Rename
Delete
__init__.py
1.37 MB
chmod
View
DL
Edit
Rename
Delete
Edit file: /opt/cloudlinux/venv/lib/python3.11/site-packages/clcommon/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]
Simpan
Batal
Isi Zip:
Unzip
Create
Buat Folder
Buat File
Terminal / Execute
Run
Chmod Bulk
All File
All Folder
All File dan Folder
Apply