File: //opt/alt/python37/lib/python3.7/site-packages/clwizard/modules/__pycache__/php.cpython-37.pyc
B
pM�d�֘� @ s� d dl mZ d dlZd dlmZmZ d dlmZ d dlm Z d dl
mZ d dlm
Z
mZ d dlmZmZ d d
lmZ G dd� de�ZdS )
� )�absolute_importN)�Dict�List)�Feature)�ExternalProgramFailed)�check_cagefs_initialized)�CL_SELECTOR_BIN�MODULES_LOGS_DIR)�InstallationFailedException�PackageMissingError� )�WizardInstallerc @ s� e Zd Zej�ed�Zej Z
dd� Zdd� Zdd� Z
dd � Zed
d� �Zedd
� �Zedd� �Zdd� Zdd� Zdd� Zdd� ZdS )�PhpInstallerzphp.logc
C sZ | j �d|� y| �tdddd|dg� W n* tk
rT } zt� |�W d d }~X Y nX d S )Nz)trying to set default php version as '%s'�setz
--interpreter�phpz--default-versionz--json)�
app_logger�info�_run_commandr r r
)�self�version�e� r �py/clwizard/modules/php.py�_set_default_php_version s z%PhpInstaller._set_default_php_versionc
C sZ | j �d|� y| �tdddd|dg� W n* tk
rT } zt� |�W d d }~X Y nX d S )Nz%trying to set PHP Selector state '%s'r z
--interpreterr z--selector-statusz--json)r r r r r r
)r �statusr r r r �_set_cloudlinux_selector_status- s z,PhpInstaller._set_cloudlinux_selector_statusc
C s~ | j �dd�|�� g }x&|D ]}d|�dd� }|�|� qW y| j|� W n* tk
rx } zt� |�W dd}~X Y nX dS )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)r r �join�replace�appendZ_install_groupsr r
)r �versions�groups�vZpackage_namer r r r �_install_php_version? s
z!PhpInstaller._install_php_versionc
C s� |� d�}|� dg �}|� d�}|rD|rD||krD| j�d|� t� �| �|� t� r�|rt| jdd� |r�| �|� nFy| jdd� W n4 tk
r� } z| j�dt |�� W d d }~X Y nX d 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"