????

Your IP : 3.16.130.230


Current Path : /opt/imunify360/venv/lib/python3.11/site-packages/pam_i360/__pycache__/
Upload File :
Current File : //opt/imunify360/venv/lib/python3.11/site-packages/pam_i360/__pycache__/internals.cpython-311.pyc

�

�+�f��(�dZddlmZddlmZmZddlZddlZddl	Z	ddl
mZddlZddl
Z
ddlZddlmZddlZddlZdZdZeje��Zed	��d
eeeffd���Zdefd
�ZGd�d��Zd�Zd�Zd�Z		dd�ZdS)z�
Common logging, sentry reporting and confing parsing code for such tools as

- /opt/imunify360/venv/bin/imunify360_pam.py
- /opt/imunify360/venv/bin/pam_imunify_daemon-watchdog.py
- /opt/imunify360/venv/bin/pamsock_ready_check.py
�)�ConfigParser)�	lru_cache�wrapsN)�Path)�Dictz/etc/pam_imunify/i360.inizAhttps://576732f0a25446c4b1f5b4a706e6b9d5@sentry.cloudlinux.com/52��returnc�L�	tt��5}td���}|�d|���z��|dcddd��S#1swxYwYdS#t
$r't�dt��ddicYSwxYw)N�-��default_section�[-]
z%s parsing error�sentryz6https://sentry.cloudlinux.com/sentry/i360-pam-imunify/)�open�CONFIGr�read_string�read�	Exception�logger�	exception)�f�confs  �G/opt/imunify360/venv/lib/python3.11/site-packages/pam_i360/internals.py�pam_imunify_configrs����
�&�\�\�	�Q���4�4�4�D����W�q�v�v�x�x�/�0�0�0���9�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	������	���+�V�4�4�4��N��	�	�	����s5�A2�AA%�A2�%A)�)A2�,A)�-A2�2.B#�"B#�filepathc����d���fd�}|S)Ni�c�B���t������fd���}|S)Nc����t���}|���r1tj���z
|���jkrX���}	|�|��n+#t$rt�d���YnwxYw|S#|ccYSxYw	|�	��S#t$r(t�d������cYSwxYw)Nz%s write errorz
%s read error)
r�exists�time�stat�st_mtime�
write_textrrr�	read_text)�path�rv�TIMEOUTr�funs  ���r�wrapperz;returnvalue_filecaching.<locals>.decorator.<locals>.wrapper1s�����>�>�D��;�;�=�=�
!�T�Y�[�[�7�%:�%)�Y�Y�[�[�%9�&:�&:��S�U�U����O�O�B�'�'�'�'�� �A�A�A��$�$�%5�x�@�@�@�@�@�A�����I��2�I�I�I�I�I�I�I�I�!��>�>�+�+�+�� �!�!�!��$�$�_�h�?�?�?��3�5�5�L�L�L�!���s<�!A7�6B$�7%B�B$�B�B$�$B+�/C�/C5�4C5)r)r(r)r'rs` ��r�	decoratorz*returnvalue_filecaching.<locals>.decorator0s>����	�s���	!�	!�	!�	!�	!�	!�
��	!�"���)rr*r's` @r�returnvalue_filecachingr--s/�����G�������(�r+c��eZdZeed��d�����Zed���Zeed��d�����Zeed��d�����Z	e
d���Zed���Zd	S)
�_SentryTagsrc���ttjd��}|���r1tt	jtjd����}|jS)Nr)r�sys�argv�
is_symlink�os�readlink�name)�tools rr6z_SentryTags.nameIsN���C�H�Q�K� � ���?�?���	2����C�H�Q�K�0�0�1�1�D��y�r+c��td��}|���sdStd���}|�d|���z��|dd�d��S)Nz/etc/os-releasezCloudLinux/CentOS 6rrr�PRETTY_NAME�")rrrrr$�strip)�
os_releasers  r�
os_versionz_SentryTags.os_versionQs|���+�,�,�
�� � �"�"�	)�(�(��C�0�0�0������:�#7�#7�#9�#9�9�:�:�:��C�y��'�-�-�c�2�2�2r+c��	td��5}tj|��}|dcddd��S#1swxYwYdS#t$rYdSwxYw)Nz/var/imunify360/license.json�idzN/A)r�json�load�FileNotFoundError)r�licenses  r�	server_idz_SentryTags.server_id[s���	��4�5�5�
%���)�A�,�,���t�}�
%�
%�
%�
%�
%�
%�
%�
%�
%�
%�
%�
%����
%�
%�
%�
%�
%�
%��!�	�	�	��5�5�	���s.�A�:�A�>�A�>�A�
A�Az#/var/cache/imunify360-pam_ipify.orgc���tj�dd���5}|������cddd��S#1swxYwYdS)Nzhttp://api.ipify.org�)�timeout)�urllib�request�urlopenr�decode)�rs r�	server_ipz_SentryTags.server_ipes����^�
#�
#�$:�A�
#�
F�
F�	%�!��6�6�8�8�?�?�$�$�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%����	%�	%�	%�	%�	%�	%s�&A�A�Ac�*�|���S�N)rD)�clss r�userz_SentryTags.userls���}�}���r+c���gd�gd�fD]^}	tj|d������cS#ttjf$r}t|��}Yd}~�Wd}~wwxYw|S)N)z/bin/rpmz-qz#--queryformat=%{VERSION}-%{RELEASE}�imunify360-pam)z/usr/bin/dpkg-queryz--showformat=${Version}z--showrST)�text)�
subprocess�check_outputr;rB�CalledProcessError�str)�cmd�e�last_errs   r�versionz_SentryTags.versionps���
X�W�W�Z�Z�Z��		�		�C�
"�!�.�s��>�>�>�D�D�F�F�F�F�F��%�z�'D�E�
"�
"�
"��q�6�6�����������
"�����Os�'6�A%�A � A%N)
�__name__�
__module__�__qualname__�staticmethodrr6r=rDr-rM�classmethodrQr\r,r+rr/r/Gs���������Y�q�\�\����\��\���3�3��\�3���Y�q�\�\����\��\�����B�C�C�%�%�D�C��\�%�
����[���
�
��\�
�
�
r+r/c�X�tjt�����SrO)�logging�	getLoggerr/r6r,r+rrdrd~s����[�-�-�/�/�0�0�0r+c��dt��vs't��d�d��sddd�Stjtd���tj��5}d�t
t��D��D]�}	tt|����}nA#t$r4}t�d	|��t|��}Yd}~nd}~wwxYw|d
kr
d|i|_
�r|dkr|�d
|����|�||����	ddd��n#1swxYwYddd�S)Nr�http�NOTSET�logging.NullHandler��level�class�on)�dsn�attach_stacktracec3�DK�|]}|�d���|V��dS)�_N)�
startswith)�.0�attrs  r�	<genexpr>z_sentry_init.<locals>.<genexpr>�s3����R�R�T�T�_�_�S�=Q�=Q�R�D�R�R�R�R�R�Rr+zsentry_init() '%s' tag errorrQr?r=z
os.version�ERRORz-sentry_sdk.integrations.logging.SentryHandler)rrq�
sentry_sdk�init�
SENTRY_DSN�configure_scope�dirr/�getattrrrrrXrQ�set_tag)�scope�tag�valuerZs    r�_sentry_initr��s����*�,�,�,�,�"�$�$�X�.�9�9�&�A�A�	-��*�
�
�	
�
�O��� � � � �

�	#�	%�	%�*��R�R�S��%5�%5�R�R�R�
	*�
	*�C�
�1���S�1�1�3�3�����
�
�
�� � �!?��E�E�E��A�������������	
����
�f�}�}�"�E�]��
�
���$�$��
�
�l�E�2�2�2�2��
�
�c�5�)�)�)�)�
	*�*�*�*�*�*�*�*�*�*�*�*����*�*�*�*�"�@���s=�+!D=�
B+�*D=�+
C)�5*C$�D=�$C)�)AD=�=E�Ec��dddt���dd��d�}t|d��j�dd	d	�
��|S)N�INFOzlogging.FileHandler�pam_log�logz/var/log/imunify360/pam.log)rjrk�	formatter�filenamer�i�T)�mode�parents�exist_ok)r�getr�parent�mkdir)r&s r�_pamlog_handlerr��sh���&��&�(�(�,�,�U�-J�L�L�	
�
�B�	��J�����%�%�5�$��%�N�N�N�
�Ir+�[%(levelname)s] %(message)s�
sys.stderrc�P�tj�dt��|�
dddd|zd�nddd	�d
�dddgd
�d|id�d�tj��t�	�����dd�d�dd���t��S)Nrr��console_logzlogging.StreamHandlerzext://%s)rjr�rk�streamrgrhri)r��consoler�r�)rj�handlers�formatz]time="%(asctime)s" level=%(levelname)s msg="%(message)s" cmdline="{cmdline}" tool={tool_name}� )�cmdline�	tool_namez%Y-%m-%dT%H:%M:%S%z)r��datefmt)r�r�F)r\r��root�
formatters�disable_existing_loggers)rc�config�
dictConfigr�r��joinr1r2r/r6rd)�console_logfmt�console_streams  r�logger_initr��s���N����'�(�(� �+�	 �*�0�$�~�5�	���"�.�2�2�
�
�����
�
�%�n�5�-�-3�V�&)�h�h�s�x�&8�&8�(3�(8�(8�(:�(:�.4�. �. �1���
�
�%*�G$�$�$�$�$�J�;�;�r+)r�r�) �__doc__�configparserr�	functoolsrrr@�logging.configrcr4�pathlibrrUr1r �typingr�urllib.requestrHrvrrxrdr]rrXrr-r/r�r�r�r,r+r�<module>r�s�����&�%�%�%�%�%�&�&�&�&�&�&�&�&���������	�	�	�	�����������
�
�
�
�������������������	$��
P�
�	��	�8�	$�	$����1���
�D��c��N�
�
�
���
� �c�����44�4�4�4�4�4�4�4�n1�1�1�!�!�!�H	�	�	� =�+�'�'�'�'�'�'r+