ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ iB^c@`sddlmZddlmZddlmZddlZddlmZddlmZm Z m Z m Z m Z m Z defd YZdS( i(tprint_function(tdivision(tabsolute_importN(tBasePkgManageri(tscan_python_versionstis_major_versiont CONFIG_DIRtcreate_config_dirst ALT_NAMEStALT_PYTHON_PREFIXt PkgManagercB`seZdZdZeZdZdZeZ dZ dj ede de gZ dj ede de gZ d Zd Zd Zd Zd ZdZedZRS(s Class responsible for all interactions with Yum, python version installation/removal and gathering info about already installed versions cC`s tdS(N(R(tself((sS/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpython/pkgmanager.pyt_create_config_dirsss  {yum_cmd} list '{alt_names}*' --disablerepo='*' --enablerepo='cloudlinux-*' {disable_testing} 2>/dev/null | grep -io {alt_names}[[:digit:]][[:digit:]] | uniq > {cache_file}.tmp; mv {cache_file}.tmp {cache_file}; rm -f {cache_file}.tmp; s)LANG=C yum --disableplugin=fastestmirror s!&>/var/log/cl-python-last-yum.logts -y install s{} s -y remove cC`stS(N(R(R ((sS/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpython/pkgmanager.pyt_scan_interpreter_versionsEscC`stdj|jddS(Ns{}/.lockt.R (R tformattreplace(R tversion((sS/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpython/pkgmanager.pyt_get_lock_file_pathHs cC`s^|j}|dkr&|jdStjd|}g|D]}dj|^q?}|S(s 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 salt-python(\d+)RN(t_read_yum_cachetNonetupdate_yum_cachetretfindalltjoin(R tdatat availableR((sS/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpython/pkgmanager.pytcheckout_availableLs   "cC`s3t|sdj|S|j}|r/|SdS(s5Do some common pre-installation/uninstallation checkss>Invalid version "{}". It should be two digits separeted by dotN(RRt_check_yum_in_progress(R Rt working_error((sS/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpython/pkgmanager.pyt_verify_actionas   cC`s|jj|jddS(s Formatting cmd string for install package :return: formatted cmd string :param version: version of interpreter for installing :rtype: str RR (t _install_cmdRR(R R((sS/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpython/pkgmanager.pyt format_cmd_string_for_installingjscC`s|jj|jddS(s Formatting cmd string for removing package :return: formatted cmd string :param version: version of interpreter for removing :rtype: str RR (t _remove_cmdRR(R R((sS/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpython/pkgmanager.pytformat_cmd_string_for_removingtscC`s&ddlm}|}|j|S(sJ Check what passed version isn't used any web-application i(tApplicationsManager(t$clselect.clselectpython.apps_managerR$tis_version_in_use(RR$t apps_manager((sS/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpython/pkgmanager.pyt_is_version_in_use~s (t__name__t __module__t__doc__R Rt _config_dirt _mk_cache_cmdt_yum_cmdRt _alt_namest _redirect_logRR R"RRRRR!R#t staticmethodR((((sS/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpython/pkgmanager.pyR s0        (t __future__RRRRt clselect.baseclselect.pkgmanagerRR RRRRRR R (((sS/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectpython/pkgmanager.pyts  .