$KrddlZddlZddlZddlZddlmZddlmZmZddlm Z ddl m Z ddl m Z ddlmZmZddlmZmZmZdd lmZdd lmZdd lmZdd lmZmZgd gdddgdZGddZeGddZ eGddZ!eGddZ"eGddZ#dS)N) dataclass) timedeltadatetime)Header) MIMEMultipart)MIMEText) PrettyTableALL)WMT_TEMPLATES_DIR&LICENSE_EXPIRED_FAREWELL_LETTER_MARKER JWT_TOKEN)WmtEmailException)clemail) MailHelper) get_hostname get_ip_addr)All SuccessfulFailedUndoneAverage time (ms))URLErrorsz Error codesrr)summary_report error_reportduration_reportceZdZdZdZdZdS)SupportedNotificationTypesalertreportfarewellN)__name__ __module__ __qualname__ALERTREPORTFAREWELL/builddir/build/BUILDROOT/cl-web-monitoring-tool-3.2.3-1.el9.cloudlinux.x86_64/opt/cloudlinux/venv/lib/python3.11/site-packages/wmt/common/notification.pyrr%s E FHHHr)rc.eZdZUeed<eed<eed<dS)Emailsubject text_sample html_sampleNr"r#r$str__annotations__r(r)r*r,r,+s3 LLLr)r,c$eZdZUeed<eed<dS) EmailReport text_option html_optionNr0r(r)r*r4r42s*r)r4ceZdZUeed<eed<dZeed<dZeed<dZeed<dZ eed<d Z eed <e d Z e d Z e d ZdZdZdS) EmailTemplate target_mail from_mailNrrr Administrator target_nameen_USlocalec"tpdSNUNKNOWN)rr(r)r* _get_hostnamezEmailTemplate._get_hostnameDs~~**r)c,|sdSt|pdSr@)r)hostnames r*rzEmailTemplate.get_ip_addrHs" 98$$1 1r)ctjtd}t |d5}t j|d}dddn #1swxYwY|S)Nzlogo.pngrbutf-8) ospathjoinr openbase64 b64encodereaddecode) logo_pathlogologo_img_encodeds r* _get_logozEmailTemplate._get_logoNsGLL!2J?? )T " " Md%/ <<CCGLL  M M M M M M M M M M M M M M Ms:A<<BBcZ|}|j||||d}|tjtjfvr!|d|jji|tjkr,||j j|j jd|S)zI Convert to txt template keys see wmt_notify.txt )TONAMEDATEHOSTNAMEIP_ADDR ERROR_REPORT)SUMMARY_REPORTDURATION_REPORT) rBr<rrr&r%updaterr5rrselfdate notify_typerDtemplates r*to_text_templatezEmailTemplate.to_text_templateUs %%''& ''11    5<>X>^_ _ _ OO 1 =    4; ; ; OO"&"5"A#'#7#C   r)c|}|j|||||d}|tjtjfvr!|d|jj i|tjkr,||j j |j j d|S)zK Convert to html template keys see wmt_notify.html )rUrVLOGOrWrXERROR_HTML_REPORT)SUMMARY_HTML_REPORTDURATION_HTML_REPORT) rBr<rSrrr&r%r\rr6rrr]s r*to_html_templatezEmailTemplate.to_html_templatels %%''&NN$$ ''11    5<>X>^_ _ _ OO#T%6%B    4; ; ; OO'+':'F(,(<(H   r))r"r#r$r1r2rr4rrr<r> staticmethodrBrrSrbrhr(r)r*r8r88sNNN"&NK&&& $L+$$$#'O['''&K&&&FC++\+22\2   \ .r)r8ceZdZUeed<eed<eed<eed<edefdZedZ dZ d Z ed Z de fd Zd Zdefd ZdefdZdefdZdS)Notifier target_email from_emailr notification_typereturnc|jtjkr7tjtjt dz dS|jtjkr&tjtjdS|jtjkrtj tsdStj tj tz }t|dz}|dkrt!|dSt|d z}t!|d St#d |j) N)daysz%Y-%m-%dz%Y-%m-%d %H:%M:%SiQrz day(s) agoiz hour(s) agounexpected notifier type: )rnrr&rstrftimenowrr%r'rHrIexistsr timegetmtimeintr1NotImplementedError)r^secondsrrhourss r*periodzNotifier.periods&  !%?%F F F$X\^^iQ6G6G6G%GTT T  #'A'G G G$X\^^5HII I  #'A'J J J7>>),, rikkBG$4$4Y$?$??Gw9-..Daxxd))0000GtO,,e**2222%&[4CY&[&[\\ \r)cTttddS)Nw)rKr closer(r)r*create_farewell_letter_markerz&Notifier.create_farewell_letter_markers% 3S99??AAAAAr)ct}|}||}||j|jg||jtjkr| dSdSN) r_generate_template_data_generate_final_messagesendmailr:r9rnrr'r)r^ mail_managerramessages r*notifyzNotifier.notifys!|| //11..x88h083G2H'RRR  !%?%H H H  . . 0 0 0 0 0 I Hr)cj|jtjkrJtjt dtjt dfS|jtjkrJtjt dtjt dfS|jtjkrJtjt dtjt dfStd|j)Nzwmt_notify.txtzwmt_notify.htmlz wmt_alert.txtzwmt_alert.htmlzwmt_farewell_solo.txtzwmt_farewell_solo.htmlrt) rnrr&rHrIrJr r%r'r{)r^s r*_get_templateszNotifier._get_templatess  !%?%F F F7<< 13CDD7<< 13DEEF F  #'A'G G G7<< 1?CC7<< 13CDDE E  #'A'J J J7<< 13JKK7<< 13KLLM M&&[4CY&[&[\\ \r)ct|Sr)HEADERS_REPORT_MAPPING)sections r*_get_table_headerszNotifier._get_table_headerss %g..r)c Zd|j}|d|}|d|}|r|n|}|r#|ddttn|}t |t j|ddS) NzNo domains for texthtmlT)formatborderhrulesvrulesztext-align: centerztext-align: left)r5r6) r~ _get_table get_stringget_html_stringr r4runescapereplace)r^rno_domains_message text_table html_tabletext_final_strhtml_final_strs r*_generate_tableszNotifier._generate_tablessV..000DVDNf334;?;>;>4@@@Tf & n&<&<=QSe&f&fgg    r)c|j|}|sdSt||}d|_t |t s|g}|D]*}|||+|S)Nl)r r ralign isinstancelistadd_row to_template)r^ alternativer table_datatablerows r*rzNotifier._get_tables[)  4D33G<<== *d++ &$J 8 8C MM#//+66 7 7 7 7 r)cp|j|jd}|jtjtjfvr*|d|di|jtjkr>||d|ddtdi|S)N)r9r:rrr)rrr() rlrmrnrr&r%r\rr8)r^ras r*rz Notifier._generate_template_datas,    !&@&GIcIi%j j j OO 5 5n E E     !%?%F F F OO"&"7"78H"I"I#'#8#89J#K#K   ((x(((r)cJ|\}}tj|rtj|st d|d|d |j}d|jd|dt}|jtj krd|j d|}|jtj kr d |j}tj ||||j| \}}tj ||||j| \}}n3#tjjj$r} t d | d} ~ wwxYwt)||| S) Nz unable to find email templates: z, z. Try to reinstall packagezWeb Monitoring Tool z for z from server [z] z1[EXPIRED CloudLinux LICENSE] Web Monitoring Tool ) templ_datar-zcannot generate email, reason: )r-r.r/)rrHrIrwrr~rnrrr%upperr'rClEmailgenerate_mail_jinja2rbrhjinja2 exceptions TemplateErrorr,) r^r text_template html_templater~r- text_body_ html_bodyes r*_generate_emailzNotifier._generate_emails'+':':'<'<$ }w~~m,, @BGNN=4Q4Q @#%?}%?%?Xe%?%?%?@@ @ K[FoT-Coo&oo_k_m_mooG%)C)IIIId4::<<IIII%)C)LLLfdNdff!(!E!E&*A*A&$J`*a*a"F"!"! GY#???&*A*A&$J`*a*a@!!LAyy~(6 K K K#$Ia$I$IJJ J KW)SSSSs-C2E F9F  F template_datac||}|jddd}|jddd}t d}|t|dd|t|ddt|j d|d<|j |d<|j |d<|S) NrGxmlcharrefreplacerplainrSubjectFromTo) rr.encoderOr/rattachrrr-r:r9)r^remailrrrs r*rz Notifier._generate_final_messages$$]33%,,W6IJJQQRYZZ %,,W6IJJQQRYZZ  ..x 7G<<===x 67;;<<<#EM7;;BBDD '1%1 r)N)r"r#r$r1r2dictpropertyr~rirrrrr4rrr8rrrr(r)r*rkrksDOOO LLL ]]]]X]$BB\B111 ] ] ]//\/  ;        ))))) TmTTTT4 ]      r)rk)$rrHrLrx dataclassesrrr email.headerremail.mime.multipartremail.mime.textr prettytabler r wmt.common.constr r r wmt.common.exceptionsrclcommonrclcommon.mail_helperrclcommon.lib.networkrrrrr,r4r8rkr(r)r*rs\ !!!!!!((((((((......$$$$$$((((((((aaaaaaaaaa333333++++++::::::::,,, $$$+-          IIIIIII IX FFFFFFF FFFr)