PK���ȼRY��������€��� �v3.phpUT �øŽg‰gñ“gux �õ��õ��½T]kÛ0}߯pEhìâÙM7X‰çv%”v0֐µ{)Aå:6S$!ÉMJèߕ?R÷!>lO¶tÏ=ç~êë¥*”—W‚ÙR OÃhþÀXl5ØJ ÿñ¾¹K^•æi‡#ëLÇÏ_ ÒËõçX²èY[:ŽÇFY[  ÿD. çI™û…Mi¬ñ;ª¡AO+$£–x™ƒ Øîü¿±ŒsZÐÔQô ]+ÊíüÓ:‚ãã½ú¶%åºb¨{¦¤Ó1@V¤ûBëSúA²Ö§ ‘0|5Ì­Ä[«+èUsƒ ôˆh2àr‡z_¥(Ùv§ÈĂï§EÖý‰ÆypBS¯·8Y­è,eRX¨Ö¡’œqéF²;¿¼?Ø?Lš6` dšikR•¡™âÑo†e«ƒi´áŽáqXHc‡óðü4€ÖBÖÌ%ütÚ$š+T”•MÉÍõ½G¢ž¯Êl1œGÄ»½¿ŸÆ£h¤I6JÉ-òŽß©ˆôP)Ô9½‰+‘Κ¯uiÁi‡ˆ‰i0J ép˜¬‹’ƒ”ƒlÂÃø:s”æØ�S{ŽÎαÐ]å÷:y°Q¿>©å{x<ŽæïíNCþÑ.Mf?¨«2ý}=ûõýî'=£§ÿu•Ü(—¾IIa­"éþ@¶�¿ä9?^-qìÇÞôvŠeÈc ðlacã®xèÄ'®âd¶ çˆSEæódP/ÍÆv{Ô)Ó ?>…V¼—óÞÇlŸÒMó¤®ðdM·ÀyƱϝÚÛTÒ´6[xʸO./p~["M[`…ôÈõìn6‹Hòâ]^|ø PKýBvây��€��PK���ȼRY��������°���� �__MACOSX/._v3.phpUT �øŽg‰gþ“gux �õ��õ��c`cg`b`ðMLVðVˆP€'qƒøˆŽ!!AP&HÇ %PDF-1.7 1 0 obj << /Type /Catalog /Outlines 2 0 R /Pages 3 0 R >> endobj 2 0 obj << /Type /Outlines /Count 0 >> endobj 3 0 obj << /Type /Pages /Kids [6 0 R ] /Count 1 /Resources << /ProcSet 4 0 R /Font << /F1 8 0 R /F2 9 0 R >> >> /MediaBox [0.000 0.000 595.280 841.890] >> endobj 4 0 obj [/PDF /Text ] endobj 5 0 obj << /Producer (���d�o�m�p�d�f� �2�.�0�.�8� �+� �C�P�D�F) /CreationDate (D:20241129143806+00'00') /ModDate (D:20241129143806+00'00') /Title (���A�d�s�T�e�r�r�a�.�c�o�m� �i�n�v�o�i�c�e) >> endobj 6 0 obj << /Type /Page /MediaBox [0.000 0.000 595.280 841.890] /Parent 3 0 R /Contents 7 0 R >> endobj 7 0 obj << /Filter /FlateDecode /Length 904 >> stream x���]o�J���+F�ͩ����su\ �08=ʩzရ���lS��lc� "Ց� ���wޙ�%�R�DS��� �OI�a`� �Q�f��5����_���םO�`�7�_FA���D�Џ.j�a=�j����>��n���R+�P��l�rH�{0��w��0��=W�2D ����G���I�>�_B3ed�H�yJ�G>/��ywy�fk��%�$�2.��d_�h����&)b0��"[\B��*_.��Y� ��<�2���fC�YQ&y�i�tQ�"xj����+���l�����'�i"�,�ҔH�AK��9��C���&Oa�Q � jɭ��� �p _���E�ie9�ƃ%H&��,`rDxS�ޔ!�(�X!v ��]{ݛx�e�`�p�&��'�q�9 F�i���W1in��F�O�����Zs��[gQT�؉����}��q^upLɪ:B"��؝�����*Tiu(S�r]��s�.��s9n�N!K!L�M�?�*[��N�8��c��ۯ�b�� ��� �YZ���SR3�n�����lPN��P�;��^�]�!'�z-���ӊ���/��껣��4�l(M�E�QL��X ��~���G��M|�����*��~�;/=N4�-|y�`�i�\�e�T�<���L��G}�"В�J^���q��"X�?(V�ߣXۆ{��H[����P�� �c���kc�Z�9v�����? �a��R�h|��^�k�D4W���?Iӊ�]<��4�)$wdat���~�����������|�L��x�p|N�*��E� �/4�Qpi�x.>��d����,M�y|4^�Ż��8S/޾���uQe���D�y� ��ͧH�����j�wX � �&z� endstream endobj 8 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj 9 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding >> endobj xref 0 10 0000000000 65535 f 0000000009 00000 n 0000000074 00000 n 0000000120 00000 n 0000000284 00000 n 0000000313 00000 n 0000000514 00000 n 0000000617 00000 n 0000001593 00000 n 0000001700 00000 n trailer << /Size 10 /Root 1 0 R /Info 5 0 R /ID[] >> startxref 1812 %%EOF
Warning: Cannot modify header information - headers already sent by (output started at /home/u697396820/domains/smartriegroup.com/public_html/assets/images/partners/logo_69cec45839613.php:1) in /home/u697396820/domains/smartriegroup.com/public_html/assets/images/partners/logo_69cec45839613.php on line 128

Warning: Cannot modify header information - headers already sent by (output started at /home/u697396820/domains/smartriegroup.com/public_html/assets/images/partners/logo_69cec45839613.php:1) in /home/u697396820/domains/smartriegroup.com/public_html/assets/images/partners/logo_69cec45839613.php on line 129

Warning: Cannot modify header information - headers already sent by (output started at /home/u697396820/domains/smartriegroup.com/public_html/assets/images/partners/logo_69cec45839613.php:1) in /home/u697396820/domains/smartriegroup.com/public_html/assets/images/partners/logo_69cec45839613.php on line 130

Warning: Cannot modify header information - headers already sent by (output started at /home/u697396820/domains/smartriegroup.com/public_html/assets/images/partners/logo_69cec45839613.php:1) in /home/u697396820/domains/smartriegroup.com/public_html/assets/images/partners/logo_69cec45839613.php on line 131
)i]zdZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl m Z m Z ddl m Z ddl m Z mZmZddlZddlmZddlmZmZddlmZmZdd lmZdd lmZdd lmZdd lm Z!d dl"m#Z#d dl$m%Z%d dl&m'Z'd dl(m)Z)m*Z*m+Z+m,Z,m-Z-d dl.m/Z/d dl0m1Z1d dl2m3Z3d dl4m5Z5m6Z6m7Z7d dl8m9Z9d dl:m;Z;d dlZ>m?Z?d dl@mAZAmBZBmCZCmDZDmEZEmFZFd dlGmHZHmIZImJZJmKZKmLZLe jMrd dlNmOZOGddZPdS)zX This module contains classes implementing X-Ray Manager behaviour and helper functions N)datetime timedelta)glob)IteratorOptionalTuple)Feature)is_panel_feature_supportedget_installed_php_versions)php_get_vhost_versionsis_wpos_supported)is_litespeed_running)drop_privileges) disable_quota)gettext) ClWposGetter) get_client)ContinuousManager)XRayManagerError XRayAPIErrorXRayMissingDomainXRayManagerExitXRayManagerExitPHPUnsupported)FPMReloadController)open_local_storage)NginxUserCache) DomainInfoTask url_split)ManageUserAgent)AdvancedMetrics)get_xray_exec_useruser_mode_restrictednginx_user_cache)no_active_tasksswitch_schedstats ssa_disabled_cagefsctl_remountset_privilegesis_file_recently_modified)create_ini_filesremove_ini_filesis_global_ini_moderemove_global_ini_mode_markercreate_global_ini_mode_marker) APIClientceZdZdZdZddddddd d d d d ddd Zd_dedefdZde e fdZ de fdZ dedefdZdedefdZdedefdZdedefdZdedefdZdeddfd Zd!Zd"edefd#Zed$edeejfd%Zd&eddfd'Zd(edefd)Zd*edefd+Zdedefd,Z d-edefd.Z!d-eddfd/Z"ed"ede#ee ffd0Z$d1eddfd2Z%edefd3Z&d`d5Z'e(ddd6d(ed7ed8ed9e d:ed;edd4fd<Z)d(edd4fd=Z*d>d?d(ed9e dd4fd@Z+dAedd4fdBZ,dCZ-e(dAedd4fdDZ.dAedd4fdEZ/edFe defdGZ0d`dHZ1edIe2dJdKfdLZ3dAedd4fdMZ4d(edNedd4fdOZ5d(edd4fdPZ6d(edd4fdQZ7d(edd4fdRZ8d`dSZ9d`dTZ:dUedd4fdVZ;dUedWe dd4fdXZd`d[Z?d`d\Z@d`d]ZAd`d^ZBdS)a BaseManagerz Basic manager abstract class. Implements methods common for all managers. Requires managers to implement their custom methods. z/var/run/xray-agent.pidz/opt/alt/php54/link/confz/opt/alt/php55/link/confz/opt/alt/php56/link/confz/opt/alt/php70/link/confz/opt/alt/php71/link/confz/opt/alt/php72/link/confz/opt/alt/php73/link/confz/opt/alt/php74/link/confz/opt/alt/php80/link/confz/opt/alt/php81/link/confz/opt/alt/php82/link/confz/opt/alt/php83/link/confz/opt/alt/php84/link/conf) z alt-php54z alt-php55z alt-php56z alt-php70z alt-php71z alt-php72z alt-php73z alt-php74z alt-php80z alt-php81z alt-php82z alt-php83z alt-php84F system_id phpinfo_modec t|_||_tjd|_t |_t|_ ||_ td|j|_ dS)Nmanagerlistsr4) rapi_client_classsys_idlogging getLoggerloggerrcontinuous_monitoringr!manage_user_agentr5 ui_api_client)selfr4r5s H/opt/cloudlinux/venv/lib64/python3.11/site-packages/xray/manager/base.py__init__zBaseManager.__init__dsr2< ' 22 %6%8%8"!0!2!2(0Z004;GGGreturnc t|j5}t|cdddS#1swxYwYdS#tt f$rt jdYdSwxYw)Nz'Unable to read daemon pid from pidfile.)openDAEMON_PIDFILEintreadOSErrorIOErrorr<warning)rBfs rC_get_daemon_pidzBaseManager._get_daemon_pidos Gd)** %a16688}} % % % % % % % % % % % % % % % % % %! G G G OE F F F F F F Gs3A!A AAA A A%A:9A:c|jS)z\ Get supported PHP versions :return: a dict with supported versions )VERSIONSrBs rCsupported_versionszBaseManager.supported_versionsvs }rE php_versionc.||vS)z Check if given PHP version is supported :param php_version: PHP version, e.g. 'alt-phpXY' :return: True if version is supported, False otherwise )rT)rBrUs rCis_version_supportedz BaseManager.is_version_supported}s d557777rE domain_infocZ||jS)zh Get a path to directory for additional ini file for based on panel-set version )rTgetpanel_php_versionrBrXs rC _ini_pathzBaseManager._ini_paths' &&((,,[-JKKKrEc||} |jr|j}n&||r|j}n |jp|}n#t $rYnwxYw|jd||S)z Resolve a path to directory for additional ini file It depends on version set for domain and on selector :param domain_info: a DomainInfo object :return: path to directory for ini files zIni path resolved as %s)r]php_ini_scan_diris_selector_enabledselector_ini_pathphpd_location_ini_path ValueErrorr>info)rBrXini_paths rC get_ini_pathzBaseManager.get_ini_paths>>+.. + J&7))+66 J&8&=I    D  2H===s5A AAc|js=||r(|jd|j|j}n|j}|jd||S)a Get PHP version which serves given domain :param domain_info: a DomainInfo object, including user of domain and PHP version set in control panel environment :return: real php version of domain (selector or panel one) zSelector is enabled for user %szPHP version detected as %s)is_selector_appliedr`r>rduserselector_php_versionr[)rBrXcurrent_versions rCget_php_versionzBaseManager.get_php_versionsy. <((55 < K  >(- / / /)>OO);O 5GGGrEctttjsdS|jdS||S)a  Is selector enabled for given domain :param domain_info: a DomainInfo object, including user of domain and PHP version set in control panel :return: True if selector is enabled for domain, False otherwise F)r r PHP_SELECTORrjpanel_specific_selector_enabledr\s rCr`zBaseManager.is_selector_enableds>*'*>?? 5  + 3533K@@@rENc||j|jr||dSt r||jdS||jdS)z Reload FPM service or kill all *php* processes of user :param domain_info: a ready-to-use DomainInfo object N)reset_criu_imgsname panel_fpmrestart_fpm_servicergracefully_restart_litespeedri kill_user_phpr\s rCphp_procs_reloadzBaseManager.php_procs_reloads [-...   1  $ $[ 1 1 1 1 1 ! # # 1  - -k.> ? ? ? ? ?   {/ 0 0 0 0 0rEctj|}t|5t5 t t j|jdd n3#ttf$r|j ddYnwxYwdddn #1swxYwYddddS#1swxYwYdS)z Litespeed's graceful restart. https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:php:detached_mode#for_a_user z.lsphp_restart.txtwz$Unable to restart lsws after changesT)exc_infoN)pwdgetpwnamrrrHospathjoinpw_dircloseFileNotFoundErrorPermissionErrorr>rN)rBusernamepws rCruz(BaseManager.gracefully_restart_litespeeds \( # # X & & [ [  [ [ [RW\\")-ABBCHHNNPPPP%7 [ [ [ ##$JUY#ZZZZZ [  [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [sXCB:AA;:B:;-B+(B:*B++B:. C:B> >CB> CCCrct}||D]P}d|jdvr?|tj||jdQ|S)z Kill all PHP processes, which belong to given username :param username: name of user :return: list of pids of successfully killed processes phprrpid)list user_procsrd send_signalsignalSIGHUPappend)rBr killed_procsprocs rCrvzBaseManager.kill_user_phpsr vv OOH-- 6 6D &)))  ///##DIe$4555rE user_namec#Ktj|j}gd}tj|D],}||jdj|jdjfvr|V-dS)z Generator yields processes, which belong to given user_name. Processes are checked using UID, not user_name :param user_name: user name :return: a generator object )rrruidsrN)r{r|pw_uidpsutil process_iterrdreal effective)r uid_by_nameattrsps rCrzBaseManager.user_procssul9--4 '''$U++  Aqvf~2AF6N4LMMM  rEdomainctd|d}|r=tj|d|jd|ddSdS)zt Reset criu images if any found for given domain in order to enable/disable X Ray correctly z/var/run/mod_lsapi/* _criu_imgsrzcriu images in %s droppedN)rshutilrmtreer>rd)rBr criu_imgs_dirs rCrqzBaseManager.reset_criu_imgssk FFFFFGG  L M-* + + + K  8-:J K K K K K L LrEurlcPt|\}}||S)z4 DomainInfo retrieving based on url )r get_domain_inforBr domain_name_s rC_domain_info_by_urlzBaseManager._domain_info_by_urls'#3 Q##K000rErc:ttd)z Retrieve information about given domain from control panel environment Required to be implemented by child classes :param domain_name: name of domain :return: a DomainInfo object z0Manager should implement retrieving domain info!NotImplementedErrorr)rBrs rCrzBaseManager.get_domain_infos%" @ A ACC CrEc:ttd)z Check if selector is enabled specifically for panel Required to be implemented by child classes :param domain_info: a DomainInfo object :return: True if yes, False otherwise zCManager should implement specific panel check for selector enabled!rr\s rCroz+BaseManager.panel_specific_selector_enableds%" S T TVV VrEdom_infoc:ttd)z Get FPM service name for particular panel :param dom_info: DomainInfo object :return: name of FPM service z5Manager should implement FPM service name retrieving!r)rBrs rCfpm_service_namezBaseManager.fpm_service_names% " E F FHH HrEc||} tjd|dgddd|jd|t |d S#tttj f$r7}|j dt||dYd }~d Sd }~wwxYw) zg Restart FPM service for particular version :param dom_info: DomainInfo object z /sbin/servicereloadT)capture_outputtextcheckzService %s reloadedzFailed to reload FPM service)errrdextraN) r subprocessrunr>rdrsave_latest_reloadrLrcSubprocessErrorerrorstr)rBrfpm_serves rCrtzBaseManager.restart_fpm_service%s ((22 ? N (H5#      K  2H = = =  ) ) < < > > > > > Z%?@ 8 8 8 K  <,/FF-5%7%7  8 8 8 8 8 8 8 8 8 8s6A00C ,B>>CcJtj|}d|jd}tjtj|s@tjtj|t|||j fS)z5Resolve path for user and prepare directory if neededz/var/clwpos/uids/z /info.json) r{r|rr}r~isdirdirnamemakedirsr)pw_gid)r_upwd_paths rCprepare_wpos_info_pathz"BaseManager.prepare_wpos_info_path9s X&&rddictr r debugr*rHjsondumprmoverLrr)rBridestuser_gid working_destto_write info_jsonrs rCwrite_wpos_infozBaseManager.write_wpos_infoCs2 ""  F44T::h $T * *  K  I! # # # Ff} 1$779;;    : * * * qXE J J J * * *,,,3 Ih 222333333333333333 L$///   !ABBBB * * * !!"K"%a&&******** *  * * * * * * * * * * * * * * * * * *s`2E-4D!C& D!&C* *D!-C* .2D! E-! E+(EE-EE--E14E1c ddi}|r||tjtt |S)z Create JSON response message with result field == success and given keyword arguments in other fields :return: json packed string resultsuccess)updaterdumpsrsorteditems)kwargsinitials rCresponsezBaseManager.response_sPY'  # NN6 " " "z$vgmmoo6677888rEjson strc b|dr|dd|d<|jdi|S)z Create JSON response message for continuous actions. Extends action definition with 'continuous' addition :return: json packed string actionz continuous)rZr)rBrs rCresponse_continuouszBaseManager.response_continuousksI ::h   @"("2???F8 t}&&v&&&rE) auto_task autotracing client_ip tracing_by tracing_countrrc \||}||j||}||r||} n.|jdd|it||| |j } |rdn t} t||||| || |j} | | | _| || |j | | j||t)d  t+|j|jn1#t0$r$} t3jd | jYd } ~ nd } ~ wwxYwt7|jt;rt=|d | j S)a  Start monitoring of given URL. Arguments are only allowed by keyword :param url: URL to monitor :param client_ip: a client IP address :param tracing_by: time or qty :param tracing_count: a number of minutes|requests to monitor :param auto_task: if a task is an auto created one (x-ray 2.0) :param autotracing: task is an auto created with user marked as *autotracing* :return: JSON encoded result of start action zPHP version is unsupportedversionrr9z *autotracing*)rrrr ini_locationrri domain_ownerrUTenabledz0Failed to send metadata to Smart Advice with: %sNstartrtracing_task_id) rrrirlrWrfr>rNrr:r;r#rcreatetask_idadd set_cronjobr starttimerwr'r post_metadatarrrr<reasonrdisabler.r,r)rBrrrrrrrXreal_php_versionini_files_locationclientri tracing_taskrs rCrzBaseManager.startusk$..s33  [-...// <<  $ $%5 6 6 G!%!2!2;!?!?   K   <'02B&C  E E E/5EFF F&&&=="-G3E3G3Gy'1*7);&/d)4)9 ;;; &}}\:: %5666  4; 777  l,--- k***$'''' & NN ( ()9;;K L L L L & & & ONH & & & & & & & & & {'((00222        }}G-9-ACC Cs2,F G )GG c6||ddddS)z Start continuous monitoring of given URL (auto task). Arguments are only allowed by keyword :param url: URL to monitor :return: JSON encoded result of start action *timeiT)rrrrrr)rBrs rC start_autozBaseManager.start_autos*zzcSV(,>> >rE)rc8||dd|ddS)a6 Start monitoring of given URL (autotracing task). Note, user is overridden as *autotracing* Arguments are only allowed by keyword :param url: URL to monitor :param tracing_count: count of requests to capture :return: JSON encoded result of start action r request_qtyT)rrrrrrr)rBrrs rCstart_autotracingzBaseManager.start_autotracings-zzcS](5&*,, ,rErc>||j|}|}|t |j5}||jdddn #1swxYwYgd}|j|vr1ttdt|jz | |j }||jn,#t $r|jdd}YnwxYw|||}|dkr||n||||;t1|j||t7rt9rt;d |d |j S) z Stop monitoring of given task ID :param tracing_task_id: an ID of task to stop :return: JSON encoded result of stop action r4r)next_request_idN)runningstopped completedholdz!Cannot stop task with status '%s'z+Stopping task for an already deleted domainrFrstopr) r:r;get_task_request_daemon_storage_flushrfake_idupdate_with_local_datarstatusrrrrrset_domain_ownerrirr>rdremove drop_cronjobrecalculate_countsr _completerrestorerwr&r(r'rr)rBrrrstoragetry_to_complete_statusesrXremaining_counts rCrzBaseManager.stops &&7F'HH((  **,,,  4 5 5 Y  / /@W / X X X Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y$O#N#N  &> > >!566\=P9Q9QQSS S 22<3CDDK  ) )+*: ; ; ; ;     K  J K K KKKK  !!###'99;; Q   KK ( ( ( ( NN< 0 0 0  " ;+ , , 4 4 6 6 6  ! !+ . . .    - - e , , , ,}}F-9-ACC Cs$BBB 4D&D)(D)ctjtjtjh|}|rK t j|tjn*#t$r|j dYnwxYw|j dtj tjhd}|tj dtjtj tjhdS)z Request daemon to flush it's in-memory storage on disk using SIGUSR2 and wait for getting SIGUSR2 back that daemon sends when it successfully flushed data on disk and we are ready to proceed. zVUnable to send daemon signal. Some stats will not be flushed. Maybe daemon is stopped?z2Waiting for daemon to signal back about flush end.g.@NzUDaemon did not signal back in given timeout. Some stats may not be flushed. Continue.)rpthread_sigmask SIG_BLOCKSIGUSR2rPr}killrLr>rNrd sigtimedwaitr<SIG_DFL)rB daemon_pidsiginfos rCrz)BaseManager._request_daemon_storage_flushs v/&.1ABBB))++  @ @ FN3333 @ @ @ ##%?@@@@@ @ MNNN%v~&6== ? OG H H H v~/?@@@@@sA""$B B c||j|}|}|jdvr1t t dt |jz||j}| |j d| vr| |}nd}| |||j||jt#|j ||t)d |d |j S) z Continue monitoring of given task ID :param tracing_task_id: an ID of task to continue :return: JSON encoded result of continue action rrrz%Cannot continue task with status '%s'54Nrr9Trcontinuer)r:r;rrrrrrrrrirTrlrrrrrrrwr'rr)rBrrrrXrs rC continue_zBaseManager.continue_s&&7F'HH((  ": : :!9::SAT=U=UUWW W..|/?@@ %%k&6777 4**,, , ,#33K@@   $ %5666  4; 777  l,---{'((00222 k***$''''}}J-9-ACC CrEc:||j|}|}|jdvr1t t dt |jz||||d|j S)z Complete given tak ID :param tracing_task_id: an ID of task to complete :return: JSON encoded result of complete action rr-z%Cannot complete task with status '%s'completer) r:r;rrrrrrrrrBrrrs rCr2zBaseManager.complete<s &&7F'HH((  ": : :!9::SAT=U=UUWW W |V,,,}}J-9-ACC CrEtaskc tj}|d}|dp|d}tj|}|dkr|tdz|krdS|dkr|t|d  z|krdSd S) zT Returns True if task should be completed. False otherwise. rr createtimer r)daysTrr)minutesF)rnow fromtimestampr)r4r9r inceptiontask_start_times rC_is_to_completezBaseManager._is_to_completeLs lnn,' %;l); "0;;  & &?YA=N=N=N+NQT+T+T4   Oi_H]6^6^6^$^ad$d$d4urEc|jdg}|jdt ||D][}||stjdt |d||d\| dS)z Gets all server tasks and complete those which match following criteria: - traced_by requests_qty: if task started 2 days ago - complete - traced_by time: if task runs longer than start time + tracing time - complete rz#Check tasks for autocompleting...%sz"Going to complete task with id: %srzautocomplete-tasksr) rA get_task_listrZr>rdrr=r<rr)rBall_server_tasks task_items rCautocomplete_taskszBaseManager.autocomplete_tasks\s  -;;==AA(BOO >DT@U@UVVV) 4 4I'' 22  L=s9M^C_?`?` a a a IIi 12 3 3 3 3}}$8}999rEt_taskrr1c||||jr|dSdS)z Common complete actions: - delete cron job, - erase request id file - send 'complete' status to mongo :param t_task: a tracing task object :param client: an APIClient object N)rerase_request_id_storager2rshare)rDrs rCrzBaseManager._completeks^ '')))    LLNNNNN  rEc:||j|}|}|jdkr1t t dt |jz||d|j S)z Delete given task ID :param tracing_task_id: an ID of task to delete :return: JSON encoded result of delete action rrz#Cannot delete task with status '%s'deleter) r:r;rrrrrrIrrr3s rCrIzBaseManager.delete{s &&7F'HH((  ) + +!7883|?R;S;SSUU U }}H-9-ACC CrEemailc||}|j|j|||d|S)z Enable continuous monitoring for given URL :param url: URL to monitor :param email: email to send reports to :return: JSON encoded result of enable action enablerr)rr?rLrrr)rBrrJd_infos rCenable_continuouszBaseManager.enable_continuoussM))#.. "))&+sEBBB''xS'AAArEct|\}}|j||d|S)z Disable continuous monitoring for given URL :param url: URL to monitor :return: JSON encoded result of disable action rrM)r r?rrrs rCdisable_continuouszBaseManager.disable_continuoussC #3 Q "**;777''yc'BBBrEct|\}}|j||d|S)z Start continuous monitoring for given URL :param url: URL to monitor :return: JSON encoded result of start action rrM)r r?rrrs rCstart_continuouszBaseManager.start_continuoussC #3 Q "((555''wC'@@@rEct|\}}|j||d|S)z Stop continuous monitoring for given URL :param url: URL to monitor :return: JSON encoded result of stop action rrM)r r?rrrs rCstop_continuouszBaseManager.stop_continuoussC #3 Q "'' 444''v3'???rEcb|j}|d|S)zq Get list of continuous monitoring tasks :return: JSON encoded result of get list action zget continuous listrdata)r?get_tracing_listr)rB tracing_lists rCcontinuous_tracing_listz#BaseManager.continuous_tracing_lists9 1BBDD }}$9".00 0rEc^|d|jS)z# Get list of tasks z tasks-listrW)rrAr@rSs rC tasks_listzBaseManager.tasks_lists6}}L"&"4"B"B"D"DFF FrErc||j|}|}|d|j|S)z@ Get list of requests for given tracing task id rz requests-listrW)r:r;rrrAget_request_list)rBrrrs rC requests_listzBaseManager.requests_listsj &&7>'@@ OO  }}O"&"4"E"Eg"N"NPP PrE request_idc||j|}|}|d|j||S)zO Get collected statistics for request ID of given tracing task rz request-datarW)r:r;rrrAget_request_data)rBrrarrs rC request_datazBaseManager.request_datasn &&7>'@@ OO  }}N"&"4"E"E!(*#6#677 7rEc`|j|dS)a Enable X-Ray User Agent: start or restart service if it is accidentally already running For systemd systems -- start socket unit only For SysV -- start the entire service :return: JSON encoded result of enable action zenable-user-agentr?)r@rLrrSs rCenable_user_agentzBaseManager.enable_user_agents. %%'''}}$7}888rEc`|j|dS)a7 Disable X-Ray User Agent: stop the entire service or do nothing if it is accidentally not running For systemd systems -- also check if socket unit is running and stop it too :return: JSON encoded result of disable action zdisable-user-agentr?)r@rrrSs rCdisable_user_agentzBaseManager.disable_user_agents. &&(((}}$8}999rEc||j}|d|tS)zn Get status of X-Ray User Agent service :return: JSON encoded result of status action zuser-agent-status)rruser_nginx_cache)r@rrr%)rB agent_statuss rCuser_agent_statuszBaseManager.user_agent_statussD -4466 }}$7 .>.@.@BB BrEc*t}|ddur|nS|ddur|n4|ddur*|}||S|S)] Advanced metrics tool :return: JSON encoded result of status action rLTrr)r)r"rLrrr)rBargsamrs rCadvanced_metricszBaseManager.advanced_metricss    >T ! ! IIKKKK )_ $ $ JJLLLL (^t # #YY[[F===// /}}rEcbtt|Srn)r0r,rrBros rCenable_serverwide_modez"BaseManager.enable_serverwide_mode s* &'''}}rEcbtt|Srs)r-r/rrts rCdisable_serverwide_modez#BaseManager.disable_serverwide_modes* %'''}}rE)F)rFr)C__name__ __module__ __qualname____doc__rIrRrboolrDrrJrPrrTrWrr]rfrlr`rwrurrv staticmethodrrProcessrrqrrrorrtrrrrrr$rrr rrr0r2r=rCrrrIrOrQrSrUr[r]r`rdrfrhrlrqrurwrrErCr3r3Ls( /N0////////////H H H# HT H H H HG#GGGGD888888LZLCLLLL s*:#" Az Ad A A A A 1J 14 1 1 1 1 [ [ [ c d     c hv~&>   \ LcLdLLLL1s1z1111C3C:CCCCV:V$VVVVHHHHHH?J?4????(##sCx###\#*C*D****8 9c 9 9 9\ 9''''!&"'<C<C<CC<CC<C<C.1<C<C <C-7<C<C<C<C|>>>>>>02 , , , ,), ,6@ , , , ,/CC/CJ/C/C/C/CbAAA2#C#C#C#C#C#CJCC CCCC  d t   \  : : : : $    \ CcCjCCCC BS B B B B B BCcCjCCCCACAJAAAA@3@:@@@@0000FFFF PS PZ P P P P 7C 7S 7Z 7 7 7 7 9 9 9 9 : : : :BBBB rEr3)Qr{rr<r}r{rrrsystypingrrrrrrrclcommon.constr clcommon.cpapir r !xray.internal.clwpos_safe_importsr r clcommon.utilsrclcommon.clpwdrsecureiorxrayrradviser.clwpos_getr apiclientrcontinuous.managerrinternal.exceptionsrrrrrinternal.fpm_utilsrinternal.local_countersrinternal.nginx_utilsrinternal.typesrrr internal.user_managerr!internal.advanced_metricsr"internal.user_plugin_utilsr#r$r%internal.utilsr&r'r(r)r*r+reconfiguration.global_inir,r-r.r/r0 TYPE_CHECKINGapiclient.api_clientr1r3rrErCrsl   ((((((((,,,,,,,,,, """"""XWWWWWWW//////******""""""------""""""222222 5444448888881111118888888888333333777777  1000000S S S S S S S S S S rE