REDROOM
PHP 8.3.31
Path:
Logout
Edit File
Size: 2.32 KB
Close
/opt/cloudlinux/venv/lib64/python3.11/site-packages/lve_utils/hooks/domain_limits_hook.py
Text
Base64
#!/opt/cloudlinux/venv/bin/python3 -bb # 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 logging import subprocess from clcommon.public_hooks.lib import ModifyDomainHook, ModifyUserHook from clcommon.lib.cledition import lve_supported_or_exit from websiteisolation.id_registry import registry_path_by_username log = logging.getLogger(__name__) class DomainLimitsHook(ModifyDomainHook, ModifyUserHook): """ Keep the LVD on-disk state (domains.json + binary id-registry) in sync with control-panel domain and user events so that per-domain limits keep working. """ LVECTL = '/usr/sbin/lvectl' @lve_supported_or_exit def post_modify_domain( self, username, domain, new_domain=None, include_subdomains=None, old_docroot=None, new_docroot=None, **kwargs): if not registry_path_by_username(username): return current_domain = new_domain or domain cmd = [ self.LVECTL, 'regenerate-domains', '--username', username, '--domain', current_domain, ] if new_domain: cmd += ['--old-domain', domain] if old_docroot: cmd += ['--old-docroot', old_docroot] result = subprocess.run(cmd, capture_output=True, check=False) if result.returncode != 0: log.warning( 'regenerate-domains failed (rc=%d): %s', result.returncode, result.stderr.decode(errors='replace').strip(), ) @lve_supported_or_exit def post_modify_user(self, username, new_name=None, new_owner=None, **kwargs): if new_name is None: return if not registry_path_by_username(new_name): return cmd = [ self.LVECTL, 'regenerate-domains', '--username', new_name, ] result = subprocess.run(cmd, capture_output=True, check=False) if result.returncode != 0: log.warning( 'regenerate-domains after user rename failed (rc=%d): %s', result.returncode, result.stderr.decode(errors='replace').strip(), )
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 1 × Files: 5
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
__pycache__
DIR
-
drwxr-xr-x
2026-06-03 06:30:21
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
domain_limits_hook.py
2.32 KB
lrw-r--r--
2026-05-20 18:04:05
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
lve_control_hook.py
1.15 KB
lrw-r--r--
2026-05-20 18:04:05
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
package_limits_sync_hook.py
779 B
lrwxr-xr-x
2026-05-20 18:04:05
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
plesk_package_rename_hook.py
1.42 KB
lrw-r--r--
2026-05-20 18:04:05
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
sync_map_hook.py
1.03 KB
lrw-r--r--
2026-05-20 18:04:05
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).