Edit File: clselectstatistics.cpython-311.pyc
� ����=�9e ����������������������������d�dl�mZ�d�dl�mZ�d�dl�mZ�d�dlmZ�d�dlmZ�d�dlm Z m Z �d�dlmZm Z �d�dlmZmZmZ�d d lmZ�d dlmZ�d dlmZmZ�d�d lmZmZ�d��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_versionsr������s������ �.�k�:�:�:�����c������������������ �����t����������|�������������S�)zd Return list of ApplicationSummary objects :rtype: list[clselectctl.ApplicationSummary] )r���r���s��� r����iter_server_applicationsr���#���s������ �'�{�3�3�3r���c������������������@�����t����������|�������������}|�d��|D���������������S�d�S�)Nc������������������D�����i�|�]}|j���������|j��������|j��������|j��������d����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���(� �� � �.� �� �� �� ��)�(r���c������������������6�����|�dv�p|�dv�o t������������������������p|�du�S�)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_cpanelr0���8���s:��������(�(��N��?�"�:�'8�':�':�N�>E��o�Nr���c�������������������<����t������������������������}�t������������������������d���������}t����������t����������������������}t ����������|�������������D�]H\��}}|d���������|k����r�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����setr���r0����add�dict)�vhosts_php_info�default_php_id�phpselector_domains�domain�domain_infos��� r����$_get_php_selector_domains_for_cpanelr>���D���s��������+�,�,�O�(�*�*�+?�@�N�%�c�*�*��(��9�9��E��E�����'�(�N�:�:��,�[��-H�I�I�� E���J� 7�8�<�<�V�D�D�D���#�$�$�$r���c�����������������������d}�d��}t������������������������}t����������t����������������������}t����������|������������D�]A\��}}|d���������|�v�r2�||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|�v�r|�|k����S�dS�)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��tr���r4���r3���r5����r���r���r6���r���r7���r8���)�allowed_handlersrG����domains_php_info�resultr<����infos��� r����#_get_php_selector_domains_for_pleskrM���X���s��������*��������,�-�-�� �� � �F�!�"2�3�3��1��1������ �$4�4�4�"�"�4�(8�#9�:�:�� 5��4� �#�$�(�(��0�0�0����<�<�r���c�������������������������d}�t������������������������}t����������t����������������������}t����������|������������D�]0\��}}|d���������|�v�r!||d���������������������������������������|��������������1t����������|������������S�)r@���)rA���r,���r-���rC���r4���r5���rH���)rI���rJ���rK���r<����php_infos��� r���� _get_php_selector_domains_for_darP���p���s|������ �<��+�-�-�� �� � �F�%�&6�7�7��5��5�����N�#�'7�7�7��8�J�'�(�,�,�V�4�4�4����<�<�r���c������������������������t������������������������}�|�dk����rt������������������������S�|�dk����rt������������������������S�|�dk����rt������������������������S�dS�)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)r���r>���rP���rM���)�panels��� r����!_get_php_vhosts_for_current_panelrV���~���sY������� �K�K�E�����3�5�5�5� �-� � �/�1�1�1� �'� � �2�4�4�4���tr���c�����������������������t������������������������}�|������������������������������������sdS� �|�������������������������������������n#�t����������$�r�Y�dS�w�xY�wt ����������t������������������������t ������������������������f������������sdS�t������������������������}|�dS�t������������������������}t����������t����������������������}t����������t����������������������}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����anyr���r ���rV���r���r���r6���r����get_user_status�get_version�updater7���)�cagefs� php_vhosts�phprY���rZ����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�|d���������S�)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�Kr���c�������������������J�����t�����������������������������������������������������������rdndS�)z= Get state of PHP selector: without CageFS or normal �without_cagefs�normal)ri����work_without_cagefsrD���r���r����get_mode_of_php_selectorrq�������s%������� +�}�}�@�@�B�B�P����Pr���c�������������������N�����t�����������������������������������������������������������d���������S�)z- Get default version of PHP selector r���)ri���r_���rD���r���r����get_default_php_versionrs�������s��������=�=�$�$�&�&�q�)�)r���N))� __future__r���r���r����collectionsr����future.utilsr����cldetectlibr���r ����cllimitsr ���r����clcommon.cpapir���r ���r����cluserselectr����clselectr���ri����clselectctlr���r����typingr���r���r���r���r)���r0���r>���rM���rP���rV���rf���rl���rq���rs���rD���r���r����<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���