OXIESEC PANEL
- Current Dir:
/
/
opt
/
cloudlinux
/
venv
/
bin
Server IP: 2a02:4780:11:1084:0:327f:3464:10
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
02/07/2025 10:01:37 PM
rwxr-xr-x
📄
Activate.ps1
8.82 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
activate
1.65 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
activate.csh
913 bytes
12/18/2024 10:23:16 AM
rw-r--r--
📄
activate.fish
2.14 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
alembic
229 bytes
12/18/2024 10:23:16 AM
rwxr-xr-x
📄
chardetect
237 bytes
12/18/2024 10:23:16 AM
rwxr-xr-x
📄
cl_sysctl
4.51 KB
06/23/2025 12:47:48 PM
rwxr-xr-x
📄
clcpapi
3.64 KB
06/23/2025 12:47:48 PM
rwxr-xr-x
📄
coverage
231 bytes
12/18/2024 10:23:16 AM
rwxr-xr-x
📄
coverage-3.11
231 bytes
12/18/2024 10:23:16 AM
rwxr-xr-x
📄
coverage3
231 bytes
12/18/2024 10:23:16 AM
rwxr-xr-x
📄
cpanel-dbmapping
3.83 KB
06/23/2025 12:47:48 PM
rwxr-xr-x
📄
da_suid_caller.py
686 bytes
06/23/2025 12:47:48 PM
rw-r--r--
📄
detect-requirements
238 bytes
12/18/2024 10:23:16 AM
rwxr-xr-x
📄
dodgy
224 bytes
12/18/2024 10:23:16 AM
rwxr-xr-x
📄
epylint
235 bytes
12/18/2024 10:23:16 AM
rwxr-xr-x
📄
f2py
232 bytes
12/18/2024 10:23:16 AM
rwxr-xr-x
📄
f2py3
232 bytes
12/18/2024 10:23:16 AM
rwxr-xr-x
📄
f2py3.11
232 bytes
12/18/2024 10:23:16 AM
rwxr-xr-x
📄
flake8
230 bytes
12/18/2024 10:23:16 AM
rwxr-xr-x
📄
futurize
231 bytes
12/18/2024 10:23:16 AM
rwxr-xr-x
📄
get_gprof
1.84 KB
12/18/2024 10:23:16 AM
rwxr-xr-x
📄
get_objgraph
1.63 KB
12/18/2024 10:23:16 AM
rwxr-xr-x
📄
isort
225 bytes
12/18/2024 10:23:16 AM
rwxr-xr-x
📄
isort-identify-imports
259 bytes
12/18/2024 10:23:16 AM
rwxr-xr-x
📄
jsonschema
229 bytes
12/18/2024 10:23:16 AM
rwxr-xr-x
📄
lvestats_config_reader.py
1.19 KB
04/30/2024 07:38:37 PM
rw-r--r--
📄
mako-render
229 bytes
12/18/2024 10:23:16 AM
rwxr-xr-x
📄
normalizer
260 bytes
12/18/2024 10:23:16 AM
rwxr-xr-x
📄
pasteurize
233 bytes
12/18/2024 10:23:16 AM
rwxr-xr-x
📄
pip
237 bytes
12/18/2024 10:23:16 AM
rwxr-xr-x
📄
pip3
237 bytes
12/18/2024 10:23:16 AM
rwxr-xr-x
📄
pip3.11
237 bytes
12/18/2024 10:23:16 AM
rwxr-xr-x
📄
plesk_suid_caller.py
905 bytes
06/23/2025 12:47:48 PM
rw-r--r--
📄
prospector
229 bytes
12/18/2024 10:23:16 AM
rwxr-xr-x
📄
py.test
237 bytes
12/18/2024 10:23:16 AM
rwxr-xr-x
📄
pycodestyle
228 bytes
12/18/2024 10:23:16 AM
rwxr-xr-x
📄
pydocstyle
229 bytes
12/18/2024 10:23:16 AM
rwxr-xr-x
📄
pyflakes
227 bytes
12/18/2024 10:23:16 AM
rwxr-xr-x
📄
pylint
233 bytes
12/18/2024 10:23:16 AM
rwxr-xr-x
📄
pylint-config
249 bytes
12/18/2024 10:23:16 AM
rwxr-xr-x
📄
pyreverse
239 bytes
12/18/2024 10:23:16 AM
rwxr-xr-x
📄
pysemver
225 bytes
12/18/2024 10:23:16 AM
rwxr-xr-x
📄
pytest
237 bytes
12/18/2024 10:23:16 AM
rwxr-xr-x
📄
python
15.59 KB
06/23/2025 03:48:27 PM
rwxr-xr-x
📄
python3
15.59 KB
06/23/2025 03:48:27 PM
rwxr-xr-x
📄
python3.11
15.59 KB
06/23/2025 03:48:27 PM
rwxr-xr-x
📄
raven
235 bytes
12/18/2024 10:23:16 AM
rwxr-xr-x
📄
symilar
235 bytes
12/18/2024 10:23:16 AM
rwxr-xr-x
📄
tap
223 bytes
12/18/2024 10:23:16 AM
rwxr-xr-x
📄
tappy
223 bytes
12/18/2024 10:23:16 AM
rwxr-xr-x
📄
undill
603 bytes
12/18/2024 10:23:16 AM
rwxr-xr-x
📄
virtualenv
254 bytes
12/18/2024 10:23:16 AM
rwxr-xr-x
Editing: clcpapi
Close
#!/opt/cloudlinux/venv/bin/python3 -bb # -*- 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 """ CloudLinux control panel API command line interface """ import argparse from clcommon import cpapi from clcommon.cloutput import prepare_data_json, prepare_attention_json from clcommon.cpapi import cpapiexceptions def cpapi_parser(): parser = argparse.ArgumentParser(description="%(prog)s - CloudLinux control panel API command line interface") parser.add_argument('-j', '--json', action='store_true', default=False, help='Output in json format') subparsers = parser.add_subparsers(dest='command') docroot_parser = subparsers.add_parser('docroot') docroot_parser.add_argument('domain', help='Return document root for domain') userdomains_parser = subparsers.add_parser('userdomains') userdomains_parser.add_argument('userdomains', help='Return domain and document root pairs for control panel user') dblogin_cplogin_pairs_parser = subparsers.add_parser("dblogin_cplogin_pairs") dblogin_cplogin_pairs_parser.add_argument("--cplogin_lst", nargs="*", help="Return mapping for this system users") dblogin_cplogin_pairs_parser.add_argument("--with_system_users", action="store_true", default=False, help="Show system users in output") reseller_users = subparsers.add_parser("reseller-users", help="Show reseller users") reseller_users.add_argument( 'resellername', type=str, nargs='?', help='Reseller name') return parser def flat_plain(data, sep=' '): return '\n'.join([sep.join(tuple_) for tuple_ in data]) def main(): parser = cpapi_parser() namespace = parser.parse_args() output_ = None exit_code = 0 try: if namespace.command == 'docroot': domain, user = cpapi.docroot(namespace.domain) if namespace.json: output_ = prepare_data_json({'domain': domain, 'user': user}) else: output_ = domain + ' ' + user elif namespace.command == 'userdomains': domain_docroot_pairs = cpapi.userdomains(namespace.userdomains) if namespace.json: data = [{'domain': domain_docroot[0], 'docroot': domain_docroot[1]} for domain_docroot in domain_docroot_pairs] output_ = prepare_data_json(data) else: output_ = flat_plain(domain_docroot_pairs) elif namespace.command == 'dblogin_cplogin_pairs': db_mapping = cpapi.dblogin_cplogin_pairs(namespace.cplogin_lst, namespace.with_system_users) if namespace.json: output_ = prepare_data_json(db_mapping) else: output_ = flat_plain(db_mapping) elif namespace.command == 'reseller-users': users = cpapi.reseller_users(namespace.resellername) if namespace.json: output_ = prepare_data_json(users) else: output_ = '\n'.join(users) except cpapiexceptions.CPAPIException as e_: if namespace.json: output_ = prepare_attention_json(str(e_)) else: exit_code = 1 output_ = 'ERROR: ' + str(e_) return output_, exit_code if __name__ == '__main__': import sys output_, exit_code = main() if output_: print(output_) if exit_code: sys.exit(exit_code)