HEX
Server: LiteSpeed
System: Linux linux31.centraldnserver.com 4.18.0-553.83.1.lve.el8.x86_64 #1 SMP Wed Nov 12 10:04:12 UTC 2025 x86_64
User: salamatk (1501)
PHP: 8.1.33
Disabled: show_source, system, shell_exec, passthru, exec, popen, proc_open
Upload Files
File: //opt/alt/python37/lib/python3.7/site-packages/xray/continuous/__pycache__/tracing.cpython-37.pyc
B

�V�d!�@s�dZddlZddlmZddlmZddlmZddlm	Z	dd	l
mZdd
lm
Z
ddlmZmZddlmZdd
lmZmZmZmZmZmZddlmZGdd�de�ZdS)z>
This module contains X Ray continuous tracing implementation
�N)�defaultdict)�List�)�ContinuousCommon)�Mailer�)�
get_client)�regex)�	XRayError�XRayAPIError)�	url_split)�read_sys_id�	prev_date�date_of_timestamp�get_formatted_date�get_html_formatted_links�get_text_formatted_links)�initialize_managercs�eZdZdZ�fdd�Zdd�Zed�dd�Zd	d�d
d�Ze	e
e
d�d
d��Ze
d	d�dd�Ze
ed�dd�Zed�dd�Zed�dd�Zd	d�dd�Z�ZS)�ContinuousTracingz+
    Continuous tracing implementation
    cs:t���t�}td�}||d�|_t|�|_t�|_dS)NZ
auto_tasks)�	system_id)	�super�__init__r
r�clientr�manager_instancer�mail_sender)�selfrZ
client_object)�	__class__��H/opt/alt/python37/lib/python3.7/site-packages/xray/continuous/tracing.pyrs

zContinuousTracing.__init__cCs|��|��|��dS)N)�clear_zombie_auto_tasks�
start_tracing�
generate_mail)rrrr�__call__'szContinuousTracing.__call__)�returnc
CsTy|j��}Wn@tk
rN}z"|jjddt|�id�t�}Wdd}~XYnX|S)z%
        Get auto tasks list
        zFailed to get auto tasks�err)�extraN)rZ	get_tasksr�logger�error�str�list)rZtasks�errr�current_auto_tasks,sz$ContinuousTracing.current_auto_tasksNcCs�dd�|��D�}xj|D]b}y(||dkr6|j�|�|j�|�Wqtk
rx}z|j�dt|��Wdd}~XYqXqWdS)z6
        Stop and complete running auto tasks
        cSs0i|](}|jr|jdkr|jdkr|j|j�qS)�	completedz
*autotracing*)Z	auto_task�status�user�task_id)�.0�trrr�
<dictcomp><sz=ContinuousTracing.clear_zombie_auto_tasks.<locals>.<dictcomp>�runningz%sN)r+r�stopZcompleter
r&r'r()rZauto_running_tasksZt_idr*rrrr8s
z)ContinuousTracing.clear_zombie_auto_tasks)�domainr#cCs*|�d��d�}t�t|�s&td|��|S)z<
        Construct URL for auto tracing: {domain}/*
        �/z/*zinvalid url)�strip�reZmatchr	�
ValueError)r5�urrr�_urlHs
zContinuousTracing._urlcCs|j|dd7<dS)z;
        Increment execution_count of given domain
        Zexecution_countrN)Ztracing_conf)rr5rrr�executedRszContinuousTracing.executedcCs�d}x�|��D]�}|jdkry|jj|�|j�d�Wnttk
rp}z|jj|dt	|�id�Wdd}~XYqt
k
r�}z|jj|t	|�|d�d�Wdd}~XYqX|�|j�qW|�
�S)z8
        Start auto tasks with status 'running'
        zStart auto task failedr3)�urlr$)r%N)r$�continuous_task)�get_continuous_tasksr-rZ
start_autor;�original_urlr9r&r'r(r
r<r5Zdump_tracing_configuration)rZerr_textr>r*rrrr Xs
 zContinuousTracing.start_tracingc	CsHt�}x<|��D]0}y|j||�|j�<Wqtk
r>YqXqW|S)z[
        Map e-mail addresses to urls in existing continuous tracing configuration
        )�dictr?Zemailr;r@r9)rZurl_mail_mapr1rrr�retrieve_mail_addrsos
z%ContinuousTracing.retrieve_mail_addrscs&ttd�dd���fdd�|��D�S)z6
        Select previous date completed tasks
        )�tsr#cSs(yt|�t�kStk
r"dSXdS)zO
            Verify if task timestamp corresponds to previous date
            FN)rr�	TypeError)rCrrr�
check_date�sz:ContinuousTracing.filter_tasks_by_date.<locals>.check_datecs$g|]}|jdkr�|j�r|�qS)r,)r-Z	starttime)r0r1)rErr�
<listcomp>�s
z:ContinuousTracing.filter_tasks_by_date.<locals>.<listcomp>)�int�boolr+)rr)rEr�filter_tasks_by_date{s

z&ContinuousTracing.filter_tasks_by_datecCs�|j�d�tt�}|��}|��}xL|D]D}|�|j�}|r*||�t	|j�d|j
i�|j�d|j|�q*Wx4|��D](\}}|j
j|dt�t|�t|�d�q|W|j�d�dS)zI
        Generate e-mails with links and send them to recipients
        zGenerating e-mails startedrz"Selected task %s for mailing to %sZreport)ZtemplateZdateZlinksZ
html_linkszE-mails sending finishedN)r&�inforr)rBrI�getr=�appendrZshared_linkr/�itemsrZ	send_mailrrr)rZ
email_confZurl_mail_mappingZyesterday_tasksZtaskZmail�k�vrrrr!�s$

zContinuousTracing.generate_mail)�__name__�
__module__�__qualname__�__doc__rr"r)r+r�staticmethodr(r;r<rrAr rBrIr!�
__classcell__rr)rrrs	r)rSr8ZcollectionsrZtypingr�commonrZmailerrZ	apiclientrZconsole_utils.validationsr	Zinternal.exceptionsr
rZinternal.typesrZinternal.utilsr
rrrrrZmanagerrrrrrr�<module>
s