GOOD SHELL MAS BOY
Server: Apache/2.4.52 (Ubuntu)
System: Linux vmi1836763.contaboserver.net 5.15.0-130-generic #140-Ubuntu SMP Wed Dec 18 17:59:53 UTC 2024 x86_64
User: www-data (33)
PHP: 8.4.10
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/supervisor/__pycache__/web.cpython-310.pyc
o

O0�^�^�@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@s6eZdZdZe�dej�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�0/usr/lib/python3/dist-packages/supervisor/web.py�__init__'szDeferredWebProducer.__init__cCsn|jrdSz|��}|turtWSd|_|�|�WSt��}|jjjj	�
d|�d|_|j�d�YdS)N�TzWeb interface errori�)rrr�sendresponse�	traceback�
format_excr�channel�server�logger�log�error)r�response�tbrrr�more-szDeferredWebProducer.morec
Cs&|�di�}|D]	}|||j|<qd|jvrd|jd<|�d�r.d|jd<|j�d�dS|�dd	�}t|�|jd<|j�|�t|j|jj�}d}d}|jjd
kri|dkrf|j�	d�s`d}nAd
|jd<n;d}n8|jjdkr�|dkrvd}n+d|jvr�d|jvr�|jddks�d}n|jj
r�d|jd<d}nd}n|jjdur�d}t�|j�
��}|r�d|jd<|r�t�t�|jj��}	t�||	g�}	n-tr�t|jj�dkr�|jjd}t|t�r�t�|�|jjd<|jj�d|�t�|jj�}	|jj�t�t�|	|jj���d|jj_|�r|jj��dSdS)N�headers�Content-Typez
text/plain�LocationrzContent-Lengthi-�bodyr!z1.0z
keep-alive�z
Keep-Alive�
Connectionz1.1�closezTransfer-Encoding�chunked)�getrr)�len�pushr
�
CONNECTION�header�version�has_key�use_chunkedr�simple_producer�build_reply_header�chunked_producer�composite_producer�outgoingr�
isinstancer�insertr%�push_with_producer�globbing_producer�hooked_producerr(�current_request�close_when_done)
rr*r-r9r0�
connection�close_it�wrap_in_chunking�outgoing_header�outgoing_producerrrrr"?s�





�
��
��
����
�z DeferredWebProducer.sendresponseN)�__name__�
__module__�__qualname__�__doc__�re�compile�
IGNORECASEr8r r,r"rrrrr"src@�eZdZdd�ZdS)�ViewContextcKs|j�|�dS�N)�__dict__�update)r�kwrrrr �szViewContext.__init__N)rNrOrPr rrrrrV��rVc@s4eZdZdZdZdd�Zdd�Zdd�Zd	d
�ZdS)�MeldViewztext/html;charset=utf-8g�?cCsR||_|jj}tj�|�stj�tj�t��}tj�||�}t	�
|�|_d|_dSrW)
�context�template�os�path�isabs�abspath�dirname�__file__�joinr�	parse_xml�rootr)rr]r^�hererrrr �s
zMeldView.__init__cCs\|��}|tur
tS|jj}|d}|j|d<d|d<d|d<t�d�|d<t|�|d<|S)	Nr-r.zno-cache�Pragmaz
Cache-Controlr�Expiresr0)�renderrr]r*�content_typer	�build_http_dater)rr0r*r-rrr�__call__�s
zMeldView.__call__cCsdSrWr�rrrrrk��zMeldView.rendercCs
|j��SrW)rg�clonerorrrrq��
zMeldView.cloneN)	rNrOrPrlrr rnrkrqrrrrr\�s	r\c@rU)�TailViewc

CsL|jj}|jj}d|vrd}d}nS|d}d}|�dd�}td|��r)t|�dnd�}|s1d}n3t|�}z	|�|||�}Wn%t	yc}z|j
tjkrQd|}nd	|j
|j
f}WYd}~nd}~ww|��}	|	�d
�}
|
�d|�|	�d�}|�|�|	�d
�}|dur�|jdt�|�t�tt|���fd�n|��t|	���S)N�processnamezNo process name foundr�limit�1024i������zNo file for %sz#ERROR: unexpected rpc fault [%d] %s�titlezSupervisor tail of process %s�tailbody�refresh_anchorz!tail.html?processname=%s&limit=%s��href)r]�supervisord�formr5�min�isdigit�intr�readProcessStdoutLogr�coder�NO_FILE�textrq�findmeld�content�
attributesr�quote�str�abs�deparentr�write_xhtmlstring)
rr}r~�tailrt�offsetru�rpcinterface�ergrxryrzrrrrk�sL�
���



��zTailView.renderN)rNrOrPrkrrrrrs�r[rsc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�
StatusViewcCs�|��}t�t|jjj|jj��}dd|dd�}dd|dd�}dd|dd�}dd	|dd�}d
d|dd�}d
d|dd�}	|tjkrO|||||	g}
|
S|tj	tj
tjfvrb|d|||	g}
|
Sdd|||	g}
|
S)N�Startz*index.html?processname=%s&amp;action=start)�namer|�target�Restartz,index.html?processname=%s&amp;action=restart�Stopz)index.html?processname=%s&amp;action=stopz	Clear Logz-index.html?processname=%s&amp;action=clearlogzTail -f Stdoutz
logtail/%s�_blankzTail -f Stderrzlogtail/%s/stderr)�	get_staterr�r�group�configr�r�RUNNING�STOPPED�EXITED�FATAL)r�process�statert�start�restart�stop�clearlog�tailf_stdout�tailf_stderr�actionsrrr�actions_for_process�sL�������

���zStatusView.actions_for_processcCs&|tjkrdS|tjtjfvrdSdS)N�
statusrunning�statuserror�
statusnominal)rr�r��BACKOFF)rr�rrr�css_class_for_states

zStatusView.css_class_for_statec
s�|jj}dt|�f}dt|g�f}t||g�}|�r�|dkr'dd�}d|_|S|dkr;|j����fdd	�}d|_|S|d
krV|j�	ddidd
ig���fdd�}	d|	_|	S��r��fdd�}
d|
_t
��\}}|j�|�}
|
durt|
S|
j
�|�}|dur�|
S|dkr�z|j����WnSty�}zG|jtjkr�d�n,|jtjkr�d�n#|jtjkr�d�n|jtjkr�d�n|jtjkr�d�nd|j|jf���fdd�}d|_|WYd}~Sd}~wwt��r��fdd�}d|_|S�fdd�}d|_|S|dk�rKz|j����Wn&t�y.}zd|j|jf��fd d!�}d|_|WYd}~Sd}~wwt���r@��fd"d#�}d|_|S�fd$d%�}d|_|S|d&k�r~|j�	d'�gd(�d)�gd(�g�}t|��rs|���fd*d+�}d|_|S�fd,d-�}d|_|S|d.k�r�z|j����Wn&t�y�}zd|j|jf��fd/d0�}d|_|WYd}~Sd}~ww�fd1d2�}d|_|St|��)3N�
supervisor�system�refreshcSsdt��}|S)NzPage refreshed at %s)�time�ctime)�messagerrr�	donothing.sz+StatusView.make_callback.<locals>.donothingg�������?�stopallcs��turtSdt��S)NzAll stopped at %s�rr�r�r�rrrr�6s
z)StatusView.make_callback.<locals>.stopall�
restartall�
methodNamezsupervisor.stopAllProcesseszsupervisor.startAllProcessescs��}|tur	tSdt��S)NzAll restarted at %sr�)�resultr�rrr�Bsz,StatusView.make_callback.<locals>.restartallc�d�S)NzNo such process named %srr��namespecrr�wrongK�z'StatusView.make_callback.<locals>.wrongr�zno such filezfile not executablezalready started�spawn error�abnormal termination�unexpected rpc fault [%d] %scsd��fS)N�ERROR: Process %s: %srr)�msgr�rr�starterrisz*StatusView.make_callback.<locals>.starterrc
s�z��}Wn2ty7}z&|jtjkrd}n|jtjkrd}nd|j|jf}d�|fWYd}~Sd}~ww|tur>tSd�S)Nr�r�r�r��Process %s started)rr�r�SPAWN_ERROR�ABNORMAL_TERMINATIONr�r)r�r�r���bool_or_callbackr�rr�startprocessos 
���
z.StatusView.make_callback.<locals>.startprocesscr�)Nr�rrr�rr�	startdone�r�z+StatusView.make_callback.<locals>.startdoner�c��SrWrr�r�rr�stoperr�rpz)StatusView.make_callback.<locals>.stoperrc
sTz��}Wnty}zd|j|jfWYd}~Sd}~ww|tur&tSd�S)Nr��Process %s stopped)rr�r�r)r�r�r�rr�stopprocess�s
���z-StatusView.make_callback.<locals>.stopprocesscr�)Nr�rrr�rr�stopdone�r�z*StatusView.make_callback.<locals>.stopdoner�zsupervisor.stopProcess)r��paramszsupervisor.startProcesscs��}|tur	tSd�S�NzProcess %s restartedr
)�results)rr�rr�restartprocess�sz0StatusView.make_callback.<locals>.restartprocesscr�r�rrr�rr�restartdone�r�z-StatusView.make_callback.<locals>.restartdoner�cr�rWrrr�rr�clearerr�rpz*StatusView.make_callback.<locals>.clearerrcr�)NzLog for %s clearedrrr�rrr��r�z*StatusView.make_callback.<locals>.clearlog)r]r}rrrrr��stopAllProcessesr��	multicallr�process_groupsr5�	processes�startProcessrr�rr��NOT_EXECUTABLE�ALREADY_STARTEDr�r�r��callable�stopProcess�clearProcessLogs�
ValueError)rr��actionr}�mainr�r�r�r�r�r��
group_name�process_namer�r�r�r�r�r�r�r�r��results_or_callbackr�r�r�r�r)r�rr�r�r�
make_callback!s�
��
����

���
	
����

���zStatusView.make_callbackc 
Cs|jj}|jj}|�d�}|�d�}|�d�}|rH|js%|�||�|_tS|��}|tur/tS|durH|d}|ddt�|�}||dd<|jj	}t
d	t|�fg�}	g}
|j�
�D]}|j��D]}|
�|jj|f�qcq\|
��g}
|
D],\}}|�|j|j|�}t||�}|	j�|�}|
�|d
||||d|dd
��qx|��}|dur�|�d�}d|jd<|�|�|
�rb|�d��|
�}d}|D]�\}}|�d�}|�|d���|�|d�|jd<|�d�}|�|d�|�d�}t|d|d�}|jdt�|�d�|�|�|d}|�d�}|�|�D]5\}}|�d�}|du�r4d|jd<�q|j|d|dd �|�|d�|d!�rS|j|d!d"��q|�r]d#|jd<|}q�n
|�d$�}|� d%�|�d&��t!�t"t#j$�%�j&�}|�d'��|�t'|�(��S)(Nrtr�r��
SERVER_URL�/z?message=%sr-r/r��	statenamer��description)�statusr�r�r�r�r��
statusmessage�
status_msg�class�trF�status_textr��	info_text�name_anchorr�r�ztail.html?processname=%sr{r��
actionitem_td�actionitem_anchor�hiddenr|)r|r�r�)r��shade�statustablezNo programs to manage�supervisor_version�copyright_date))r]r~r*r5rr�rrr�r}rrr��valuesr��keys�appendr�r��sortr�rr��getProcessInforqr��attribr��repeat�lowerr�r��replacerr��datetime�date�today�yearrr�) rr~r*rtr�r��
server_url�locationr}r��processnamesr��	gprocname�data�	groupnamer��	sent_name�inforg�
statusarea�iterator�	shaded_tr�
tr_element�itemr�r��anchorr��
li_element�
actionitem�table�copyright_yearrrrrk�s�


�����

�	




�

�




�
�
�
 
zStatusView.renderN)rNrOrPr�r�r�rkrrrrr��s+.r�c@s eZdZdZdd�Zdd�ZdS)�OKViewrcC�
||_dSrW)r])rr]rrrr 6rrzOKView.__init__cCsddiS)Nr0�OKrrorrrrn9r�zOKView.__call__N)rNrOrPrr rnrrrrr4srzui/status.html)r^�viewzui/tail.html)�
index.htmlz	tail.htmlzok.htmlc@s0eZdZdZdd�Zdd�Zdd�Zdd	�Zd
S)�supervisor_ui_handlerz&Supervisor Web UI HTTP Request HandlercCrrW)r})rr}rrrr Orrzsupervisor_ui_handler.__init__cCsf|jdvrdS|��\}}}}|�d�r|dd�}|�d�s|s#d}t��D]	}||kr0dSq'dS)N)�POST�GETFr�r1r!T)�command�	split_uri�
startswith�VIEWSr�)rrr`r��query�fragment�viewnamerrr�matchRs


���zsupervisor_ui_handler.matchcCs*|jdkr
t||�|_dS|�d|�dS)Nr#r!)r%r�continue_request)rrrrr�handle_requestbs
z$supervisor_ui_handler.handle_requestcCs"i}|��}|�|�d|vrd|d<|d}t�|�}t�|�}|��D]
\}}	|	d||<q%|D]\}}	|	||<q2|��|d<|d}
|
r[|
ddkr[|
dd�}
|
r[|
ddksM|
s_d}
t�|
�}|durjdSd	ii}|d
}
|d}t	|||||j
d�}|
|�}|jj}|t
||��dS)
N�QUERY_STRINGr!rr��	PATH_INFOr�r1r!r-r r^)r^rr~r*r})�cgi_environmentrYr�	parse_qsl�parse_qs�items�get_server_urlr(r5rVr}r%rDr)rrrr~�cgi_envr)�form_urlencoded�
query_data�k�vr`�viewinfor*�	viewclass�viewtemplater]r �pushproducerrrrr-hsD



�
�z&supervisor_ui_handler.continue_requestN)rNrOrP�IDENTr r,r.r-rrrrr"Lsr")+r_rRr�r#rr�r�supervisor.compatrrrrr�supervisor.medusar�supervisor.medusa.http_serverr	r
� supervisor.medusa.xmlrpc_handlerr�supervisor.processr�supervisor.httpr�supervisor.optionsrrr�supervisor.xmlrpcrrrr�supervisor.rpcinterfacerrrVr\rsr�rr(r"rrrr�<module>sXw".I
����