OwlCyberSecurity - MANAGER
Edit File: cloudlinux_statsnotifier.cpython-311.pyc
� ����Ѝig^�����������������������*����d�dl�Z�d�dlZd�dlZd�dlZd�dlZd�dlZd�dlZd�dlmZm Z �d�dl mZ�d�dlm Z �d�dlmZ�d�dlmZ�d�dlmZ�d�dlmZ�d�d lmZ�d ej��������dej��������deeef���������fd �Zdede fd�Zdedefd�Zd��Z dededdfd�Z!dede fd�Z"d��Z#dS�)�����N)�Tuple�Dict)�run_command)�config)�USER_NOTIFICATIONS_OFF_MARKER)� setup_logging)�user_should_be_notified)�get_stats_notifier_parameters)�dateutil�args�log�returnc����������������������|�j���������sdS�t����������j����������������������}|dk����r |�j��������sdS� �|�j���������t����������|�j��������|�j��������������������}nt ����������|�j��������������������}nR#�t����������$�rE}d|���t����������j ����������������������d�}|� ��������������������t����������|�������������������������Y�d}~nd}~ww�xY�wt����������j��������|������������}|dfS�)zA Generic method to analyze options and call needed funcs )z Only JSON mode supported for now���r���)z'Please, specify user id via --id optionr���Nzerror: ��result� timestamp) �json�os�getuid�id� notifyUser�manage_user_notifications�get_notifications_settings� Exceptionr����gm_datetime_to_unixtimestamp�error�str�dumps)r���r ����current_userr����e�json_strs��� ��/builddir/build/BUILDROOT/lve-stats-4.2.11-1.el8.x86_64/opt/cloudlinux/venv/lib/python3.11/site-packages/lvestats/lib/cloudlinux_statsnotifier.py�executer$������s���������9��6�5�5��9�;�;�L��q������<�<� ��?�&�.�t�w���H�H�F�F�/���8�8�F����������#��m�m�!�>�@�@� �� ��� � � �#�a�&�&�������������������z�&�!�!�H��Q�;�s����6A$��$ B3�.;B.�.B3�user_idc������������������������dt����������j����������������������d�}t����������j����������������������}|dk����s|n|�}t ����������j��������|������������j��������}t����������|������������|d<���t����������|������������|d<���|S�)z' Returns notification settings �successr���r���r����notificationsAllowed) r���r���r���r����pwd�getpwuid�pw_namer ����is_notifications_allowed)r%���r���r ����target_user�usernames��� r#���r���r���4���st�������"��0U�0W�0W� X� X�F��9�;�;�L�&2�a�&7�&7�,�,�W�K��|�K�(�(�0�H�2�8�<�<�F�<��%=�h�%G�%G�F�!�"��M������userc������������������Z����t����������j����������������������dk����rt����������|�������������S�t����������j��������ddgddd�������������}|j��������dk����rt ����������d|j����������d|j������������������������t����������j ��������|j�������������������������������������������������������}|���������������������d������������du�S�) z; Checks if notifications allowed by admin/reseller r���z-/usr/share/lve-stats/lve_stats_configs_reader�notification_allowedTF)�text�capture_output�checkz9Unable to get "notifications_enabled" parameter, reason: z ) r���r���r ���� subprocess�run� returncode� ValueError�stdout�stderrr����loads�strip�get)r0���r���s��� r#���r,���r,���A���s�������� �y�{�{�a���,�T�2�2�2���!P�!7�!9�%)�$�e�M��M��M������!�!���0�Y_�Yf��0��0� &� �0��0��1��1�� 1���F�M�/�/�1�1�2�2���z�z�0�1�1�T�9�9r/���c�������������������D�����t�����������j�����������������������������d�������������d�S�)Nz/var/.cagefs)r����path�isdir��r/���r#���� in_cagefsrC���R���s�������G�M�M�.�!�!�!�!�!r/����should_be_enabledc����������������������d}t����������j��������d������������}t����������j��������|�������������}t����������j�����������������������������|j��������d������������}t����������j�����������������������������|t����������������������}|sqt ����������j ����������������������dk����r3t����������||j��������dd|g�������������t����������||j��������d|g�������������d S�t����������|dd|g�������������t����������|d|g�������������d S�t����������j�����������������������������|������������rGt ����������j ����������������������dk����rt����������||j��������dd |g�������������d S�t����������|dd |g�������������d S�d S�)z` Turns on/off notifications per user by creating/removing notifications marker file z/sbin/cagefs_enter_user�cagefs_enterz .lvestatsr����mkdirz-p�touch�rmz-fN) �shutil�whichr)���r*���r���r@����join�pw_dirr���r���r���r+����exists)r%���rD����cagefs_enter_userrF���� user_info�lvestats_dir�marker_paths��� r#����handle_users_notificationsrS���V���sT����� �2���<��/�/�L���W�%�%�I��7�<�<� � 0�+�>�>�L��'�,�,�|�-J�K�K�K���E� �9�;�;�!����*�I�,=�w��l�[�\�\�\��*�I�,=�w��T�U�U�U�U�U���w��l�C�D�D�D���w��<�=�=�=�=�=� �7�>�>�+�&�&�� E��y�{�{�a����.� �0A�4��{�[�\�\�\�\�\��\�4��{�C�D�D�D�D�D� E�� Er/����should_be_notifiedc�����������������������dt����������j����������������������d�}t����������j����������������������}|dk����s|n|�}t ����������||�������������|S�)z� Managing user`s notifications by checking input opts, validating and calling creation/removing of notifications marker file r'���r���r���)r���r���r���r���rS���)r%���rT���r���r ���r-���s��� r#���r���r���o���sN������ �"��0U�0W�0W� X� X�F��9�;�;�L�&2�a�&7�&7�,�,�W�K��{�,>�?�?�?��Mr/���c����������������������t����������j����������������������}t����������|dt����������j��������t����������j���������������������}t ����������j��������dd�������������}|���������������������dddd � �������������|���������������������ddt����������� �������������|���������������������dd����������������|� ��������������������|��������������}t����������||�������������\��}}t����������|�������������|S�)z Main entrypoint �CloudLinuxStatsnotifier)�caller_name� file_level� console_levelzE%(prog)s - CLI utility for configuring CloudLinux statistics notifierzcloudlinux-statsnotifier)�description�progz-jz--jsonzreturn data in JSON format� store_true)�help�actionz--idzUser id)r^����typez--notifyUserc������������������L�����t����������|������������������������������������������������dk����S�)N�true)r����lower)�xs��� r#����<lambda>zmain.<locals>.<lambda>����s�������A�������&�8P��r/���)r`���)r���)r ���) r����read_configr����logging�WARNING�FATAL�argparse�ArgumentParser�add_argument�int� parse_argsr$����print)�args_�cnfr ����parserr���r"���� exit_codes��� r#����mainrt���|���s��������� � � �C� ��)B�#*�?�&-�m�5��5��5�C��� $�[� '������F������h� )���������������Y�S��9�9�9� ����-Q�-Q��R�R�R����%��(�(�D�!�$�C�0�0�0��H�i� �(�O�O�O��r/���)$r)���rg���rj���r���rJ���r���r6����typingr���r����clcommon.utilsr����lvestats.libr����lvestats.lib.configr����lvestats.lib.commons.logsetupr����lvestats.lib.commons.funcr ����&lvestats.plugins.generic.statsnotifierr ����lvestats.lib.commonsr���� Namespace�Loggerr���rm���r$���r����boolr,���rC���rS���r���rt���rB���r/���r#����<module>r�������s������� � � ����������������� � � � �� � � � ��������������������������&��&��&��&��&��&��������������=��=��=��=��=��=��7��7��7��7��7��7��=��=��=��=��=��=��P��P��P��P��P��P��)��)��)��)��)��)��(�$���7�>���e�C��H�o���������4 ��� ��� �� �� �� �:�3��:�4��:��:��:��:�""��"��"�E���E���E���E��E��E��E�2 �4�� �D�� �� �� �� ���������r/���