JFIF$        dd7 

Viewing File: /usr/share/web-monitoring-tool/__pycache__/reporter.cpython-311.opt-1.pyc

�

�m�X;���0�ddlZddlZddlmZmZmZddlmZddlmZddl	m
Z
ddlmZm
Z
mZmZddlmZddlmZdd	lmZdd
lmZddlmZmZddlmZmZed
��ZdZ ej!�"e dd��Z#Gd�dej$j%j&��Z'de(de)fd�Z*d�Z+d�Z,dee)e
ffd�Z-deee)e
ffd�Z.deee)e
ffd�Z/d'd�Z0d �Z1d!�Z2d"�Z3d#edee(e)e)ffd$�Z4d%�Z5e6d&kre5��dSdS)(�N)�date�	timedelta�datetime)�Header)�
MIMEMultipart)�MIMEText)�Dict�Any�List�Tuple)�clemail)�get_admin_email)�
MailHelper)�run_command)�PrettyTable�ALL)�init_wmt_sentry_client�setup_logger�email_reporterz/usr/share/web-monitoring-tool/�wmtbinzwmt-apic��eZdZdS)�WMTTemplateErrorN)�__name__�
__module__�__qualname__���x/builddir/build/BUILDROOT/cl-web-monitoring-tool-3.1.8-1.el9.cloudlinux.x86_64/usr/share/web-monitoring-tool/reporter.pyrr s�������Drr�microseconds�returnc�:�t|dz��}|dd�S)Ng��.A�)�str)r�secss  r�
to_secondsr%$s!���|�i�'�(�(�D�����8�Orc�x�t��}|�d��d���S)N�,r)�system_admin_email�split�strip)�admin_emails r�_get_from_emailr,)s4��$�&�&�K����S�!�!�!�$�*�*�,�,�,rc��ttdg��}tj|��}d|vs|ddkrt	��S|dS)Nz--email-get�email�)r�WMT_API�json�loadsr()�responses r�
_get_to_emailr41sT���G�]�3�4�4�H��z�(�#�#�H��h���(�7�"3�r�"9�"9�!�#�#�#��G��r�summary_datac�\�gd�}t|d��|d<t||d��S)zGenerate summary report table))�All�	count_all)�
Successful�count_successful)�Failed�count_failed)�Undone�count_undone�zAverage time (sec)�average_timer@T)r%�_generate_table_data)r5�
table_columnss  r�_generate_summary_tablerC9s?��Y�Y�Y�M�#-�l�>�.J�#K�#K�L�� ��
�|�T�B�B�Br�
error_reportsc��gd�}t|��D])\}}|d�d��||d<�*t||��S)zGenerate error report table)��URL�url)�Errors�count_errors)zError codes�error_codes�coder'rK)�	enumerater)rA)rDrB�i�reports    r�_generate_error_tablerPAs^��`�`�`�M��}�-�-�D�D�	��6�*0��.�*>�*>�s�*C�*C�
�a���'�'��
�}�=�=�=r�duration_reportsc��ddg}t|��D]#\}}t|d��||d<�$t||��S)zGenerate duration report tablerFr?r@)rMr%rA)rQrBrNrOs    r�_generate_duration_tablerSIs\��#�%K�L�M��/�0�0�Q�Q�	��6�.8���9O�.P�.P����N�+�+��
�/?�@�@�@rFc�2�������fd�}d��D��}t|��}d|_d|_tt	|j|������|���}|�ddtt���}||fS)Nc���t��}�rXg}�D]=\}}t��|d����}|�|���>|�|��n��D]�}g}�D]}\}}|�|d��}t	|t��r)d�t
t|����}nt|��}|�|���~|�|����|S)Nz---z, )�listr#�get�append�
isinstance�join�map)	�table_b�
table_line�_�
user_data_key�cell�data�one_rowrB�
table_datas	      ���r�gen_table_bodyz,_generate_table_data.<locals>.gen_table_bodyRs����&�&���	+��J�$1�
(�
(� ��=��:�>�>�-��?�?�@�@���!�!�$�'�'�'�'��N�N�:�&�&�&�&�"�	
+�	
+���
�(5�,�,�$�A�}��8�8�M�5�9�9�D�!�$��-�-�)�#�y�y��S�$���8�8���"�4�y�y���%�%�d�+�+�+�+����z�*�*�*�*��rc��g|]\}}|��Srr)�.0�headerr^s   r�
<listcomp>z(_generate_table_data.<locals>.<listcomp>gs��5�5�5�)�&�!�v�5�5�5r�=T)�format�border�hrules�vrules)	r�horizontal_char�
junction_charrVr[�add_row�
get_string�get_html_stringr)rBrcrbrd�columns�table�s_table�s_html_tables```     rrArAQs�������������*6�5�}�5�5�5�G��� � �E��E���E����U�]�N�N�,�,�	-�	-�.�.�.���� � �G��(�(��04�03�03�)�5�5�L��L� � rc
�L�t|d��\}}t|d��\}}t|d��\}}||||||t��dt	��tj��td���z
�d��dd	�}|S)
N�summary_report�error_report�duration_report�en_US�)�daysz%b %d %Y�
Administrator)�SUMMARY_REPORT�SUMMARY_HTML_REPORT�ERROR_REPORT�ERROR_HTML_REPORT�DURATION_REPORT�DURATION_HTML_REPORT�FROMMAIL�LOCALE�TOMAIL�DATE�TONAME)	rCrPrSr,r4r�todayr�strftime)rO�summary_text_table�summary_html_table�error_text_table�error_html_table�duration_text_table�duration_html_table�
template_datas        r�_generate_template_datar�ts���-D�V�L\�E]�-^�-^�*��*�)>�v�n�?U�)V�)V�&��&�/G��O`�Ha�/b�/b�,��,�,�1�(�-�.� 3�#�%�%���/�/�����	�q� 1� 1� 1�1�;�;�J�G�G�!�#�#�M��rc	��tj�tdd��}tj�t��rtj�|��st
�d|��tj�tdd��}tj�|��st
�d|��d}d}	tj��td��z
}tj
|d��}tj�
||d|���	��\}}|r(tj�
||d|���	��\}}n]#tjjjt"f$r:}t%d
�tt)|�������d}~wwxYw|||fS)N�	templateszwmt_notify.txtz4Unable to find templates: file '%s' does not exist. zwmt_notify.htmlz4Unable to find optional HTML message template '%s'. r|z%Y-%m-%dz
WMT report - )�
templ_data�subjectz:Can not generate message; no templates in "{}". Jinja2: {})�os�pathrZ�WMT_DIR�exists�logger�infor�nowrr�r
�ClEmail�generate_mail_jinja2�jinja2�
exceptions�
TemplateError�IOErrorrrjr#)	r��text_templ_path�html_templ_path�	html_body�	yesterdayr��	text_bodyr^�es	         r�generate_msg_bodyr��s����g�l�l�7�K�9I�J�J�O�
�7�>�>�'�"�"��"�'�.�.��*I�*I�����B��	�	�	��g�l�l�7�K�9J�K�K�O�
�7�>�>�/�*�*�����B��	�	�	����I�"��L�N�N�Y�q�\�\�1�	��%�i��<�<�	�$�_�A�A��
�<W�I�<W�<W�B�Y�Y�����	]�"�?�?�?��J�@[�PY�@[�@[�@�]�]�L�A�y���
�N�%�3�W�=�"�"�"��
�����Q���!�!�"�"�	"�����"����
�I�y�(�(s�*B
E5�5 G�5G
�
Gc��t|��\}}}|�dd���d��}|�dd���d��}td��}|�t|dd����|�t|dd����t
|d�����|d<|�d��|d<|d	|d
<|S)Nzutf-8�xmlcharrefreplace�alternative�plain�html�Subjectr��Fromr��To)r��encode�decoder�attachrrrW)r�r�r�r��msgs     r�generate_msgr��s���$5�j�$A�$A�!�G�Y�	��	���,�	-�	-�	�������	���,�	-�	-�	�������
�
&�
&�C��J�J�x�	�7�G�4�4�5�5�5��J�J�x�	�6�7�3�3�4�4�4��G�W�-�-�4�4�6�6�C�	�N��.�.��,�,�C��K��8�$�C��I��Jr�cmd_listc��t|d���\}}}|dkr8d�|��}d|��}t�|d|i���|||fS)z�
    use logger to log error and additional info if command executed unsuccessfully,
    otherwise works as run_command(cmd_list)
    T)�return_full_outputr� zError during command: �output)�extra)rrZr��error)r��ret_code�out�err�cmdr�s      r�patched_run_commandr��sk��
%�X�$�G�G�G��H�c�3��1�}�}��h�h�x� � ��,�s�,�,�����S��3���0�0�0��S�#��rc��t��	ttdg��ttdg��\}}}|dkrt�d��dSt��}|�dd���d��}tj	|��}d|vrtd���t|d��}t|��}d	�|d
�
d��D��}|�|d||��dS#t$r%}t�|��Yd}~dSd}~wt$r%}t�|��Yd}~dSd}~wwxYw)
Nz--report-generatez--report-getrz6Can't create email: report is bad or corrupted
Exitingzus-asciir�rOz(Key "report" is not found in JSON reportc�6�g|]}|�����Sr)r*)rfrNs  rrhzmain.<locals>.<listcomp>�s ��<�<�<�!�A�G�G�I�I�<�<�<rr�r'r�)rr�r0r�r�rr�r�r1r2�	Exceptionr�r�r)�sendmailr�warning�	exception)	r�r3r^�
mailhelper�	_responser�r��to_addrsr�s	         r�mainr��s���������W�&9�:�;�;�;� 3�W�n�4M� N� N���(�A��q�=�=��K�K�R�S�S�S��F��\�\�
��O�O�J�0C�D�D�K�K�J�W�W�	��:�i�(�(���8�#�#��F�G�G�G�/���0B�C�C�
��=�)�)��<�<�s�4�y���s�';�';�<�<�<�����C��K��3�7�7�7�7�7���������q��������������������������������������s+�AD(�"CD(�(
F�2E�
F�E?�?F�__main__)F)7r1r�rrr�email.headerr�email.mime.multipartr�email.mime.textr�typingr	r
rr�clcommonr
�clcommon.cpapirr(�clcommon.mail_helperr�clcommon.utilsr�prettytablerr�sentryrrr�r�r�rZr0r�r�r�r�intr#r%r,r4rCrPrSrAr�r�r�r�r�rrrr�<module>r�s�������	�	�	�	�.�.�.�.�.�.�.�.�.�.�������.�.�.�.�.�.�$�$�$�$�$�$�)�)�)�)�)�)�)�)�)�)�)�)�������@�@�@�@�@�@�+�+�+�+�+�+�&�&�&�&�&�&�(�(�(�(�(�(�(�(�7�7�7�7�7�7�7�7�	��&�	'�	'��
+��
�'�,�,�w��)�
4�
4��	�	�	�	�	�w�~�0�>�	�	�	��S��S�����
-�-�-����C�$�s�C�x�.�C�C�C�C�>��d�3��8�n�)=�>�>�>�>�A�t�D��c��N�/C�A�A�A�A� !� !� !� !�F���&)�)�)�B���0
�$�
�5��c�3��+?�
�
�
�
����2�z����D�F�F�F�F�F��r
Back to Directory  nL+D550H?Mx ,D"v]qv;6*Zqn)ZP0!1 A "#a$2Qr D8 a Ri[f\mIykIw0cuFcRı?lO7к_f˓[C$殷WF<_W ԣsKcëIzyQy/_LKℂ;C",pFA:/]=H  ~,ls/9ć:[=/#f;)x{ٛEQ )~ =𘙲r*2~ a _V=' kumFD}KYYC)({ *g&f`툪ry`=^cJ.I](*`wq1dđ#̩͑0;H]u搂@:~וKL Nsh}OIR*8:2 !lDJVo(3=M(zȰ+i*NAr6KnSl)!JJӁ* %݉?|D}d5:eP0R;{$X'xF@.ÊB {,WJuQɲRI;9QE琯62fT.DUJ;*cP A\ILNj!J۱+O\͔]ޒS߼Jȧc%ANolՎprULZԛerE2=XDXgVQeӓk yP7U*omQIs,K`)6\G3t?pgjrmۛجwluGtfh9uyP0D;Uڽ"OXlif$)&|ML0Zrm1[HXPlPR0'G=i2N+0e2]]9VTPO׮7h(F*癈'=QVZDF,d߬~TX G[`le69CR(!S2!P <0x<!1AQ "Raq02Br#SCTb ?Ζ"]mH5WR7k.ۛ!}Q~+yԏz|@T20S~Kek *zFf^2X*(@8r?CIuI|֓>^ExLgNUY+{.RѪ τV׸YTD I62'8Y27'\TP.6d&˦@Vqi|8-OΕ]ʔ U=TL8=;6c| !qfF3aů&~$l}'NWUs$Uk^SV:U# 6w++s&r+nڐ{@29 gL u"TÙM=6(^"7r}=6YݾlCuhquympǦ GjhsǜNlɻ}o7#S6aw4!OSrD57%|?x>L |/nD6?/8w#[)L7+6〼T ATg!%5MmZ/c-{1_Je"|^$'O&ޱմTrb$w)R$& N1EtdU3Uȉ1pM"N*(DNyd96.(jQ)X 5cQɎMyW?Q*!R>6=7)Xj5`J]e8%t!+'!1Q5 !1 AQaqё#2"0BRb?Gt^## .llQT $v,,m㵜5ubV =sY+@d{N! dnO<.-B;_wJt6;QJd.Qc%p{ 1,sNDdFHI0ГoXшe黅XۢF:)[FGXƹ/w_cMeD,ʡcc.WDtA$j@:) -# u c1<@ۗ9F)KJ-hpP]_x[qBlbpʖw q"LFGdƶ*s+ډ_Zc"?%t[IP 6J]#=ɺVvvCGsGh1 >)6|ey?Lӣm,4GWUi`]uJVoVDG< SB6ϏQ@ TiUlyOU0kfV~~}SZ@*WUUi##; s/[=!7}"WN]'(L! ~y5g9T̅JkbM' +s:S +B)v@Mj e Cf jE 0Y\QnzG1д~Wo{T9?`Rmyhsy3!HAD]mc1~2LSu7xT;j$`}4->L#vzŏILS ֭T{rjGKC;bpU=-`BsK.SFw4Mq]ZdHS0)tLg