Hacked By AnonymousFox

Current Path : /opt/cloudlinux/venv/lib64/python3.11/site-packages/clselect/__pycache__/
Upload File :
Current File : //opt/cloudlinux/venv/lib64/python3.11/site-packages/clselect/__pycache__/clselectstatistics.cpython-311.pyc

�

m4�f	���ddlmZddlmZddlmZddlmZddlmZddlm	Z	m
Z
ddlmZm
Z
ddlmZmZmZd	d
lmZd	dlmZd	dlmZmZdd
lmZmZd�Zd�Zd�Zd�Z d�Z!d�Z"d�Z#d�Z$d�Z%d�Z&d�Z'd�Z(dS)�)�print_function)�division)�absolute_import)�defaultdict)�	iteritems)�get_suEXEC_status�get_suPHP_status)�CageFs�CageFsException)�get_domains_php_info�get_system_php_info�	getCPName�)�ClUserSelect)�ClSelect)�"interpreter_versions_short_summary�server_applications_summary)�Optional�Dictc� �t|��S)zd
    Return list of InterpreterSummary objects
    :rtype: list[clselectctl.InterpreterSummary]
    )r��interpreters �R/opt/cloudlinux/venv/lib64/python3.11/site-packages/clselect/clselectstatistics.py�_iter_versionsrs��
.�k�:�:�:�c� �t|��S)zd
    Return list of ApplicationSummary objects
    :rtype: list[clselectctl.ApplicationSummary]
    )rrs r�iter_server_applicationsr#s��
'�{�3�3�3rc�@�t|��}|�d�|D��SdS)Nc�D�i|]}|j|j|j|jd���S))�full_version�enabled�	installed)�version�version_fullr!r")�.0�its  r�
<dictcomp>z+get_versions_statistics.<locals>.<dictcomp>/sE��
�
�
�
�	
�J� "���:��\���
�
�
r)r)r�interpreters_versionss  r�get_versions_statisticsr)+sA��*�;�7�7���(�
�
�
.�
�
�
�	
�)�(rc�6�|dvp|dvo
t��p|duS)at
    Handler is supported in the following cases:
    - handler is suphp or lsapi with suexec or suphp (check for last two is
      in the _get_php_selector_usage method)
    - handler is cgi or fcgi (only with suexec, otherwise scripts do not run in cagefs)
    - handler is None (possible when php package was removed and we can`t detect handler, it is set to None)
    >�lsapi�suphp>�cgi�fcgiN)r)�handlers r�!_is_acceptable_php_handler_cpanelr08s:���(�(�N��?�"�:�'8�':�':�N�>E��o�Nrc�<�t��}t��d}tt��}t	|��D]H\}}|d|kr�t|d��r!||d�|���It|��S)z�
    Return domains that are using php selector.

    1. Skip domains whose version is not system default (php selector
       replaces only system default version binary with symlink to alt-php)
    2. Take only domains that use supported handlers.
    �default_version_id�php_version_id�handler_type�username)rr
r�setrr0�add�dict)�vhosts_php_info�default_php_id�phpselector_domains�domain�domain_infos     r�$_get_php_selector_domains_for_cpanelr>Ds���+�,�,�O�(�*�*�+?�@�N�%�c�*�*��(��9�9�E�E�����'�(�N�:�:��,�[��-H�I�I�	E���J� 7�8�<�<�V�D�D�D���#�$�$�$rc��d}d�}t��}tt��}t|��D]A\}}|d|vr2||d��r!||d�|���Bt|��S)��
    Return domains that meet panel specific requirements which will allow php
    selector to work when the common requirements are met.
    )r-�fastcgic��d}d|vr||kSdS)Nzx-httpd-lsphp-custom�lsphpT�)�
handler_id�lsphp_vendor_versions  r�is_allowed_versionz?_get_php_selector_domains_for_plesk.<locals>.is_allowed_version`s$��5���j� � ��!5�5�5��trr4r3r5�rrr6rr7r8)�allowed_handlersrG�domains_php_info�resultr<�infos      r�#_get_php_selector_domains_for_pleskrMXs���*�����,�-�-��
��
�
�F�!�"2�3�3�1�1������ �$4�4�4�"�"�4�(8�#9�:�:�
5��4�
�#�$�(�(��0�0�0����<�<�rc���d}t��}tt��}t|��D]0\}}|d|vr!||d�|���1t|��S)r@)rAr,r-rCr4r5rH)rIrJrKr<�php_infos     r� _get_php_selector_domains_for_darPps|��
<��+�-�-��
��
�
�F�%�&6�7�7�5�5�����N�#�'7�7�7��8�J�'�(�,�,�V�4�4�4����<�<�rc��t��}|dkrt��S|dkrt��S|dkrt��SdS)z�
    Detect current control panel and
    get list of php selector domains for it
    Return None if control panel is not supported
    �cPanel�DirectAdmin�PleskN)rr>rPrM)�panels r�!_get_php_vhosts_for_current_panelrV~sY��
�K�K�E�����3�5�5�5�	�-�	�	�/�1�1�1�	�'�	�	�2�4�4�4��trc��t��}|���sdS	|���n#t$rYdSwxYwt	t��t
��f��sdSt��}|�dSt��}tt��}tt��}t|��D]n\}}|�|��s�|�
|d���d}||�|��||�|���o||d�S)z+Get users and domains that use php selectorNF)�show_native_versionr)�domains_by_php_version�users_by_php_version)r
�is_cagefs_present�
_load_infor�anyrr	rVrrr6r�get_user_status�get_version�updater7)�cagefs�
php_vhosts�phprYrZ�user�user_domainsr#s        r�get_php_selector_usagerf�sb��
�X�X�F��#�#�%�%���t���������������t�t������!�#�#�%5�%7�%7�8�9�9���t�3�4�4�J����t�
�.�.�C�(��-�-��&�s�+�+��'�
�3�3�0�0���l��%�%�d�+�+�	���/�/�$�E�/�B�B�1�E���w�'�.�.�|�<�<�<��W�%�)�)�$�/�/�/�/�#9� 4���s�;�
A	�A	c�b�t��}|�d���}|�|S|dS)z7
    Safely get native version, or None if not set
    F)�verboseNr)�ClSelectPhp�get_native_version)rc�vs  r�get_native_version_saferl�s6���-�-�C����u��-�-�A��y����Q�4�Krc�J�t�����rdndS)z=
    Get state of PHP selector: without CageFS or normal
    �without_cagefs�normal)ri�work_without_cagefsrDrr�get_mode_of_php_selectorrq�s%�� +�}�}�@�@�B�B�P����Prc�N�t�����dS)z-
    Get default version of PHP selector
    r)rir_rDrr�get_default_php_versionrs�s���=�=�$�$�&�&�q�)�)rN))�
__future__rrr�collectionsr�future.utilsr�cldetectlibrr	�cllimitsr
r�clcommon.cpapirr
r�cluserselectr�clselectrri�clselectctlrr�typingrrrrr)r0r>rMrPrVrfrlrqrsrDrr�<module>r~s���&�%�%�%�%�%�������&�&�&�&�&�&�#�#�#�#�#�#�"�"�"�"�"�"�;�;�;�;�;�;�;�;�,�,�,�,�,�,�,�,�O�O�O�O�O�O�O�O�O�O�&�&�&�&�&�&�-�-�-�-�-�-�X�X�X�X�X�X�X�X�!�!�!�!�!�!�!�!�;�;�;�4�4�4�

�

�

�	N�	N�	N�%�%�%�(���0������&#�#�#�L���Q�Q�Q�*�*�*�*�*r

Hacked By AnonymousFox1.0, Coded By AnonymousFox