a
    xdM
                     @   sj   d dl Z d dlZd dlmZ d dlmZ ddlmZ ddlmZ ddlm	Z	 e 
eZG dd	 d	eZdS )
    N)web)gen   )BaseHandler)options)ListWorkersc                   @   s8   e Zd Zejejdd Zedd Z	edd Z
dS )DashboardViewc              
   C   s  | j ddtd}| j ddtd}| jjj}|rnz| j  W n0 tyl } ztd| W Y d }~n
d }~0 0 i }|j	
 D ]L\}}||jvrq||j| }t|}	|	| | |	j|jd |	||< q|tjd ur^tt }
g }|
 D ]X\}}	|	ddrq|	d	g }|r$tt|nd }|r<|
| tjkr|| q|D ]}|| qL|r~| tt| d
 n.| jd|| jj  | jjjrdndd d S )NrefreshF)defaulttypejsonzFailed to update workers: %s)statusr   T
heartbeats)datazdashboard.html   r   )workersZbrokerZautorefresh) Zget_argumentboolZapplicationeventsstateZupdate_workers	Exceptionlogger	exceptioncounteritemsr   dictupdate_as_dictaliver   Zpurge_offline_workersinttimegetmaxappendpopwritelistvaluesrenderZcapp
connectionas_uriZauto_refresh)selfr	   r   r   er   namer&   workerinfo	timestampZoffline_workersr   Zlast_heartbeat r0   N/var/www/html/Ranjet/env/lib/python3.9/site-packages/flower/views/dashboard.pyr       sH    
"


zDashboardView.getc                    s0   t  dr"t fdd jD S |  S d S )N_fieldsc                 3   s   | ]}|  |fV  qd S N)__getattribute__).0kr-   r0   r1   	<genexpr>B       z)DashboardView._as_dict.<locals>.<genexpr>)hasattrr   r2   _info)clsr-   r0   r7   r1   r   ?   s    
zDashboardView._as_dictc                    s   d  fdd}t | S )N)hostnamepidfreqr   Zclockactive	processedZloadavgZsw_identZsw_verZsw_sysc                  3   s,    D ]"} t | d }|d ur| |fV  qd S r3   )getattr)keyvaluer2   r-   r0   r1   _keysL   s    z"DashboardView._info.<locals>._keys)r   )r<   r-   rF   r0   rE   r1   r;   F   s    zDashboardView._infoN)__name__
__module____qualname__r   authenticatedr   	coroutiner    classmethodr   r;   r0   r0   r0   r1   r      s   -
r   )loggingr   Ztornador   r   Zviewsr   r   Zapi.workersr   	getLoggerrG   r   r   r0   r0   r0   r1   <module>   s   
