jg zddlmZddlmZddlmZddlZddlmZddlmZm Z m Z m Z m Z m Z Gdd eZdS) )print_function)division)absolute_importN)BasePkgManager) CONFIG_DIRis_major_versioncreate_config_dirs ALT_NAMESscan_node_versionsALT_NODE_PREFIXceZdZdZfdZeZdZeZ dZ d ede de gZ d ede de gZ d Zd Zd Zd Zd ZedZxZS) PkgManagerz Class responsible for all interactions with Yum, NodeJS version installation/removal and gathering info about already installed versions cVtt|dSN)superr__init__)self __class__s Y/opt/cloudlinux/venv/lib64/python3.11/site-packages/clselect/clselectnodejs/pkgmanager.pyrzPkgManager.__init__s% j$((*****z)LANG=C yum --disableplugin=fastestmirror z!&>/var/log/cl-nodejs-last-yum.logz-y groupinstall z{} z7--enablerepo=cloudlinux-updates-testing -y groupremove c<td|zS)Nz{}/.lock)r format)rversions r_get_lock_file_pathzPkgManager._get_lock_file_path@s!2!27!;!;;;rc~t|sd|S|}|r|SdS)z5Do some common pre-installation/uninstallation checksz3Invalid version "{}". It should be positive integerN)r r_check_yum_in_progress)rr working_errors r_verify_actionzPkgManager._verify_actionCsR(( C3396'?? C3355  !  ! !rc|}|s|dStjd|}|S)a Should return list of major versions available to install from currently enabled repos. Note, this can be an empty list if no NodeJS version has been released to repos yet or in case of network/repos/yum problem. OR None if our cache is updating right now because it was absent/outdated/corrupted/etc. :rtype: list | None Nzalt-nodejs(\d+)\n)_read_yum_cacheupdate_yum_cacherefindall)rdata availables rcheckout_availablezPkgManager.checkout_availableLsL##%%   ! ! # # #4J3T:: rctSr)r rs r_scan_interpreter_versionsz%PkgManager._scan_interpreter_versionscs!###rc"tdSr)r r*s r_create_config_dirszPkgManager._create_config_dirsfsrcLddlm}|}||S)zJ Check what passed version isn't used any web-application r)ApplicationsManager)$clselect.clselectnodejs.apps_managerr/is_version_in_use)rr/ apps_managers r_is_version_in_usezPkgManager._is_version_in_useis9 MLLLLL**,, --g666r)__name__ __module__ __qualname____doc__rr _config_dir_yum_cmdr _alt_names _redirect_logjoin _install_cmd _remove_cmdrr r(r+r- staticmethodr3 __classcell__)rs@rrrs +++++K;HJ7M77E L''AE K<<<!!!.$$$77\77777rr) __future__rrrr$ clselect.baseclselect.pkgmanagerrrrr r r r r rrrrDs&%%%%%&&&&&& ;;;;;;Z7Z7Z7Z7Z7Z7Z7Z7Z7Z7r