PATH:
opt
/
cloudlinux
/
venv
/
lib
/
python3.11
/
site-packages
/
lve_utils
/
hooks
/
__pycache__
� ��iF � �| � d dl Z d dlZd dlmZmZ d dlmZ d dlmZ e j e � � Z G d� dee� � ZdS )� N)�ModifyDomainHook�ModifyUserHook)�lve_supported_or_exit)�registry_path_by_usernamec �N � e Zd ZdZdZe dd�� � Ze dd�� � ZdS )�DomainLimitsHookz� 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. z/usr/sbin/lvectlNc �N � t |� � sd S |p|}| j dd|d|g} |r| d|gz } |r| d|gz } t j | dd�� � } | j d k rNt � d | j | j � d�� � � � � � � d S d S ) N�regenerate-domains� --usernamez--domainz--old-domainz --old-docrootTF��capture_output�checkr z%regenerate-domains failed (rc=%d): %s�replace��errors� r �LVECTL� subprocess�run� returncode�log�warning�stderr�decode�strip)�self�username�domain� new_domain�include_subdomains�old_docroot�new_docroot�kwargs�current_domain�cmd�results �(py/lve_utils/hooks/domain_limits_hook.py�post_modify_domainz#DomainLimitsHook.post_modify_domain s� � � )��2�2� ��F�#�-�v�� �K�-��(��� �� � ,��N�F�+�+�C�� 2��O�[�1�1�C����D��F�F�F�����!�!��K�K�7��!�� �$�$�I�$�6�6�<�<�>�>� � � � � � "�!� c �& � |�d S t |� � sd S | j dd|g}t j |dd�� � }|j dk rNt � d|j |j � d� � � � � � � � d S d S ) Nr r TFr r z7regenerate-domains after user rename failed (rc=%d): %sr r r )r r �new_name� new_ownerr# r% r&