Current File : //opt/cloudlinux/venv/lib/python3.11/site-packages/clwizard/modules/__pycache__/php.cpython-311.pyc
�
���fy���ddlZddlmZmZddlmZddlmZddlm Z ddl
mZmZddl
mZmZdd lmZGd
�de��ZdS)�N)�Dict�List)�Feature)�ExternalProgramFailed)�check_cagefs_initialized)�CL_SELECTOR_BIN�MODULES_LOGS_DIR)�InstallationFailedException�PackageMissingError�)�WizardInstallerc���eZdZej�ed��Zej Z
d�Zd�Zd�Z
d�Zed���Zed���Zed���Zd �Zd
�Zd�Zd�Zd
S)�PhpInstallerzphp.logc ���|j�d|�� |�tdddd|dg��dS#t$r}t��|�d}~wwxYw)Nz)trying to set default php version as '%s'�set�
--interpreter�phpz--default-version�--json��
app_logger�info�_run_commandrrr
)�self�version�es �K/opt/cloudlinux/venv/lib64/python3.11/site-packages/clwizard/modules/php.py�_set_default_php_versionz%PhpInstaller._set_default_php_versions�������H�'�R�R�R�
7����#��#��'����
�
�
�
�
��%� 7� 7� 7�-�/�/�Q�6����� 7�����!A�
A�
A�Ac ���|j�d|�� |�tdddd|dg��dS#t$r}t��|�d}~wwxYw)Nz%trying to set PHP Selector state '%s'rrrz--selector-statusrr)r�statusrs r�_set_cloudlinux_selector_statusz,PhpInstaller._set_cloudlinux_selector_status*s�������D�f�M�M�M�
7����#��#��'����
�
�
�
�
��%� 7� 7� 7�-�/�/�Q�6����� 7���rc�$�|j�dd�|����g}|D]0}d|�dd��z}|�|���1 |j|�dS#t$r}t��|�d}~wwxYw)z�
Install given php versions via groups
:param versions: e.g ['4.4', '5.4', '5.6']
:return: None
z)php version '%s' is going to be installed�,zalt-php�.�N)rr�join�replace�append�_install_groupsrr
)r�versions�groups�ver�package_namers r�_install_php_versionz!PhpInstaller._install_php_version<s���
����7����(�9K�9K�
�
�
���� (� (�C�$�s�{�{�3��';�';�;�L��M�M�,�'�'�'�'� 7�
!�D� �&�)�)�)�)��$� 7� 7� 7�-�/�/�Q�6����� 7���s�%
A1�1
B�;B
�
Bc�F�|�d��}|�dg��}|�d��}|r/|r-||vr)|j�d|��t���|�|��t��r�|r1|�d���|r|�|��d Sd S |�d���d S#t$r3}|j�dt|����Yd }~d Sd }~wwxYwd S)
a�
Run installation of php module
It is possible to install only alt-php packages and skip further
installation if 'enable_selector': False
Otherwise we will configure php selector also
-- set selector status to enabled
-- set default version if it was passed
:param options: {'versions': [5.5, 5.6], 'enable_selector': True}
:return:
�default_versionr*�enable_selectorzWVersion %s that was specified to be set as default must be included in install_versions�enabled)r �disabledz/Error occurred while disabling PHP Selector: %sN)
�getr�errorr
r.rr!r� Exception�str)r�optionsr0�install_versions�to_enable_selectorrs r�run_installationzPhpInstaller.run_installationVs���"�+�+�&7�8�8��"�;�;�z�2�6�6��$�[�[�):�;�;��� 4��
4�?�:J�#J�#J���%�%�;�#����
2�3�3�3��!�!�"2�3�3�3�#�%�%� �!�
��4�4�I�4�F�F�F�"�C��1�1�/�B�B�B�B�B�C�C���8�8�
�8�K�K�K�K�K�� �����O�)�)�I�3�q�6�6������������������ � s� C!�!
D�+(D�Dc�
�hd�S)N>r*r0r1�)�clss r�supported_optionszPhpInstaller.supported_optionss��A�A�A�A�c�� ddlm}n"#t$r}td��|�d}~wwxYw|�����dS)Nr)�ClSelect�
lvemanager)�clselect.clselectrB�ImportErrorr�get_version)rBrs r�_php_get_default_versionz%PhpInstaller._php_get_default_version�sh�� ;�2�2�2�2�2�2�2��� ;� ;� ;�%�l�3�3��:����� ;�����x�z�z�%�%�'�'��*�*�� �
(�#�(c�l� ddlm}n"#t$r}td��|�d}~wwxYw|d��S)Nr)�"interpreter_versions_short_summaryrCr)�clselect.clselectctlrJrEr)rJrs r�_php_interpreters_listz#PhpInstaller._php_interpreters_list�sl�� ;�
�
�
�
�
�
�
��� ;� ;� ;�%�l�3�3��:����� ;����1�1�%�8�8�8rHc��dddid�g}|S)zh
Get list of warnings that should be shown in wizard
before module installation
z�Further CloudLinux PHP Selector setup will be available in LVE Manager settings after installation. Find more details in our documentation at %(url)s.�urlz:https://docs.cloudlinux.com/php_selector_installation.html)�message�contextr=)r�warningss r�
_get_warningszPhpInstaller._get_warnings�s,��3��W��
�
�
���r@c�:�g}|���D]$}|js�
|�|j���%t |��|���||�d��|���d�|���d�S)Nr)r0�installed_versions�available_versionsr1)�already_configuredr8rQ) rL� installedr(r�anyrG�_get_available_versions�_is_php_selector_enabledrR)rrT�php_interpreters r�initial_statuszPhpInstaller.initial_status�s��� ��#�:�:�<�<� ?� ?�O�"�,�
���%�%�o�&=�>�>�>�>�
#&�&8�"9�"9�#'�#@�#@�#B�#B�&8�&*�&B�&B�5�&I�&I�#'�#@�#@�#B�#B� ���*�*�,�,�
�
�
r@c�`�tt��o|�����S)zM
Return True if Php Selector enabled in UI and could be used
)�boolr�"_is_php_selector_enabled_in_config)rs rrZz%PhpInstaller._is_php_selector_enabled�s*��
�,�.�.�\�4�3Z�3Z�3\�3\�]�]�]r@c��|j�d�� ddlm}|d�����S#t
$rYdSwxYw)zn
Return True if Php Selector is enabled for UI in panel specific (DA, Plesk or cPanel) config
z!trying to get Php Selector state.r)�CloudlinuxSelectorLibrF)rr�clselector.selectorlibra�php_selector_is_enabledrE)rras rr_z/PhpInstaller._is_php_selector_enabled_in_config�sq��
����@�A�A�A� �D�D�D�D�D�D�(�(��/�/�G�G�I�I�I��� � � ��5�5� ���s�"?�
A
�A
N)�__name__�
__module__�__qualname__�os�pathr&r �LOG_FILEr�PHP_SELECTOR�_REQUIRED_CL_COMPONENT_SUPPORTrr!r.r;�classmethodr?�staticmethodrGrLrRr\rZr_r=r@rrrs�������w�|�|�,�i�8�8�H�%,�%9�"�7�7�7�$7�7�7�$7�7�7�4'�'�'�R�B�B��[�B��+�+��\�+��9�9��\�9����,
�
�
�,^�^�^�����r@r)rg�typingrr�clcommon.constr�clcommon.utilsr�!clconfig.cagefs_statistics_configr�clwizard.constantsrr �clwizard.exceptionsr
r�baser
rr=r@r�<module>rus���
� � � ���������"�"�"�"�"�"�0�0�0�0�0�0�F�F�F�F�F�F�@�@�@�@�@�@�@�@�P�P�P�P�P�P�P�P�!�!�!�!�!�!�A�A�A�A�A�?�A�A�A�A�Ar@