|9e+ddlmZmZddlmZmZmZmZmZddl m Z ddl m Z m Z ddlmZmZddlZddlZddlZddlZddlZddlZddlZddlmZddlmZdd lmZdd lm Z dd l!m"Z"m#Z#d Z$ dd l%m&Z&ddl'm(Z(n#e)$re$Z&e$Z(YnwxYwdZ*dZ+dZ,dZ-ej./e-dZ0dZ1da2dZ3dZ4Gdde5Z6dZ7dZ8d6dZ9dZ:dZ;d7d ed e IN_PROGRESS If statistics collected and sent correctly -> SUCCESS If any error during collecting or sending -> FAILED success in_progressfailedN)__name__ __module__ __qualname____doc__SUCCESS IN_PROGRESSFAILEDrrrr#r#7s) GK FFFrr#cJtjtS)zS Checks is virtualenv installed :return: True/False - installed or not )ospathexistsALT_PYTHON_VIRTUALENV_BINrrris_virtualenv_installedr3Cs 7>>3 4 44rc tjdtjddddd} tj|tj|}tjd|d}n#t tf$rYdSwxYw|tjkS)a$ Check if file is locked by another process without acquiring lock. IMPORTANT! This function should NOT be used to check lock acquired by the same process that executes the is_locked() function. For example, when process executes fcntl.lockf(LOCK_FILE), and then the same process executes is_locked(LOCK_FILE), the is_locked(LOCK_FILE) call returns False. Use is_locked() function to check lock acquired by another process only. :param lock_file: file to check lock on :type lock_file: file object or descriptor hhllhhrF) structpackfcntlF_WRLCKF_GETLKunpackOSErrorIOErrorF_UNLCK) lock_file lock_data lock_query lock_statuss r is_lockedrCKs HemQ1aCCI[EM9EE mHj99!< W uu %- ''s;A""A76A7Fcttda|sttS t jttjtjzn#ttf$rYdSwxYwdS)z Check if processes collecting stats are running already (with --send option in command line) :param acquire_lock: True = acquire lock when possible :type acquire_lock: bool :return bool: True = Processes are running wTF) open_CL_STATISTICS_LOCK_PATH_CL_STATISTICS_LOCK_FILErCr8lockfLOCK_EXLOCK_NBr<r=) acquire_locks ris_sending_process_runningrM`s| $$%2$8K !%`K ! Wj.) D     s/B9 B=B=AB#B76B7c4dt|DS)z Returns list of installed interpreters :param interpreter: str - name of interpreter :rtype: List of InterpreterSummary c g|] }|j | Sr) installed).0is r z/installed_interpreters_list..s V V V!!+ VA V V Vrr) interpreters rinstalled_interpreters_listrs" W V9+FF V V VVrc:to tS)z Checks that python selector is installed Installed if: - ea-apache24-mod-alt-passenger or alt-mod-passenger is installed - alt-python-virtualenv is installed :rtype: bool rr3rrris_python_selector_installedr ! " " @'>'@'@@rc:to tS)z Checks that ruby selector is installed Installed if: - ea-apache24-mod-alt-passenger or alt-mod-passenger is installed - alt-python-virtualenv is installed :rtype: bool rrrris_ruby_selector_installedrrrcVtottdS)z Checks that nodejs selector is installed Installed if: - ea-apache24-mod-alt-passenger or alt-mod-passenger is installed - At least one version is installed :rtype: bool nodejs)rboolrrrris_nodejs_selector_installedr s& ! " " Rt,G,Q,Q'R'RRrc8ttS)zn Checks that php selector is installed Installed if: - CageFS is initialized :rtype: bool )rrrrris_php_selector_installedrs (** + ++rc td}n#t$rgcYSwxYwd|dD}|S)z9 Gets packages with set lve limits via extension listpkgsc>g|]}d|v|ddk|dS)_PACKAGE_EXTENSIONSlvenamer)ritems rrz4get_packages_with_lve_extensions..&sDjjj"74"?"?DI^D_chDhDh $F|DhDhDhrpkg)rcallr)rlve_extensions_packagess r get_packages_with_lve_extensionsrssz**//11  jju jjj ""s !$ 33c B ttd5}|}dddn #1swxYwYn#tt f$rYdSwxYw t |dgd|dddd }|S#tj$rYdSwxYw) z Gets (if any) fields cl_plus and client_id from jwt token :return: decoded jwt_token value, None if error jwt_token: result of the successful decoding rb)modeNHS256TF) require_exp verify_exp verify_issverify_signature CloudLinux) algorithmsoptionsissuer) rFr rUstripr<r=r r PyJWTError)check_expirationfile file_content jwt_tokens rget_client_data_from_jwt_tokenr+s  +$ 7 7 7 /499;;,,..L / / / / / / / / / / / / / / / W tt >% t ty{{  jnnU33 33rc` ttd}n#t$rd}YnwxYw|rdndS)z Retrieves data from status of cl_plus_sender service :return: status of service, Optional[AnyStr] - 'active' - 'inactive' Factiveinactive)r CL_PLUS_SENDER_FILE_PATHFileNotFoundError)rs rget_cl_plus_sender_statusrOsL#$rs91000000066666666666666999999========"""""""" //////&&&&&&,,,,,,FFFFFF>>>>>>>>0GGGGGGFFFFFFF000)<&/0 )&=#*E'"$',,/ACX"Y"YBKA     F   555(((*$         t t    TdBdBBBBF$FFFFGG$GGGGKTKdKKKK    *WWWAAAAAASSS,,, # # #Xd6SXY_aeYeSfKfFg=h2444 .8F#3 . . . . . .s- A:: BB