5_ | d dl Z d dlZd dlmZmZ d dlmZ d dlmZ e j e Z G d dee ZdS ) N)ModifyDomainHookModifyUserHook)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 ) Nregenerate-domains --usernamez--domainz--old-domainz --old-docrootTFcapture_outputcheckr z%regenerate-domains failed (rc=%d): %sreplaceerrors r LVECTL subprocessrun returncodelogwarningstderrdecodestrip)selfusernamedomain new_domaininclude_subdomainsold_docrootnew_docrootkwargscurrent_domaincmdresults (py/lve_utils/hooks/domain_limits_hook.pypost_modify_domainz#DomainLimitsHook.post_modify_domain s )22 F#-v K-( ,NF++C 2O[11CDFFF!!KK7! $$I$66<<>> "! 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&