File: //opt/cloudlinux/venv/lib64/python3.11/site-packages/clwpos/__pycache__/utils.cpython-311.opt-1.pyc
�
J���s�� �` � d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl Z d dl
Z
d dlZd dlZd dl
Z
d dlZd dlZd dlZd dlZd dlZd dlZd dlmZmZmZ d dlmZ d dlmZ d dlmZ d dlmZmZm Z m!Z! d dl"m#Z# d dl$Z$d d lm%Z% d d
l&m'Z'm(Z( d dl)m*Z* d dl+m+Z+m,Z,m-Z- d d
lm.Z.m/Z/m0Z0m1Z1m2Z2 d dl3Z3d dl4m5Z5m6Z6 d dl7m8Z8 d dl9m:Z:m;Z; d dl<m=Z= d dl>m?Z?m@Z@ d dlAmBZBmCZC d dlDmEZEmFZF d dlGmHZHmIZI d dlJmKZK d dlLmMZMmNZNmOZOmPZPmQZQmRZR d dlSmTZTmUZUmVZV d dlWmZmXZX d dlYmZZZm[Z[m\Z\m]Z]m^Z^ d dl_m`Z` d dlambZbmcZc d dldmeZe d dlLmfZf d dlgmhZh d d!limjZj d d"lkmlZlmmZmmnZnmoZompZpmqZqmrZrmsZsmtZtmuZumvZvmwZwmxZxmyZymzZz d d#l{m|Z|m}Z} d d$l~mZ d d%l�m�Z� ej� rd d&l�m�Z� da�d'� Z� G d(� d)ej� � � Z�d�d+e�d,e�fd-�Z�d�d+e�d.e�d/e�fd0�Z�d�d+e�d2e�fd3�Z�d4e�fd5�Z�d6e�fd7�Z�d4e�fd8�Z�d9ej� fd:�Z�d;� Z�d�d<e�d4e�fd=�Z�d4e�fd>�Z�dd?�d<e�d4e�fd@�Z�dd?�d<e�fdA�Z� G dB� dC� � Z�dDe�d4e0e� fdE�Z�d4e.e� fdF�Z�dGe�d4dfdH�Z�dIe�d4dfdJ�Z�dKe�d4e�fdL�Z�dIe�dMe�d4e�fdN�Z�dGe�dOe�d4e�fdP�Z�dKe�dMe�dQe�d4e�fdR�Z�dSe�dGe�dKe�dMe�dQe�d4e�fdT�Z�dIe�d4dfdU�Z�d�dV�Z�dW� Z�dXe�d4e/e�e�f fdY�Z�dZe�d[e0e� fd\�Z� G d]� d^e�� � Z�e%d�d`e�d[e0e� fda�� � Z�db� Z�e�d�de�� � Z�dfe�d4e/e�e�f fdg�Z�d�d4e�fdi�Z�dj� Z�dk� Z�e G dl� dm� � � � Z�e G dn� do� � � � Z� e(d�p� � dq� � � Z�dr� Z�ds� Z�d4e�fdt�Z�du� Z�dv� Z�dw� Z�d4e�fdx�Z�d4e�fdy�Z�e%d4e2e� fdz�� � Z�d{� Z�d|� Z�d}� Z� G d~� d� � Z�d�d��Z� G d�� d�� � Z�e%d�e�fd��� � Z�d�e�d4e�fd��Z�d4e�fd��Z�d4e�fd��Z�d4e�fd��Z�d4e�fd��Z�d�e�d�e�d4dfd��Z�dIe�d�e�d�e�d4dfd��Z�d4e�fd��Z�d4e�fd��Z�d4e/e�e�e�f fd��Z�d�e�d�e�d4e/e�e�e�f fd��Z�d�e�d4e/e�e�e�f fd��Z�d�� Z�e�d4e�fd��� � Z�e�d4e�fd��� � Z�e�d4e�fd��� � Z�e�d4e�fd��� � Z�d�e�d4e.fd��Z�d�� Z�d�e�d�e�d�e�fd��Z�d�� Z�d�� Z� e(d�p� � d�d<e�fd��� � Z� e(d�p� � d<e�fd��� � Z�d�� Z� e(d�p� � d�� � � Z�dS )�� )�absolute_importN)� dataclass�asdict�field)�iglob)�Enum)�gettext)� urlencode�urlparse� parse_qsl�
urlunparse)�Version)�contextmanager)�wraps� lru_cache)�Path)�socket�AF_UNIX�SOCK_STREAM)�List�Tuple�Optional�Set�ContextManager)�write_file_via_tempfile�
disable_quota)�NoDomain)�ClPwd�drop_privileges)�mkdir��is_cl_shared_pro_edition�CLEditionDetectionError)�read_jwt�
decode_jwt)�CLN_JWT_TOKEN_PATH�DEFAULT_JWT_ES_TOKEN_PATH)�
PyJWTError�
exceptions)�
check_license)�docroot�get_domain_login�
get_server_ip�cpinfo�is_admin�get_main_username_by_uid)�exec_utility�run_command�demote)r � wp_config)� WposError�WPOSLicenseMissing�WpCliUnsupportedException�WpNotExists�WpConfigWriteFailed)�UIConfig)� in_cagefs�_is_cagefs_enabled)�Feature)�is_panel_feature_supported)�get_locale_from_envars� )�
setup_logging)�
USER_WPOS_DIR�WPOS_DAEMON_SOCKET_FILE�CLCONFIG_UTILITY�RedisRequiredConstants�CAGEFS_ENTER_USER_BIN�CAGEFS_ENTER_UTIL�CLWPOS_OPT_DIR�ALT_PHP_PREFIX�
EA_PHP_PREFIX�PLESK_PHP_PREFIX�USER_CLWPOS_CONFIG�PUBLIC_OPTIONS�SUITES_MARKERS�XRAY_MANAGER_UTILITY�XRAY_USER_SOCKET)�pack_data_for_socket�'read_unpack_response_from_socket_client)�RollbackException)�cached_in_scope)�PHPc � � � � fd�}|S )z'
Decorator for catching errors
c � �� t �t t � � a �| g|�R i |��S # t $ r3}t | j |j |j |j d�� � Y d }~d S d }~wt $ r�}t |t � � rt � |� � nt �
|� � |j |j |j d�}|j r
|j |d<