%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /proc/227033/root/opt/alt/python27/lib/python2.7/site-packages/clselect/
Upload File :
Create Path :
Current File : //proc/227033/root/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectctl.pyc

�
i�B^c@`s�ddlmZddlmZddlmZddlZddlZddlZddlmZddl	Z	ddl
Z
ddlZddl
mZddlmZdd	lmZdd
lmZmZddlmZmZddlmZdd
lmZddlmZddlm Z ddl!m"Z"ddl
m#Z#mZdddddddgZ$edd/�Z%edd0�Z&d#�Z'd$�Z(d%�Z)d&�Z*d'�Z+dd(�Z-d)�Z.dd*�Z/d+�Z0d,�Z1d-�Z2d.�Z3dS(1i(tabsolute_import(tprint_function(tdivisionN(t
namedtuple(tList(t	iteritemsi(tclpassenger(tcpuserst	getCPName(tdrop_privilegestClPwd(tis_no_php_binaries_on_cpanel(tClSelectExcept(tNodeManager(t
PythonManager(tget_abs_rel(tOptionalRtpublic_htmltrubyvenvt
virtualenvs.cl.selectors.cagefstwwwtnodevenvtApplicationSummarytusertversiontdoc_roottinterpretert
app_statustInterpreterSummarytversion_fulltenabledt	installedcC`s�d|krtd��ntjj|�r<td��n|ddkr[td��n|tkrztd|��ntjd|�}|dkr�td	��ndS(
Nt s#Directory should not contain spacess+Directory should be relative to user's homei����t/s-Directory should not contain a trailing slashsDirectory "%s" not alloweds[-\.\w\/]+$s*Directory name contains invalid characters(t
ValueErrortostpathtisabstDISABLED_DIRECTORY_NAMEStretmatchtNone(t	directoryt	all_valid((sE/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectctl.pytcheck_directory&scC`sNx)dD]!}||krtd��qqW|d	krAd}n|jd�S(
Nt#t?s./sAlias is not validt.tR!(R-R.s./(R/R0(R"tstrip(taliastc((sE/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectctl.pyt	get_alias4s
	cC`s|jdd�jdd�S(Nt_R!s//(treplace(tprefix((sE/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectctl.pyt
get_directory?scC`s|jdd�jdd�S(NR5t__R!(R6(R*((sE/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectctl.pyt
get_prefixCscC`sF|s'tj�}tj|�j}n|dkrBtd��n|S(Ntroots8User parameter must be specified if current user is root(R#tgeteuidtpwdtgetpwuidtpw_nameR"(Rtcurrent_euid((sE/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectctl.pytget_userGscC`s>|dkrtjj|�Stjj|�o=tjj|�S(s�
    Application is valid only if binary and app_root exists
    :param binary_path: path to binary in virtual environment
    :param app_root: path to root directory of application
    :return: result of checking
    :rtype: bool
    tnodejstpython(RBRC(R#R$tisdirtisfile(Rtapp_roottbinary_path((sE/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectctl.pyt_verify_applicationPsc
C`s�tj�r(ddlm}|�}nd}g}tj�}x�t�D]�}y=t|��+t	j
|�|jt|||��WdQXWqJt
jk
r�qJqJtk
r�tjt�}|jd||tj�ttj��f�qJXqJW|S(s8Find and return all apps for given interpreter on serveri(t$_get_domains_docroots_from_da_binaryNs]DEBUG: user %s present in panel but doesn't exist in system. Process euid=%d. Trace: %s at %s(tdetecttis_dat"clcommon.cpapi.plugins.directadminRIR)R#R<RR	R=tgetpwnamtextendt _user_applications_short_summaryR
tNoSuchUserExceptiontKeyErrortloggingt	getLoggert__name__terrort	tracebackt
format_exctstrt
extract_stack(RRItdomains_docroots_datatapplicationsteuidRtlogger((sE/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectctl.pytserver_applications_summary]s&


	.c

c`s|dk	r1||kr1t||j��}nd}|dkr;yE|dkreddlm}nddlm}|�j|�}Wntjk
r�dSXx\t	|�D]�\}}yt
||�\}}	Wntjk
r�q�nXt||�r�td|d|d|d	|d
d|d|d�Vq�q�Wn�x�t	t
j|d
|��D]�\}
}|d|kryqWn|d|d}}t|||�rWtjjtjjtjj|���}td|d|d	|dd|ddd�VqWqWWdS(s�
    Return generator with all applications for given user and interpreter.
    To increase performance, only a small part of the
    information about the applications is given.
    :param user: name of panel user
    :param interpreter: name of interpreter (python, ruby, etc)
    :param domains_docroots_data: total data about users domains
    :return: Generator[ApplicationSummary]
    RBRCi(tApplicationsManagerNRRs
%s_versionRtdomainRRtuserdomains_datatbinaryR*tdocroottstarted(RBRC(R)tlisttitemstclselectnodejs.apps_managerR_tclselectpython.apps_managertget_user_config_dataRt	WrongDataRRRHRRtsummaryR#R$tbasenametdirname(
RRRZRaR_tconfig_datatapptdataRFR5tdummyRbt
it_version((sE/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectctl.pyRO~s>
(*cC`s0|dkrt�jS|dkr,t�jSdS(s-Return default version for given interpreter RBRCN(R
tdefault_versionRR)(R((sE/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectctl.pytget_default_version�s


c
c`s�|dkr$t�jdt�}n-|dkrHt�jdt�}n	t��x�t|d�D]�\}}|ddk}|dkr�tt|jd�d��}ndj	|jd�d	 �}t
d
|d|d|dt�VqbWd
S(s.Return generator for interpreters all versionsRBtinstalled_interpreters_onlyRCtavailable_versionststatusRR/iiRRRN(R
tget_summarytTrueRtNotImplementedErrorRRXtinttsplittjoinR(RtinterpretersRtversion_infoRt
major_version((sE/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectctl.pyt_iter_interpreters�s	"c	c`sfddlm}|�}|j�}x:|D]2\}}}t||dtd|j|��Vq,WdS(sf
    Return generator with all PHP versions on server.
    :return: Generator[InterpreterSummary]
    i(tClSelectRRN(tclselectR�tlist_alternativesRRytis_version_enabled(R�tphptversionsRtfull_versionR5((sE/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectctl.pyt_iter_php_interpreters�s	c	C`s�|dkr5t�dkr(t�r(d
Stt��S|dkrTddlm}n"|dkrptt|��St�g}x9|�D].}|j	t
|j|jdt
d	t
��q�W|S(s<Find and return all versions for given interpreter on serverR�tcPaneltrubyi(R~RCRBRRN(RCRB(RRR)ReR�tclselectruby.interpretersR~R�RztappendRRRRy(RR~tit_listtit((sE/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectctl.pyt"interpreter_versions_short_summary�s
,(RRRRR(RRRR(4t
__future__RRRR#R=R'tcollectionsRRRRVtcldetectlibRJttypingRtfuture.utilsRR0Rtclcommon.cpapiRRtclcommon.clpwdR	R
tclcommon.cpapi.plugins.cpanelRtclselectexceptRtclselectnodejs.node_managerR
tclselectpython.python_managerRtutilsRRR&RRR,R4R8R:RAR)RHR^RORtR�R�R�(((sE/opt/alt/python27/lib/python2.7/site-packages/clselect/clselectctl.pyt<module>sF						
	!4				

Zerion Mini Shell 1.0