§ WèÄjBãóÊ—dZddlZddlmZddlmZddlmZddl m Z ddl m Z d d l mZd d lmZd d lmZmZd d lmZd dlmZmZmZmZmZmZd dlmZGd„de ¦«ZdS)z> This module contains X Ray continuous tracing implementation éN)Ú defaultdict)ÚList)Úgettexté)Ú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_managerc󤇗eZdZdZˆfd„Zd„Zdefd„Zdd„Ze de de fd „¦«Z de ddfd „Z de efd „Zdefd „Zdefd „Zdd„ZˆxZS)ÚContinuousTracingz+ Continuous tracing implementation cóò•—t¦« ¦«t¦«}td¦«}||¬¦«|_t |¦«|_t¦«|_dS)NÚ auto_tasks)Ú system_id) ÚsuperÚ__init__rr ÚclientrÚmanager_instancerÚ mail_sender)ÚselfrÚ client_objectÚ __class__s €úN/opt/cloudlinux/venv/lib64/python3.11/site-packages/xray/continuous/tracing.pyrzContinuousTracing.__init__ seø€Ý ‰Œ×ÒÑÔÐÝ‘M”Mˆ Ý" <Ñ0Ô0ˆ Ø#�m¨iÐ8Ñ8Ô8ˆŒ Ý 2°9Ñ =Ô =ˆÔÝ!™8œ8ˆÔÐÐócó~—| ¦«| ¦«| ¦«dS)N)Úclear_zombie_auto_tasksÚ start_tracingÚ generate_mail)r s r#Ú__call__zContinuousTracing.__call__(s>€Ø ×$Ò$Ñ&Ô&Ð&Ø ×ÒÑÔÐØ ×ÒÑÔÐÐÐr$ÚreturncóÜ— |j ¦«}nP#t$rC}|j ddt |¦«i¬¦«t ¦«}Yd}~nd}~wwxYw|S)z% Get auto tasks list zFailed to get auto tasksÚerr©ÚextraN)rÚ get_tasksr ÚloggerÚerrorÚstrÚlist)r ÚtasksÚes r#Úcurrent_auto_tasksz$ContinuousTracing.current_auto_tasks-s„€ð Ø”K×)Ò)Ñ+Ô+ˆEˆEøÝð ð ð Ø ŒK× Ò Ð8Ø%*­C°©F¬F Oð ñ 5ô 5ð 5å‘F”FˆEˆEˆEˆEˆEˆEøøøøð øøøðˆ s‚œ A)¦9A$Á$A)NcóL—d„| ¦«D¦«}|D]‚} ||dkr|j |¦«|j |¦«ŒD#t$r2}|j dt|¦«¦«Yd}~Œ{d}~wwxYwdS)z6 Stop and complete running auto tasks cób—i|],}|jr#|jdkr|jdk¯|j|j“Œ-S)Ú completedz *autotracing*)Ú auto_taskÚstatusÚuserÚtask_id)Ú.0Úts r#ú z=ContinuousTracing.clear_zombie_auto_tasks..=sM€ð=ð=ð=°aàœkð=à./¬h¸+Ò.EÐ.EØ"#¤&¨OÒ";Ð";ð œi¨¬ð#<Ð";Ð";r$Úrunningz%sN)r6rÚstopÚcompleter r0r1r2)r Úauto_running_tasksÚt_idr5s r#r&z)ContinuousTracing.clear_zombie_auto_tasks9sÚ€ð=ð=Ø"×5Ò5Ñ7Ô7ð=ñ=ô=Ðð'ð 0ð 0ˆDð 0Ø% dÔ+¨yÒ8Ð8ØÔ)×.Ò.¨tÑ4Ô4Ð4ØÔ%×.Ò.¨tÑ4Ô4Ð4Ð4øÝð 0ð 0ð 0Ø” ×!Ò! $­¨A©¬Ñ/Ô/Ð/Ð/Ð/Ð/Ð/Ð/øøøøð 0øøøð  0ð 0s¤AA%Á% B!Á/(BÂB!Údomaincó¤—| d¦«›d�}tjt|¦«st t d¦«|¦«‚|S)z< Construct URL for auto tracing: {domain}/* ú/z/*z invalid url)ÚstripÚreÚmatchr Ú ValueErrorÚ_)rFÚus r#Ú_urlzContinuousTracing._urlIsO€ð �|Š|˜CÑ Ô Ð $Ð $Ð $ˆÝŒx�˜qÑ!Ô!ð 2Ý�Q˜}Ñ-Ô-¨qÑ1Ô1Ð 1؈r$có<—|j|dxxdz cc<dS)z; Increment execution_count of given domain Úexecution_countrN)Ú tracing_conf)r rFs r#ÚexecutedzContinuousTracing.executedSs/€ð Ô˜&Ô!Ð"3Ð4Ð4Ô4¸Ñ9Ð4Ð4Ñ4Ð4Ð4r$c ó—d}| ¦«D]Ü}|jdkrÏ |j | |j¦«¬¦«| |j¦«Œ\#t$r5}|j   |dt|¦«i¬¦«Yd}~Œ–d}~wt$r6}|j   |t|¦«|dœ¬¦«Yd}~ŒÔd}~wwxYwŒÝ|  ¦«S)z8 Start auto tasks with status 'running' zStart auto task failedrA)Úurlr,r-N)r,Úcontinuous_task)Úget_continuous_tasksr;rÚ start_autorOÚ original_urlrSrFrLr0r1r2r Údump_tracing_configuration)r Úerr_textrVr5s r#r'zContinuousTracing.start_tracingYsm€ð,ˆØ#×8Ò8Ñ:Ô:ð :ð :ˆOØÔ%¨Ò2Ð2ð :ØÔ)×4Ò4Ø ŸIšI oÔ&BÑCÔCð5ñEôEðEð—M’M /Ô"8Ñ9Ô9Ð9Ð9øõ"ð=ð=ð=Ø”K×%Ò% hØ-2µC¸±F´F¨Oð&ñ=ô=ð=ð=ð=ð=ð=ð=øøøøå ð)ð)ð)Ø”K×%Ò% hå14°Q±´Ø=Lð-(ð-(ð&ñ)ô)ð)ð)ð)ð)ð)ð)øøøøð)øøøð3ð×.Ò.Ñ0Ô0Ð0s#¥3A3Á3 C0Á=+B-Â- C0Â:,C+Ã+C0có¶—t¦«}| ¦«D]5} |j|| |j¦«<Œ&#t $rYŒ2wxYw|S)z[ Map e-mail addresses to urls in existing continuous tracing configuration )ÚdictrWÚemailrOrYrL)r Ú url_mail_mapr?s r#Úretrieve_mail_addrsz%ContinuousTracing.retrieve_mail_addrspsp€õ‘v”vˆ Ø×*Ò*Ñ,Ô,ð ð ˆAð Ø:;¼'� ˜TŸYšY q¤~Ñ6Ô6Ñ7Ð7øÝð ð ð Ø�ð øøøàÐs¦"A Á AÁAcóh‡—dtdtfd„Šˆfd„| ¦«D¦«S)z6 Select previous date completed tasks Útsr*cód— t|¦«t¦«kS#t$rYdSwxYw)zO Verify if task timestamp corresponds to previous date F)rrÚ TypeError)rbs r#Ú check_datez:ContinuousTracing.filter_tasks_by_date..check_date�s@€ð Ý(¨Ñ,Ô,µ ± ´ Ò;Ð;øÝð ð ð à�u�uð øøøs ‚!¡ /®/cóJ•—g|]}|jdk¯ ‰|j¦«¯|‘Œ S)r9)r;Ú starttime)r>r?res €r#ú z:ContinuousTracing.filter_tasks_by_date..‹sDø€ð)ð)ð)�aØ-.¬X¸Ò-DÐ-DØ� ˜1œ;Ñ'Ô'ð.EðØ-DÐ-DÐ-Dr$)ÚintÚboolr6)r res @r#Úfilter_tasks_by_datez&ContinuousTracing.filter_tasks_by_date|s\ø€ð  �3ð ¥4ð ð ð ð ð)ð)ð)ð)Ø×'Ò'Ñ)Ô)ð)ñ)ô)ð )r$c óœ—|j d¦«tt¦«}| ¦«}| ¦«}|D]y}| |j¦«}|r[|| t|j¦«d|j i¦«|j d|j |¦«Œz|  ¦«D]J\}}|j  |dt¦«t!|¦«t#|¦«¬¦«ŒK|j d¦«dS)zI Generate e-mails with links and send them to recipients zGenerating e-mails startedrz"Selected task %s for mailing to %sÚreport)ÚtemplateÚdateÚlinksÚ html_linkszE-mails sending finishedN)r0Úinforr3r`rkÚgetrUÚappendrÚ shared_linkr=ÚitemsrÚ send_mailrrr)r Ú email_confÚurl_mail_mappingÚyesterday_tasksÚtaskÚmailÚkÚvs r#r(zContinuousTracing.generate_mail�sc€ð Œ ×ÒÐ5Ñ6Ô6Ð6Ý ¥Ñ&Ô&ˆ Ø×3Ò3Ñ5Ô5Ðà×3Ò3Ñ5Ô5ˆà#ð 5ð 5ˆDØ#×'Ò'¨¬Ñ1Ô1ˆDØð 5ؘ4Ô ×'Ò'ݘtœxÑ(Ô(¨Ô+¨TÔ-=Ð>ñ@ô@ð@à” × Ò Ð!EØ!%¤¨tñ5ô5ð5øð×$Ò$Ñ&Ô&ð /ð /‰DˆAˆqØ Ô × &Ò & q°8Ý,>Ñ,@Ô,@Ý-EÀaÑ-HÔ-HÝ2JØ+,ñ3.ô3.ð 'ñ /ô /ð /ð /ð Œ ×ÒÐ3Ñ4Ô4Ð4Ð4Ð4r$)r*N)Ú__name__Ú __module__Ú __qualname__Ú__doc__rr)r3r6r&Ú staticmethodr2rOrSrr]r'r`rkr(Ú __classcell__)r"s@r#rrs9ø€€€€€ððð$ð$ð$ð$ð$ðððð  Dð ð ð ð ð0ð0ð0ð0ð ð�Sð˜Sðððñ„\ðð:˜sð: tð:ð:ð:ð:ð 1˜t Dœzð1ð1ð1ð1ð.  Tð ð ð ð ð) dð)ð)ð)ð)ð&5ð5ð5ð5ð5ð5ð5ð5r$r) r‚rJÚ collectionsrÚtypingrÚxrayrrMÚcommonrÚmailerrÚ apiclientr Úconsole_utils.validationsr Úinternal.exceptionsr r Úinternal.typesrÚinternal.utilsrrrrrrÚmanagerrr©r$r#úr‘ssðððð € € € Ø#Ð#Ð#Ð#Ð#Ð#ØÐÐÐÐÐàÐÐÐÐÐØ$Ð$Ð$Ð$Ð$Ð$ØÐÐÐÐÐØ"Ð"Ð"Ð"Ð"Ð"Ø-Ð-Ð-Ð-Ð-Ð-Ø9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ø&Ð&Ð&Ð&Ð&Ð&ðKðKðKðKðKðKðKðKðKðKðKðKðKðKðKðKà(Ð(Ð(Ð(Ð(Ð(ðM5ðM5ðM5ðM5ðM5Ð(ñM5ôM5ðM5ðM5ðM5r$