fjBdZddlZddlmZddlmZddlmZddl m Z ddl m Z d d l mZd d lmZd d lmZmZd d lmZd dlmZmZmZmZmZmZd dlmZGdde 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_datedate_of_timestampget_formatted_dateget_html_formatted_linksget_text_formatted_links)initialize_managerceZdZdZfdZdZdefdZddZe de de fd Z de ddfd Z de efd Zdefd Zdefd ZddZxZS)ContinuousTracingz+ Continuous tracing implementation ctt}td}|||_t ||_t|_dS)N auto_tasks) system_id) super__init__rr clientrmanager_instancer mail_sender)selfr client_object __class__s N/opt/cloudlinux/venv/lib64/python3.11/site-packages/xray/continuous/tracing.pyrzContinuousTracing.__init__ se MM "<00 #mi888 29 = =!88c~|||dS)N)clear_zombie_auto_tasks start_tracing generate_mail)r s r#__call__zContinuousTracing.__call__(s> $$&&&  r$returnc |j}nP#t$rC}|jddt |it }Yd}~nd}~wwxYw|S)z% Get auto tasks list zFailed to get auto taskserrextraN)r get_tasksr loggererrorstrlist)r taskses r#current_auto_tasksz$ContinuousTracing.current_auto_tasks-s K))++EE    K  8%*CFFO  5 5 5FFEEEEEE  s A)9A$$A)NcLd|D}|D]} ||dkr|j||j|D#t$r2}|jdt|Yd}~{d}~wwxYwdS)z6 Stop and complete running auto tasks cbi|],}|jr#|jdkr|jdk|j|j-S) completedz *autotracing*) auto_taskstatususertask_id).0ts r# z=ContinuousTracing.clear_zombie_auto_tasks..=sM===ak=./h+.E.E"#&O";"; i#<";";r$runningz%sN)r6rstopcompleter r0r1r2)r auto_running_taskst_idr5s r#r&z)ContinuousTracing.clear_zombie_auto_tasks9s=="5577===' 0 0D 0%d+y88)..t444%..t4444 0 0 0 !!$A//////// 0  0 0sAA%% B!/(BB!domainc|dd}tjt|st t d||S)z< Construct URL for auto tracing: {domain}/* /z/*z invalid url)striprematchr ValueError_)rFus r#_urlzContinuousTracing._urlIsO ||C  $ $ $xq!! 2Q}--q11 1r$c<|j|dxxdz cc<dS)z; Increment execution_count of given domain execution_countrN) tracing_conf)r rFs r#executedzContinuousTracing.executedSs/ &!"3444944444r$c d}|D]}|jdkr |j||j||j\#t$r5}|j |dt|iYd}~d}~wt$r6}|j |t||dYd}~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,#88:: : :O%22 :)44 IIo&BCC5EEEMM/"89999"===K%%h-2CFFO&======== )))K%%h14Q=L-(-(&)))))))))3..000s#3A33 C0=+B-- C0:,C++C0ct}|D]5} |j|||j<&#t $rY2wxYw|S)z[ Map e-mail addresses to urls in existing continuous tracing configuration )dictrWemailrOrYrL)r url_mail_mapr?s r#retrieve_mail_addrsz%ContinuousTracing.retrieve_mail_addrspspvv **,,  A :;' TYYq~6677    s"A  AAchdtdtfdfd|DS)z6 Select previous date completed tasks tsr*cd t|tkS#t$rYdSwxYw)zO Verify if task timestamp corresponds to previous date F)rr TypeError)rbs r# check_datez:ContinuousTracing.filter_tasks_by_date..check_dates@ (,, ;;   uu s ! //cJg|]}|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$)intboolr6)r res @r#filter_tasks_by_datez&ContinuousTracing.filter_tasks_by_date|s\  3 4    ))))''))))) )r$c |jdtt}|}|}|D]y}||j}|r[||t|jd|j i|jd|j |z| D]J\}}|j |dtt!|t#|K|jddS)zI Generate e-mails with links and send them to recipients zGenerating e-mails startedrz"Selected task %s for mailing to %sreport)templatedatelinks html_linkszE-mails sending finishedN)r0inforr3r`rkgetrUappendr shared_linkr=itemsr send_mailrrr)r email_confurl_mail_mappingyesterday_taskstaskmailkvs r#r(zContinuousTracing.generate_mailsc 5666 && 33553355# 5 5D#''11D 54 ''tx((+T-=>@@@   !E!%t555$$&& / /DAq   & &q8,>,@,@-Ea-H-H2J+,3.3. ' / / / / 344444r$)r*N)__name__ __module__ __qualname____doc__rr)r3r6r& staticmethodr2rOrSrr]r'r`rkr( __classcell__)r"s@r#rrs9$$$$$ D    0000 SS\:s:t:::: 1tDz1111. T    )d))))&55555555r$r) rrJ collectionsrtypingrxrayrrMcommonrmailerr apiclientr console_utils.validationsr internal.exceptionsr r internal.typesrinternal.utilsrrrrrrmanagerrrr$r#rss ######$$$$$$""""""------99999999&&&&&&KKKKKKKKKKKKKKKK((((((M5M5M5M5M5(M5M5M5M5M5r$