????

Your IP : 216.73.217.84


Current Path : /opt/cloudlinux/venv/lib64/python3.11/site-packages/wmt/common/__pycache__/
Upload File :
Current File : //opt/cloudlinux/venv/lib64/python3.11/site-packages/wmt/common/__pycache__/config.cpython-311.pyc

�

Zى3s��>���ddlZddlZddlZddlZddlZddlmZmZmZddl	m
Z
mZddlm
Z
ddlmZddlmZddlmZddlmZeGd	�d
����Zejd��ZdZGd
�d��ZdS)�N)�	dataclass�asdict�field)�CONFIG_PATH�PING_CONNECTIONS)�WmtConfigException)�parse)�get_admin_email)�gethostname)�Listc��eZdZUdZdZeed<dZeed<eZ	eed<dZ
eed<d	Zeed
<e
e���Zeeed<d
Zeed<dZeed<dS)�CfgzC
    Default values, in case config has not been specified yet
    ��
ping_interval�
�ping_timeout�ping_connectionsN�report_email��
report_top)�default_factory�ignore_listT�summary_notification_enabledF�alert_notifications_enabled)�__name__�
__module__�__qualname__�__doc__r�int�__annotations__rrrr�strrr�listrrr�boolr����/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/config.pyrrs�����������M�3�����L�#����,��c�,�,�,��L�#�����J�����"�U�4�8�8�8�K��c��8�8�8�)-� �$�-�-�-�(-���-�-�-�-�-r%rz2\A[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+\Z)rrrrc��eZdZd�Zd�Zd�Zdefd�Zed���Z	ed���Z
defd	�Zed
���Z
d�Zdefd�Zdefd
�ZdS)�
ConfigManagerc�4�tj���|_dt	����|_t
��|_|���|_	|�
��|_|���|_
dS)Nzweb-monitoring-tool@)r�__dataclass_fields__�keys�allowed_paramsr�
from_emailr
�default_report_email�	_init_cfg�cfg�generate_ignored_domains�_ignored_domains�_get_target_email�target_email��selfs r&�__init__zConfigManager.__init__(s{��!�6�;�;�=�=���@����@�@���$3�$5�$5��!��>�>�#�#���!%� =� =� ?� ?��� �2�2�4�4����r%c�@�|jjr|jjn|jS)a
        This function checks to see which email address to use for TO: field of smtp.
        If report_email has been defined by user then report_email will be used.
        By default (in case not defined by user) default_report_email will be used
        )r0rr.r5s r&r3zConfigManager._get_target_email3s!��)-��(=�\�t�x�$�$�4�C\�\r%c�*�t|j��S�N)rr0r5s r&�to_dictzConfigManager.to_dict;s���d�h���r%�returnc	�P�|���st��S|���}t��}|���D]L\}}||jvr-tjd|�dt|j�������;t|||���M|S)Nzunsupported parameter "z:", please ensure config contains only allowed parameters: )	�
is_presentr�read�itemsr,�logging�warningr"�setattr)r6�datar0�key�values     r&r/zConfigManager._init_cfg>s������ � �	��5�5�L��y�y�{�{���e�e���*�*�,�,�	)�	)�J�C���$�-�-�-���M�c�M�M�15�d�6I�1J�1J�M�M�����
��S�%�(�(�(�(��
r%c�J�tj�t��Sr:)�os�path�isfilerr$r%r&r>zConfigManager.is_presentQs���w�~�~�k�*�*�*r%c�r�|���D]�\}}|tvr>t|t��rt|t��rtd|�d�����L|dkrO|�Mt|t��std���t�|��std�����dS)N�"z" must be an integerrz"report_email" must be a stringz+"report_email" is not a valid email address)	r@�_NUMERIC_FIELDS�
isinstancerr#rr!�	_EMAIL_RE�match)rDrErFs   r&�_validate_valueszConfigManager._validate_valuesUs����*�*�,�,�	K�	K�J�C���o�%�%�!�%��-�-�L��E�4�1H�1H�L�,�-J��-J�-J�-J�K�K�K�L���&�&��$�%�e�S�1�1�?�0�=�?�?�?�$�?�?�5�1�1�K�0�I�K�K�K��	K�	Kr%�new_jsonc�0�	tj|��}n3#tj$r!}tt	|�����d}~wwxYwt|������|j��s$tdt|j�������|�
|��i|����|�}|�d��rFt|�d��t��r|d�d��|d<tt d��5}tj||d���ddd��n#1swxYwYt%di|��|_|���S)	z�
        Changes configuration of wmt

        Returns:
            self.to_dict()

        Raises:
            WmtConfigException

        Example:
            wmt-api-solo --config-change {'key': 'val'}
        Nz@some of passed params are unsupported, only allowed parameters: r�,�wr)�indentr$)�json�loads�JSONDecodeErrorrr!�setr+�issubsetr,r"rQr;�getrN�split�openr�dumprr0)r6rR�
new_config�e�config�fs      r&�modifyzConfigManager.modifyds���	-���H�-�-�J�J���#�	-�	-�	-�$�S��V�V�,�,�,�����	-�����:�?�?�$�$�%�%�.�.�t�/B�C�C�	^�$�&]�AE�d�FY�AZ�AZ�&]�&]�^�^�
^�	
���j�)�)�)�
��l�l�n�n�
��
��
�:�:�m�$�$�	E��F�J�J�}�4M�4M�s�)S�)S�	E�$*�=�$9�$?�$?��$D�$D�F�=�!��+�s�
#�
#�	+�q��I�f�a��*�*�*�*�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+����	+�	+�	+�	+��=�=��=�=����|�|�~�~�s&��A�A�A�E(�(E,�/E,c���	tt��5}tj|��}ddd��n#1swxYwYn3#tj$r!}tt
|�����d}~wwxYw|Sr:)r^rrW�loadrYrr!)rcrDras   r&r?zConfigManager.read�s���	-��k�"�"�
$�a��y��|�|��
$�
$�
$�
$�
$�
$�
$�
$�
$�
$�
$����
$�
$�
$�
$����#�	-�	-�	-�$�S��V�V�,�,�,�����	-�����s2�A�7�A�;�A�;�A�A3�A.�.A3c�8�|���|_dSr:)r/r0r5s r&�reloadzConfigManager.reload�s���>�>�#�#����r%c��|jD]@}d|vr3|�d��sd|��}tj||��rdS�9||vrdS�AdS)z�
        Check if domain is in ignored list.
        If record contain *" then it will be processed as wildcard. Else as substring
        �*TF)r2�
startswith�fnmatch)r6�domain�patterns   r&�is_domain_ignoredzConfigManager.is_domain_ignored�s~��
�,�		 �		 �G��g�~�~��)�)�#�.�.�,�+�'�m�m�G��?�6�7�3�3� ��4�4� ��f�$�$��4�4�%��ur%c�j�t��}|jjD]}|�|���|S)z�
        Generates ignored domains patterns from self.ignore_list and
        returns it for using as cache in self.ignored_domains set().
        )rZr0r�add)r6�patternsrns   r&r1z&ConfigManager.generate_ignored_domains�s;��
�5�5���x�+�	"�	"�G��L�L��!�!�!�!��r%N)rrrr7r3r;rr/�staticmethodr>rQr!rdr?rhr#rorZr1r$r%r&r(r('s������	5�	5�	5�]�]�]� � � ��3�����&�+�+��\�+��K�K��\�K�$�s�$�$�$�$�L����\��$�$�$��4�����"�#������r%r()rArHrlrW�re�dataclassesrrr�wmt.common.constrr�wmt.common.exceptionsr�wmt.common.url_parserr	�clcommon.cpapir
�socketr�typingrr�compilerOrMr(r$r%r&�<module>r}sK������	�	�	�	���������	�	�	�	�0�0�0�0�0�0�0�0�0�0�:�:�:�:�:�:�:�:�4�4�4�4�4�4�'�'�'�'�'�'�*�*�*�*�*�*��������������.�.�.�.�.�.�.���.�"
�B�J�L�M�M�	�U��H�H�H�H�H�H�H�H�H�Hr%