|9eddlmZddlZddlmZddlmZmZddlm Z m Z ddl m Z m Z ddlmZddlmZdd lmZmZGd d eZdS) )absolute_importN)Feature)DictIterable)MODULES_LOGS_DIRCL_SELECTOR_BIN)InstallationFailedExceptionPackageMissingError)WizardInstaller)installed_interpreters_list)ExternalProgramFailedget_passenger_package_nameceZdZejedZej Z dZ dZ dZ dZedZedZdZd Zd Zd S) NodejsInstallerz nodejs.logc |jd| |tdddd|dgdS#t$rt wxYw)Nz,trying to set default nodejs version as '%s'set --interpreternodejsz--default-version--json app_loggerinfo _run_commandrr r )selfversions N/opt/cloudlinux/venv/lib64/python3.11/site-packages/clwizard/modules/nodejs.py_set_default_nodejs_versionz+NodejsInstaller._set_default_nodejs_version!s KWUUU 0   #Wh8 9 9 9 9 9% 0 0 0-// / 0 !AAc |jd| |tdddd|dgdS#t$rt wxYw)Nz(trying to set NodeJS Selector state '%s'rrrz--selector-statusrr)rstatuss r_set_cloudlinux_selector_statusz/NodejsInstaller._set_cloudlinux_selector_status+s GPPP 0   #VX7 8 8 8 8 8% 0 0 0-// / 0rc|jdd|d|D} |j|dS#t$rt wxYw)Nz%Trying to install NodeJS versions: %sz, cg|]}d|zS)z alt-nodejs).0rs r z.9sFFF'|g-FFF)rrjoin_install_yum_groupsr r )rversions group_namess r_install_nodejs_versionsz(NodejsInstaller._install_nodejs_versions5s} DdiiPXFYFYZZZFFXFFF  0 $D $k 2 2 2 2$ 0 0 0-// / 0s AA!cj|d}|dg}|r-||vr)|jd|t||||d|r||dSdS)Ndefault_versionr*zSVersion %s that specified to be set as default must be included in install_versionsenabled)r )getrerrorr _install_passengerr,r!r)roptionsr.install_versionss rrun_installationz NodejsInstaller.run_installation?s!++&788";;z266  06FFF O ! !78G I I I.// / !!! %%&6777 ,,I,>>>  >  , ,_ = = = = = > >r'c ddhS)Nr.r*r$)clss rsupported_optionsz!NodejsInstaller.supported_optionsPs !:..r'cb ddlm}n#t$rtdwxYw|dS)Nrget_default_version lvemanagerr)clselect.clselectctlr; ImportErrorr r:s r_nodejs_get_default_versionz+NodejsInstaller._nodejs_get_default_versionTsV 4 @ @ @ @ @ @ @ 4 4 4%l33 3 4""8,,,s #cttdtdDo4|t o|S)a Checks that nodejs selector is ready to work All configurations were done: - At least one interpreter version is installed - Passenger is installed - Nodejs selector is enabled :return: bool value configured or not c3$K|] }|jV dS)N) installedr%its r z9NodejsInstaller._is_already_configured..hs$MM MMMMMMr'r)boolanyr _is_package_installedr_is_nodejs_selector_enabled)rs r_is_already_configuredz&NodejsInstaller._is_already_configured]sj MM'B8'L'LMMM M M 3**+E+G+GHH 30022   r'ctd}d|D}||||dddS)z Return dictionary with two required keys: installed and options. This will be used by lvemanager UI to properly display wizard. rc*g|]}|j |jSr$)rBrrCs rr&z2NodejsInstaller.initial_status..ts1   bl J   r')r.installed_versionsavailable_versions)already_configuredr3)r rJr?_get_available_versions)rinterpreters_listrMs rinitial_statuszNodejsInstaller.initial_statusms~ 8AA  !2   #'"="="?"?#'#C#C#E#E&8&*&B&B8&L&L   r'c|jd ddlm}|ddS#t $rYdSwxYw)zN Return True if Nodejs Selector enabled :return: bool z$trying to get NodeJS Selector state.r)CloudlinuxSelectorLibrselector_enabledF)rrclselector.selectorlibrTget_nodejs_selector_statusr>)rrTs rrIz+NodejsInstaller._is_nodejs_selector_enabledsw CDDD  D D D D D D((22MMOOPbc c   55 s(A AAN)__name__ __module__ __qualname__ospathr(rLOG_FILErNODEJS_SELECTOR_REQUIRED_CL_COMPONENT_SUPPORTrr!r,r5 classmethodr8 staticmethodr?rJrRrIr$r'rrrsw||,l;;H%,%<"000000000>>>"//[/--\-      &     r'r) __future__rr[clcommon.constrtypingrrclwizard.constantsrrclwizard.exceptionsr r clwizard.modules.baser clwizard.utilsr clcommon.utilsr rrr$r'rrjs'&&&&& """""" A@@@@@@@211111666666LLLLLLLLooooooooooor'