gyddlZddlmZmZddlmZddlmZddlm Z ddl m Z m Z ddl mZmZdd lmZGd d eZdS) N)DictList)Feature)ExternalProgramFailed)check_cagefs_initialized)CL_SELECTOR_BINMODULES_LOGS_DIR)InstallationFailedExceptionPackageMissingError)WizardInstallerceZdZejedZej Z dZ dZ dZ dZedZedZedZd Zd Zd Zd Zd S) PhpInstallerzphp.logc |jd| |tdddd|dgdS#t$r}t |d}~wwxYw)Nz)trying to set default php version as '%s'set --interpreterphpz--default-version--json app_loggerinfo _run_commandrrr )selfversiones K/opt/cloudlinux/venv/lib64/python3.11/site-packages/clwizard/modules/php.py_set_default_php_versionz%PhpInstaller._set_default_php_versions H'RRR 7   ##'     % 7 7 7-//Q 6 7!A A AAc |jd| |tdddd|dgdS#t$r}t |d}~wwxYw)Nz%trying to set PHP Selector state '%s'rrrz--selector-statusrr)rstatusrs r_set_cloudlinux_selector_statusz,PhpInstaller._set_cloudlinux_selector_status*s DfMMM 7   ##'     % 7 7 7-//Q 6 7rc$|jdd|g}|D]0}d|ddz}||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)rrjoinreplaceappend_install_groupsrr )rversionsgroupsver package_namers r_install_php_versionz!PhpInstaller._install_php_version<s  7(9K9K    ( (C$s{{3';';;L MM, ' ' ' ' 7 !D & ) ) ) )$ 7 7 7-//Q 6 7s% A11 B;B  BcF|d}|dg}|d}|r/|r-||vr)|jd|t||t r|r1|d|r||d Sd S |dd S#t$r3}|jdt|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_versionsenabled)r disabledz/Error occurred while disabling PHP Selector: %sN) getrerrorr r.rr!r Exceptionstr)roptionsr0install_versionsto_enable_selectorrs rrun_installationzPhpInstaller.run_installationVs"++&788";;z266$[[):;;  4 4?:J#J#J%%;# 2333 !!"2333 # % % ! 44I4FFF"C11/BBBBBCC88 8KKKKK O))I3q66  s C!! D+(DDc hdS)N>r*r0r1)clss rsupported_optionszPhpInstaller.supported_optionssAAAAc 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_versionsh ; 2 2 2 2 2 2 2 ; ; ;%l33 : ;xzz%%''** (#(cl ddlm}n"#t$r}td|d}~wwxYw|dS)Nr)"interpreter_versions_short_summaryrCr)clselect.clselectctlrJrEr )rJrs r_php_interpreters_listz#PhpInstaller._php_interpreters_listsl ;        ; ; ;%l33 : ;11%888rHcdddidg}|S)zh Get list of warnings that should be shown in wizard before module installation zFurther 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)messagecontextr=)rwarningss r _get_warningszPhpInstaller._get_warningss,3W    r@c:g}|D]$}|js ||j%t ||||d|d|dS)Nr)r0installed_versionsavailable_versionsr1)already_configuredr8rQ) rL installedr(ranyrG_get_available_versions_is_php_selector_enabledrR)rrTphp_interpreters rinitial_statuszPhpInstaller.initial_statuss #::<< ? ?O",   % %o&= > > > > #&&8"9"9#'#@#@#B#B&8&*&B&B5&I&I#'#@#@#B#B  **,,   r@c`tto|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_enableds* ,..\43Z3Z3\3\]]]r@c|jd ddlm}|dS#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)rrclselector.selectorlibraphp_selector_is_enabledrE)rras rr_z/PhpInstaller._is_php_selector_enabled_in_configsq @AAA  D D D D D D((//GGII I   55 s"? A  A N)__name__ __module__ __qualname__ospathr&r LOG_FILEr PHP_SELECTOR_REQUIRED_CL_COMPONENT_SUPPORTrr!r.r; classmethodr? staticmethodrGrLrRr\rZr_r=r@rrrsw||,i88H%,%9"777$777$7774'''RBB[B++\+99\9,   ,^^^     r@r)rgtypingrrclcommon.constrclcommon.utilsr!clconfig.cagefs_statistics_configrclwizard.constantsrr clwizard.exceptionsr r baser rr=r@rrus """"""000000FFFFFF@@@@@@@@PPPPPPPP!!!!!!AAAAA?AAAAAr@