🔐 Sid Gifari File Manager Pro
v8.0.5 | 2026-06-15 01:21:57 | PHP 8.1.34
📂
/ (Root)
/
opt
/
cloudlinux
/
venv
/
lib
/
python3.11
/
site-packages
/
xray
/
manager
/
__pycache__
📍 /opt/cloudlinux/venv/lib/python3.11/site-packages/xray/manager/__pycache__
🔄 Refresh
✏️
Editing: plesk.cpython-311.pyc
Read Only
� f�j3 � � � d Z ddlZddlZddlmc mZ ddlmZ ddl m Z ddlmZ ddl mZmZ dd lmZ dd lmZmZ G d� de� � ZdS ) zM This module contains classes implementing X-Ray Manager behaviour for Plesk � N)�ChainMap)� phpinfo_utils� )�BaseManager� )�XRayManagerError�XRayMissingDomain)� DomainInfo)�user_mode_verification�with_fpm_reload_restrictedc � � e Zd ZdZdddddddd d ddd ddd�Zdefd�Zeede de fd�� � � � Zede fd�� � Zde defd�Zde de fd�ZdS )�PleskManagerzA Class implementing an X-Ray manager behaviour for Plesk z/opt/plesk/php/5.4/etc/php.dz/opt/plesk/php/5.5/etc/php.dz/opt/plesk/php/5.6/etc/php.dz/opt/plesk/php/7.0/etc/php.dz/opt/plesk/php/7.1/etc/php.dz/opt/plesk/php/7.2/etc/php.dz/opt/plesk/php/7.3/etc/php.dz/opt/plesk/php/7.4/etc/php.dz/opt/plesk/php/8.0/etc/php.dz/opt/plesk/php/8.1/etc/php.dz/opt/plesk/php/8.2/etc/php.dz/opt/plesk/php/8.3/etc/php.dz/opt/plesk/php/8.4/etc/php.dz/opt/plesk/php/8.5/etc/php.d)zplesk-php54zplesk-php55zplesk-php56zplesk-php70zplesk-php71zplesk-php72zplesk-php73zplesk-php74zplesk-php80zplesk-php81zplesk-php82zplesk-php83zplesk-php84zplesk-php85�returnc �6 � t | j | j � � S )z� Get supported PHP versions :return: a chained map with basic supported versions and Plesk supported versions )r �VERSIONS�VERSIONS_Plesk)�selfs �I/opt/cloudlinux/venv/lib64/python3.11/site-packages/xray/manager/plesk.py�supported_versionszPleskManager.supported_versions3 s � � �� �t�':�;�;�;� �domain_namec �� �� d� }t �fd�| � � � D � � d� � }|�-| j � dd�i�� � t �� � �|\ }}}| j � d�||� � | j rIt j |��� � }t �|� d � � |j d ||j |�� � S t � ||� � |d|v |� � � S )z� Retrieve information about given domain from control panel environment: PHP version, user of domain, fpm status :param domain_name: name of domain :return: a DomainInfo object c � � d| v rd}nSd| v rd| � d� � d � �}n0d� | � d� � dd� � � }|S ) z� Resolve version for lsphp handlers :param h: original Plesk php handler id :return: resolved alt-php* version zlsphp-customz alt-php56�lsphpzalt-php�-���Nr )�split�join)�h�vers r �resolve_lsphp_versionz;PleskManager.get_domain_info.<locals>.resolve_lsphp_versionE sf � � ��"�"�!����A���2�������R� 0�2�2����h�h�q�w�w�s�|�|�B�Q�B�/�0�0���Jr c 3 �R �K � | ]!}|d �k s|d d�� �k �|V � �"dS )r zwww.N� )�.0�itemr s �r � <genexpr>z/PleskManager.get_domain_info.<locals>.<genexpr>T sU �� � � � � ����7�k�)�)�T�!�W�8L�{�8L�8L�-L�-L� �-L�-L�-L�-L� � r Nz#Domain does not exist on the serverr )�extraz@Retrieved domain info: domain %s owned by %s uses php version %s)�domainz plesk-phpT)�name�panel_php_version�php_ini_scan_dir�is_selector_applied�user� panel_fpm�handler�fpm)r) r* r- r. r/ ) �next�query_db�logger�warningr �info�phpinfo_moder �get_php_configurationr �get_full_php_version�absolute_ini_scan_dir� is_php_fpm)r r r! �domain_datar( r- r/ �configs ` r �get_domain_infozPleskManager.get_domain_info; sf �� � � � � � � � � � �M�M�O�O� � � � � � �� ���K���5�$�k�2� � � � � $�K�0�0�0� +����g�����N���� � � � �� �"�8��k�R�R�R�F�� �"(�"=�"=�k�"J�"J�!'�!=� %)�� �+��� � � � � �"7�"7��"@�"@���7�*��� � � r c # � K � d� } d}t j dd|dgdd | � � �� � }|j dk r+t t d � � |j |j fz � � � t j d � |j � � � � }|� d� � D ]W}|� d� � j }|� d � � j }|� d� � j }|||fV � �XdS # t j $ r7}t t d� � t |j � � z � � |�d}~ww xY w)z� Query Plesk database through plesk db utility and yeild parsed xml result :return: tuple(domain_name, domain_user, domain_handler) c �R � dt j � dd� � vrddiS dS )a plesk db utility needs to be able to find mysql executable, which resides in /usr/bin. If we do not have it in PATH, the error will be thrown: 'exec: "mysql": executable file not found in $PATH' z/usr/bin�PATH� N)�os�environ�getr# r r �check_path_envz-PleskManager.query_db.<locals>.check_path_env� s/ � � �������!;�!;�;�;�� �+�+��tr z�select d.name,s.login,h.php_handler_id from (select id, name from domains union select dom_id, name from domain_aliases) d join hosting h on d.id=h.dom_id join sys_users s on h.sys_user_id=s.idz/usr/sbin/plesk�dbz--xmlT)�capture_output�text�envr z(plesk db query failed (exit code %d): %srA �rowz./field[@name='name']z./field[@name='login']z./field[@name='php_handler_id']z,Failed to parse XML from plesk db output: %sN)� subprocess�run� returncoder �_�stderr�ET� fromstringr �stdout�iter�findrH � ParseError�str) rE �query�result�rootrJ r � user_namer/ �es r r2 zPleskManager.query_db� s � � � � � � � X���� ��e�W�5����� � � � � �� ���!�!�"��<�=�=��$�f�m�4�5�� � � ��=������!7�!7�8�8�D��y�y��'�'� 6� 6��!�h�h�'>�?�?�D���H�H�%=�>�>�C� ��(�(�#D�E�E�J��!�9�g�5�5�5�5�5� 6� 6�� �}� � � �"��@�A�A�C�� �DV�DV�V�� �� ����� ���s �#BC>