D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
opt
/
cloudlinux
/
venv
/
lib
/
python3.11
/
site-packages
/
clcagefslib
/
webisolation
/
Filename :
triggers.py
back
Copy
# -*- coding: utf-8 -*- # Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2021 All Rights Reserved # # Licensed under CLOUD LINUX LICENSE AGREEMENT # http://cloudlinux.com/docs/LICENSE.TXT """ Triggers for website isolation. """ import os import subprocess import logging def trigger_xray_ini_regeneration(user: str, domain: str): """ Call xray regeneration script if it exists. This ensures xray.ini files are created in per-website directories when website isolation is enabled. """ xray_regen_script = "/usr/share/alt-php-xray/cloudlinux-xray-regenerate-ini" if not os.path.isfile(xray_regen_script): # ok when xray is not installed logging.debug("xray regeneration script not found: %s", xray_regen_script) return try: subprocess.run( [xray_regen_script, "--user", user, "--domain", domain], capture_output=True, timeout=30, check=True, ) except (subprocess.CalledProcessError, subprocess.TimeoutExpired) as e: logging.warning(f"Failed to regenerate xray ini for {user}: {e.stdout}") def trigger_ssa_ini_regeneration(user: str): """ Call SSA regeneration script if it exists. This ensures clos_ssa.ini files are created in per-website directories when website isolation is enabled. """ ssa_regen_script = "/usr/share/clos_ssa/regenerate_clos_ssa_ini.py" if not os.path.isfile(ssa_regen_script): # ok when ssa is not installed logging.debug("ssa regeneration script not found: %s", ssa_regen_script) return try: subprocess.run( [ssa_regen_script, f"--user={user}"], capture_output=True, timeout=30, check=True ) except (subprocess.CalledProcessError, subprocess.TimeoutExpired) as e: logging.warning(f"Failed to regenerate SSA ini for {user}: {e.stdout}")