HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: //usr/lib/python3.6/site-packages/supervisor/__pycache__/web.cpython-36.opt-1.pyc
3

�k�`�^�@s�ddlZddlZddlZddlZddlZddlmZddlmZddlm	Z	ddlm
Z
ddlmZddlmZddl
mZdd	lmZdd
lmZddlmZddlmZdd
lmZddlmZddlmZddlmZddlmZddlmZddlmZddlm Z ddl!m"Z"Gdd�d�Z#Gdd�d�Z$Gdd�d�Z%Gdd�de%�Z&Gdd�de%�Z'Gd d!�d!�Z(d"e'd#�d$e&d#�de(d#�d%�Z)Gd&d'�d'�Z*dS)(�N)�
templating)�urllib)�urlparse)�	as_string)�PY2)�unicode)�	producers)�	http_date)�
get_header)�	collector)�
ProcessStates)�NOT_DONE_YET)�VERSION)�
make_namespec)�split_namespec)�SystemNamespaceRPCInterface)�RootRPCInterface)�Faults)�RPCError)�SupervisorNamespaceRPCInterfacec@s6eZdZdZejdej�Zdd�Zdd�Z	dd�Z
d	S)
�DeferredWebProducerz� A medusa producer that implements a deferred callback; requires
    a subclass of asynchat.async_chat that handles NOT_DONE_YET sentinel zConnection: (.*)cCs"||_||_d|_t|j�|_dS)NF)�callback�request�finished�float�delay)�selfrr�r�/usr/lib/python3.6/web.py�__init__'szDeferredWebProducer.__init__c	Csn|jr
dSy$|j�}|tkr tSd|_|j|�Stj�}|jjjj	j
d|�d|_|jjd�YnXdS)N�TzWeb interface errori�)rrr
�sendresponse�	traceback�
format_excr�channelZserverZlogger�log�error)r�response�tbrrr�more-s
zDeferredWebProducer.morec
Cs<|jdi�}x|D]}|||j|<qWd|jkr<d|jd<|jd�r`d|jd<|jjd�dS|jdd	�}t|�|jd<|jj|�t|j|jj�}d}d}|jjd
kr�|dkr�|jj	d�s�d}q�d
|jd<nd}n||jjdk�r@|dkr�d}nLd|jk�rRd|jk�r |jddk�s>d}n|jj
�r:d|jd<d}nd}n|jjdk�rRd}tj|jj
��}|�rrd|jd<|�r�tjtj|jj��}	tj||	g�}	n`t�r�t|jj�dk�r�|jjd}t|t��r�tj|�|jjd<|jjjd|�tj|jj�}	|jjjtjtj|	|jj���d|jj_|�r8|jjj�dS)N�headerszContent-Typez
text/plain�LocationrzContent-Lengthi-�bodyr z1.0z
keep-alive�z
Keep-AliveZ
Connectionz1.1�closezTransfer-EncodingZchunked)�getrr&�len�pushr
�
CONNECTION�header�versionZhas_keyZuse_chunkedrZsimple_producerZbuild_reply_headerZchunked_producerZcomposite_producerZoutgoingr�
isinstancer�insertr$�push_with_producerZglobbing_producerZhooked_producerr%Zcurrent_requestZclose_when_done)
rr'r*r3r,Z
connectionZclose_itZwrap_in_chunkingZoutgoing_headerZoutgoing_producerrrrr!?st









z DeferredWebProducer.sendresponseN)�__name__�
__module__�__qualname__�__doc__�re�compile�
IGNORECASEr2rr)r!rrrrr"s
rc@seZdZdd�ZdS)�ViewContextcKs|jj|�dS)N)�__dict__�update)r�kwrrrr�szViewContext.__init__N)r8r9r:rrrrrr?�sr?c@s4eZdZdZdZdd�Zdd�Zdd�Zd	d
�ZdS)�MeldViewztext/html;charset=utf-8g�?cCsR||_|jj}tjj|�s<tjjtjjt��}tjj||�}t	j
|�|_d|_dS)N)
�context�template�os�path�isabs�abspath�dirname�__file__�joinrZ	parse_xml�rootr)rrDrE�hererrrr�szMeldView.__init__cCs\|j�}|tkrtS|jj}|d}|j|d<d|d<d|d<tjd�|d<t|�|d<|S)	Nr*zContent-Typezno-cacheZPragmaz
Cache-ControlrZExpiresr,)�renderr
rDr'�content_typer	Zbuild_http_dater)rr,r'r*rrr�__call__�s
zMeldView.__call__cCsdS)Nr)rrrrrO�szMeldView.rendercCs
|jj�S)N)rM�clone)rrrrrR�szMeldView.cloneN)	r8r9r:rPrrrQrOrRrrrrrC�s	rCc@seZdZdd�ZdS)�TailViewc
CsL|jj}|jj}d|kr"d}d}n�|d}d}|jdd�}td|j�rRt|�dnd�}|sbd}ndt|�}y|j|||�}WnHt	k
r�}z,|j
tjkr�d|}nd	|j
|j
f}WYdd}~XnX|j�}	|	jd
�}
|
jd|�|	jd�}|j|�|	jd
�}|dk	�r8|jdtj|�tjtt|���fd�n|j�t|	j��S)N�processnamezNo process name foundr�limitZ1024ir-zNo file for %sz#ERROR: unexpected rpc fault [%d] %s�titlezSupervisor tail of process %s�tailbody�refresh_anchorz!tail.html?processname=%s&limit=%s)�hrefi������i���)rD�supervisord�formr/�min�isdigit�intrZreadProcessStdoutLogr�coder�NO_FILE�textrR�findmeld�content�
attributesr�quote�str�absZdeparentr�write_xhtmlstring)
rr[r\�tailrT�offsetrU�rpcinterface�erMrVrWrXrrrrO�s@
 




$zTailView.renderN)r8r9r:rOrrrrrS�srSc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�
StatusViewcCs�|j�}tjt|jjj|jj��}dd|dd�}dd|dd�}dd|dd�}dd	|dd�}d
d|dd�}d
d|dd�}	|tjkr�|||||	g}
n2|tj	tj
tjfkr�|d|||	g}
ndd|||	g}
|
S)NZStartz*index.html?processname=%s&amp;action=start)�namerY�targetZRestartz,index.html?processname=%s&amp;action=restartZStopz)index.html?processname=%s&amp;action=stopz	Clear Logz-index.html?processname=%s&amp;action=clearlogzTail -f Stdoutz
logtail/%sZ_blankzTail -f Stderrzlogtail/%s/stderr)Z	get_staterrfr�group�configror�RUNNINGZSTOPPEDZEXITED�FATAL)r�process�staterT�start�restart�stop�clearlogZtailf_stdoutZtailf_stderr�actionsrrr�actions_for_process�s8


zStatusView.actions_for_processcCs*|tjkrdS|tjtjfkr"dSdSdS)NZ
statusrunningZstatuserrorZ
statusnominal)rrsrtZBACKOFF)rrvrrr�css_class_for_states

zStatusView.css_class_for_statecs�|jj}dt|�f}dt|g�f}t||g�}|�r||dkrNdd�}d|_|S|dkrv|jj���fdd	�}d|_|S|d
kr�|jj	ddidd
ig���fdd�}	d|	_|	S��r|�fdd�}
d|
_t
��\}}|jj|�}
|
dkr�|
S|
j
j|�}|dk�r|
S|dk�ry|jj���Wn�tk
�r�}z�|jtjk�rDd�n`|jtjk�rXd�nL|jtjk�rld�n8|jtjk�r�d�n$|jtjk�r�d�nd|j|jf���fdd�}d|_|Sd}~XnXt���r��fdd�}d|_|S�fdd�}d|_|S�nx|dk�r�y|jj���WnDtk
�rb}z&d|j|jf��fd d!�}d|_|Sd}~XnXt���r���fd"d#�}d|_|S�fd$d%�}d|_|Sn�|d&k�r|jj	d'�gd(�d)�gd(�g�}t|��r�|���fd*d+�}d|_|S�fd,d-�}d|_|Snv|d.k�r|y|jj���WnDtk
�rd}z&d|j|jf��fd/d0�}d|_|Sd}~XnX�fd1d2�}d|_|St|��dS)3N�
supervisor�systemZrefreshcSsdtj�}|S)NzPage refreshed at %s)�time�ctime)�messagerrr�	donothing.sz+StatusView.make_callback.<locals>.donothingg�������?�stopallcs��tkrtSdtj�SdS)NzAll stopped at %s)r
r�r�r)rrrr�6s
z)StatusView.make_callback.<locals>.stopall�
restartall�
methodNamezsupervisor.stopAllProcesseszsupervisor.startAllProcessescs��}|tkrtSdtj�S)NzAll restarted at %s)r
r�r�)�result)rrrr�Bsz,StatusView.make_callback.<locals>.restartallcsd�S)NzNo such process named %srr)�namespecrr�wrongKsz'StatusView.make_callback.<locals>.wrongrwzno such filezfile not executablezalready startedzspawn errorzabnormal terminationzunexpected rpc fault [%d] %scsd��fS)NzERROR: Process %s: %srr)�msgr�rr�starterrisz*StatusView.make_callback.<locals>.starterrcs|y
��}Wn\tk
rf}z@|jtjkr.d}n"|jtjkr@d}nd|j|jf}d�|fSd}~XnX|tkrttSd�S)Nzspawn errorzabnormal terminationzunexpected rpc fault [%d] %szERROR: Process %s: %szProcess %s started)rr`r�SPAWN_ERROR�ABNORMAL_TERMINATIONrbr
)r�rmr�)�bool_or_callbackr�rr�startprocessos
z.StatusView.make_callback.<locals>.startprocesscsd�S)NzProcess %s startedrr)r�rr�	startdone�sz+StatusView.make_callback.<locals>.startdonerycs�S)Nrr)r�rr�stoperr�sz)StatusView.make_callback.<locals>.stoperrcsLy
��}Wn,tk
r6}zd|j|jfSd}~XnX|tkrDtSd�S)Nzunexpected rpc fault [%d] %szProcess %s stopped)rr`rbr
)r�rm)r�r�rr�stopprocess�s
z-StatusView.make_callback.<locals>.stopprocesscsd�S)NzProcess %s stoppedrr)r�rr�stopdone�sz*StatusView.make_callback.<locals>.stopdonerxzsupervisor.stopProcess)r��paramszsupervisor.startProcesscs��}|tkrtSd�S)NzProcess %s restarted)r
)�results)rr�rr�restartprocess�sz0StatusView.make_callback.<locals>.restartprocesscsd�S)NzProcess %s restartedrr)r�rr�restartdone�sz-StatusView.make_callback.<locals>.restartdonerzcs�S)Nrr)r�rr�clearerr�sz*StatusView.make_callback.<locals>.clearerrcsd�S)NzLog for %s clearedrr)r�rrrz�sz*StatusView.make_callback.<locals>.clearlog)rDr[rrrrr~ZstopAllProcessesrZ	multicallr�process_groupsr/�	processesZstartProcessrr`rraZNOT_EXECUTABLEZALREADY_STARTEDr�r�rb�callableZstopProcessZclearProcessLogs�
ValueError)rr��actionr[�mainrrlr�r�r�r�Z
group_nameZprocess_namerqrurmr�r�r�r�r�r�Zresults_or_callbackr�r�r�rzr)r�rr�r�r�
make_callback!s�





	



zStatusView.make_callbackc 	Cs.|jj}|jj}|jd�}|jd�}|jd�}|r�|jsJ|j||�|_tS|j�}|tkr^tS|dk	r�|d}|ddtj|�}||dd<|jj	}t
d	t|�fg�}	g}
x8|jj
�D]*}x$|jj�D]}|
j|jj|f�q�Wq�W|
j�g}
x`|
D]X\}}|j|j|j|�}t||�}|	jj|�}|
j|d
||||d|dd
��q�W|j�}|dk	�r�|jd�}d|jd<|j|�|
�r�|jd�j|
�}d}�xN|D�].\}}|jd�}|j|dj��|j|d�|jd<|jd�}|j|d�|jd�}t|d|d�}|jdtj|�d�|j|�|d}|jd�}xv|j|�D]h\}}|jd�}|dk�r|d|jd<n>|j|d|dd �|j|d�|d!�rT|j|d!d"��qTW|�r�d#|jd<|}�q�Wn|jd$�}|j d%�|jd&�jt!�t"t#j$j%�j&�}|jd'�j|�t'|j(��S)(NrTr�r��
SERVER_URL�/z?message=%sr*r+r~Z	statenamerv�description)�statusrorqr{rvr�Z
statusmessageZ
status_msg�classZtrF�status_textr��	info_textZname_anchorrqroztail.html?processname=%s)rYr{�
actionitem_tdZactionitem_anchorZhiddenrY)rYrorp)rpZshadeZstatustablezNo programs to manageZsupervisor_versionZcopyright_date))rDr\r'r/rr�r
rrfr[rrr��valuesr��keys�appendrrro�sortr|rr~ZgetProcessInforRrcZattribrd�repeat�lowerr}re�replacerrg�datetimeZdateZtodayZyearrri) rr\r'rTr�r�Z
server_url�locationr[rlZprocessnamesrqZ	gprocname�dataZ	groupnamer{Z	sent_name�inforMZ
statusarea�iteratorZ	shaded_trZ
tr_element�itemr�r�Zanchorr�Z
li_elementZ
actionitem�tableZcopyright_yearrrrrO�s�




















zStatusView.renderN)r8r9r:r|r}r�rOrrrrrn�s
+.rnc@s eZdZdZdd�Zdd�ZdS)�OKViewrcCs
||_dS)N)rD)rrDrrrr6szOKView.__init__cCsddiS)Nr,ZOKr)rrrrrQ9szOKView.__call__N)r8r9r:rrrQrrrrr�4sr�zui/status.html)rE�viewzui/tail.html)z
index.htmlz	tail.htmlzok.htmlc@s0eZdZdZdd�Zdd�Zdd�Zdd	�Zd
S)�supervisor_ui_handlerz&Supervisor Web UI HTTP Request HandlercCs
||_dS)N)r[)rr[rrrrOszsupervisor_ui_handler.__init__cCsd|jdkrdS|j�\}}}}x|jd�r8|dd�}q W|sBd}xtj�D]}||krLdSqLWdS)	N�POST�GETFr�r-z
index.htmlT)r�r�)�commandZ	split_uri�
startswith�VIEWSr�)rrrGr��queryZfragmentZviewnamerrr�matchRs
zsupervisor_ui_handler.matchcCs(|jdkrt||�|_n|jd|�dS)Nr�r )r�r�continue_request)rrrrr�handle_requestbs
z$supervisor_ui_handler.handle_requestcCs i}|j�}|j|�d|kr&d|d<|d}tj|�}tj|�}x |j�D]\}}	|	d||<qLWx|D]\}}	|	||<qjW|j�|d<|d}
x |
r�|
ddkr�|
dd�}
q�W|
s�d}
tj|
�}|dkr�dSd	ii}|d
}
|d}t	|||||j
d�}|
|�}|jj}|t
||��dS)
NZQUERY_STRINGr rr�Z	PATH_INFOr�r-z
index.htmlr*r�rE)rErr\r'r[)Zcgi_environmentrArZ	parse_qslZparse_qs�itemsZget_server_urlr�r/r?r[r$r7r)rr�rr\Zcgi_envr�Zform_urlencodedZ
query_data�k�vrGZviewinfor'Z	viewclassZviewtemplaterDr�Zpushproducerrrrr�hs@




z&supervisor_ui_handler.continue_requestN)r8r9r:ZIDENTrr�r�r�rrrrr�Ls
r�)+rFr<r�r"r�r~rZsupervisor.compatrrrrrZsupervisor.medusarZsupervisor.medusa.http_serverr	r
Z supervisor.medusa.xmlrpc_handlerrZsupervisor.processrZsupervisor.httpr
Zsupervisor.optionsrrrZsupervisor.xmlrpcrrrrZsupervisor.rpcinterfacerrr?rCrSrnr�r�r�rrrr�<module>sNw".I