관리-도구
편집 파일: iaid.cpython-311.pyc
� ����-D�������������������������&����d�dl�Z�d�dlZd�dlZd�dlZd�dlZd�dlZd�dlmZ�d�dlm Z �d�dl mZ�d�dlm Z �d�dlmZ�d�dlmZ�d�dlmZ�d�d lmZmZ�d�d lmZ�d�dlmZ�d�dlmZ�d�d lmZ��ee������������Z dZ!dZ" �dZ#�G�d��de$������������Z%�G�d��de������������Z&dS�)�����N)�suppress)� dataclass)� getLogger)�Path)�Callable)�urljoin)�Request)�API�APIError)� LicenseCLN)�atomic_rewrite)�DAY)�g� ��������<���c�������������������������e�Zd�ZdZdS�)�IAIDTokenErrorz$Can't get iaid token for any reason.N)�__name__� __module__�__qualname__�__doc__��������S/opt/imunify360/venv/lib/python3.11/site-packages/defence360agent/internals/iaid.pyr���r���#���s��������������.�.�.�.r���r���c��������������������|����e�Zd�ZdZ�eej��������e���������������������d������������������������Z�eej��������e���������������������d������������������������Z �eej��������e���������������������d������������������������Z �eej��������e���������������������d������������������������Z�ed������������Z e dz��Ze dz��Ze d z��Ze d z��Zg�g�g�d�Z�ej����������������������Z�ej����������������������Z�ed� �������������G�d��d��������������������������Zedd�defd���������������Zedd�defd���������������Zed����������������Zed����������������Zed����������������Z ed����������������Z!ed(d���������������Z"ed����������������Z#ed����������������Z$edefd���������������Z%ed ����������������Z&ed)d#���������������Z'ed$����������������Z(ed*d%���������������Z)ed&����������������Z*ed*d'���������������Z+dS�)+�IndependentAgentIDAPIz/api/auth/agent/{}�register�activate�loginz token-infoz/var/imunify360�iaidz iaid-passwordz iaid-tokenziaid-activated)r���r���r ���T)�frozenc��������������������J�����e�Zd�ZU�g�d�Zeed<���eed<���eed<���eed<���eed<���dS�)�IndependentAgentIDAPI.TokenInfo)�validr!����license_status� server_id� need_renewr%���r!���r&���r'���r(���N)r���r���r���� __slots__�bool�__annotations__�strr���r���r���� TokenInfor$���;���sX���������������� �� �� � ������� � � ��������������r���r-���r���)�timeout�coroc���������������������K����t����������j��������|t����������j��������d|z��������������t����������z��z�����������������d�{V�����|�|����d�{V����d�S�)N����)�asyncio�sleep�random� randrange�_TIMEOUT_MULTIPLICATOR)r/����attemptr.����argss��� r����_retry_on_errorz%IndependentAgentIDAPI._retry_on_errorJ���s}������������m��f�&�q�G�|�4�4�7M�M�M� �� �� �� �� �� �� �� �� ���d�D�k���������r���c���������� �������f����d��|�j���������|���������D���������������|�j���������|<���t����������|�j���������|���������������������dk����rXt����������j����������������������}|�j���������|������������������������������|����������������������|�j��������|g|�R�||d���������������������������d�S�t�������������������������������d|�������������d�S�)Nc������������������:�����g�|�]}|�������������������������������������|��S�r���)�done)�.0�tasks��� r���� <listcomp>z3IndependentAgentIDAPI._add_task.<locals>.<listcomp>T���s5������� �� �� ��T�Y�Y�[�[� �� �� �� r���r1����r7���r.���zTask %s already in retry queue) �_tasks�lenr2����get_event_loop�append�create_taskr9����logger�info)�cls�typer/���r7���r.���r8����loops��� r���� _add_taskzIndependentAgentIDAPI._add_taskR���s������� �� � �Z��-� �� �� �� �4����s�z�$�� � �A�%�%��)�+�+�D��J�t��#�#�� � �'�C�'���#����-4�g��������� �� �� �� �� �� �K�K�8�$�?�?�?�?�?r���c������������������@�����|�����������������������d|�j��������d��������������d�S�)Nr���r����r7���)rK���r����rH���s��� r����add_initial_taskz&IndependentAgentIDAPI.add_initial_taskc���s"������� � �j�#�,�� �:�:�:�:�:r���c�������������������J��K����|�j��������������������������������������������D�]�\��}}|D�]~}|�����������������������������������sh|������������������������������������t ����������t ����������j��������������������5��|��d�{V����d�d�d��������������n#�1�swxY�w�Y���t�������������������������������d|����������������d�S�)NzRetry task %s was canceled.) rA����itemsr<����cancelr���r2����CancelledErrorrF���rG���)rH���rI����tasksr>���s��� r����shutdownzIndependentAgentIDAPI.shutdowng���s������������:�+�+�-�-�� E�� E�K�D�%��� E�� E���y�y�{�{��E��K�K�M�M�M�!�'�"8�9�9��#��#�"� � � � � � � �#��#��#��#��#��#��#��#��#��#��#�����#��#��#��#��K�K� =�t�D�D�D�� E� E�� Es����& A;�;A?�A?c�������������������4�����t����������j��������d������������j��������S�)N�_imunify)�grp�getgrnam�gr_gidr���r���r����_gidzIndependentAgentIDAPI._gidq���s�������|�J�'�'�.�.r���c������������������j�����|�j��������������������������������������������r|�j��������������������������������������������S�d�S��N)� IAID_FILE�exists� read_textrN���s��� r����get_iaidzIndependentAgentIDAPI.get_iaidu���s1�������=���!�!�� -��=�*�*�,�,�,��tr���N�POSTc�����������������������ddi}|�|����������������������|�������������t����������|�|||r&t����������j��������|�����������������������������������������������nd��������������S�)NzContent-Typezapplication/json)�method�headers�data)�updater ����json�dumps�encode)�urlre���rd����kwargs�_headerss��� r����_requestzIndependentAgentIDAPI._request{���sh������"�$6�7�����O�O�G�$�$�$�����06�@���F�#�#�*�*�,�,�,�D� �� �� �� r���c������������������L�����t����������d��|�j��������|�j��������fD���������������������������S�)Nc��������������3����>���K����|�]}|������������������������������������V����d�S�r]���)r_���)r=���� iaid_files��� r���� <genexpr>z6IndependentAgentIDAPI.is_registered.<locals>.<genexpr>����sB����������� �� ��� ����� �� �� �� �� �� r���)�allr^����IAID_PASSWORD_FILErN���s��� r���� is_registeredz#IndependentAgentIDAPI.is_registered����s:�������� �� �!�m�S�-C�D� �� �� �� �� �� r���c�������������������n��K����t����������������������������������������������rGt������������������������������������������������d{V����t����������������������������������������������rt����������d������������� �|�j�����������������������������d�������������}|st����������d�������������|S�#�t����������$�r}t����������d|���������������|�d}~ww�xY�w)zWEnsure that iaid token is up to date Return iaid token or raise IAIDTokenError.NzIAID token is expired�ascii)�encodingzIAID_TOKEN_FILE is emptyzCan't get iaid token, reason: )r����is_token_expiredr ���r����IAID_TOKEN_FILEr`���� Exception)rH����token�es��� r���� get_tokenzIndependentAgentIDAPI.get_token����s������������!�1�1�3�3�� >�'�-�-�/�/�/�/�/�/�/�/�/�$�5�5�7�7�� >�$�%<�=�=�=� N��'�1�1�7�1�C�C�E��� A�$�%?�@�@�@��L���� N�� N�� N� �!E�!�!E�!E�F�F�A�M����� N���s����$-B�� B4�B/�/B4�returnc���������������������K����|���������������������������������������d�{V���}d|i}|����������������������|�j��������|d�������������}|����������������������|��������������d�{V���}|���������������������d������������}|�t����������d|��������������|�j��������di�|��S�)NzX-Auth�GET)re���rd���� token_infozwrong response %rr���)r~���rn���� TOKEN_INFO� async_request�getr���r-���)rH���� iaid_tokenre����request�resultr|���s��� r����_get_token_infoz%IndependentAgentIDAPI._get_token_info����s������������=�=�?�?�*�*�*�*�*�*� ��Z�(���,�,�s�~�w�u�,�M�M���(�(��1�1�1�1�1�1�1�1��� � �<�(�(���=��.��7�7�7��s�}�%�%�u�%�%�%r���c����������������������� �t����������j��������|�j��������������������}|j��������}n#�t����������$�r�d}Y�nw�xY�wt����������j����������������������|z ��t����������k����S�)Ng��������)�os�statrz����st_mtime�FileNotFoundError�timer���)rH���r����r����s��� r���ry���z&IndependentAgentIDAPI.is_token_expired����sb������ %��7�3�.�/�/�D���}�H�H���!�� �� �� ��H�H�H� ������y�{�{�X�%��+�+s����#��2�2Fr1���c����������� ��������r��K����|�j���������4��d�{V����|s(|������������������������������������r �d�d�d��������������d�{V����d�S�t������������������������}t����������j����������������������}|r||d<����|�j��������|�j��������fi�|��} �|����������������������|��������������d�{V���}|�j��������� ��������������������d��������������t����������t����������|�j��������������������|d���������|�j��������� ����������������������������������d|������������������������������������d��������������t����������t����������|�j��������������������|d���������|�j��������� ����������������������������������d � �������������|��������������������������������������d�{V����n�#�t"����������$�r�}t$�������������������������������d||�������������|j���������|j��������dk����s|j��������d k����r.|t*����������k�����r#|����������������������d|�j��������||dz���|��������������n"t$�������������������������������d|j��������||�������������Y�d�}~d�d�d��������������d�{V����d�S�d�}~ww�xY�w �d�d�d��������������d�{V����d�S�#�1��d�{V���swxY�w�Y���d�S�)Nr'���T�� missing_okr!�����������backup�uid�gid�permissions�passwordi���)r����r����z0Something went wrong on register %r - attempt %s�������r���r1���rM���z-Failed to register (%s) after %s attempts: %r)�_register_lockru����dictr���� get_server_idrn����REGISTER_URLr�����IAID_ACTIVATED_FILE�unlinkr ���r,���r^���r_���r[���rt���r���r���rF����warning�status_code� _MAX_TRIESrK���r����error�full_url)rH����forcer7����payloadr'���r����r����r}���s��� r���r���zIndependentAgentIDAPI.register����s�����������%��7 %��7 %��7 %��7 %��7 %��7 %��7 %��7 %��� �S�.�.�0�0�� ��7 %��7 %��7 %��7 %��7 %��7 %��7 %��7 %��7 %��7 %��7 %��7 %��7 %��7 %���f�f�G�"�0�2�2�I��� 1�'0���$�"�c�l�3�#3�?�?�w�?�?�G�- %�"�0�0��9�9�9�9�9�9�9�9���'�.�.�$�.�?�?�?�:���� �&�&��6�N��=�/�/�1�1����� � � %� �����������.�/�/��:�&��1�8�8�:�:� %� ���������l�l�n�n�$�$�$�$�$�$�$�$��U��� �� �� ����F����������M�)��}��+�+��}��+�+�� �*�*��M�M�"�����!�� '��"�����������L�L�G��(��� ����������O7 %��7 %��7 %��7 %��7 %��7 %��7 %��7 %��7 %��7 %��7 %��7 %��7 %��7 %����� ����T�%�o7 %��7 %��7 %��7 %��7 %��7 %��7 %��7 %��7 %��7 %��7 %��7 %��7 %��7 %��7 %��7 %��7 %��7 %��7 %��7 %��7 %��7 %��7 %��7 %�����7 %��7 %��7 %��7 %��7 %��7 %sB����H&�;H&�76E �-B3H&� H�*B H �3H&� H�H&�& H0�3H0c�������������������P��K����|�j��������������������������������������������s|��������������������������������������d{V����dS�t����������j����������������������}|��������������������������������������d{V���}|j��������|���������������������d������������k����s|j��������|���������������������d������������k����r7t����������� ��������������������d|�������������|��������������������������������������d{V����dS�|�j��������� ����������������������������������}|j��������r|j��������|k����s|j��������r|��������������������������������������d{V����dS�dS�)z!Check whether the agent activatedN�status�idzGot a corrupted token: %r)r����r_���r���r���r~���r����r&���r����r'���rF���r����� reactivater^���r`���r%���r!���r(���r ���)rH����licr|���r!���s��� r����ensure_is_activated_and_validz3IndependentAgentIDAPI.ensure_is_activated_and_valid����sJ�����������&�-�-�/�/�� ��,�,�.�.� � � � � � � ��F��"�$�$���)�)�+�+�+�+�+�+�+�+����3�7�7��$ ��$ �� �� � �_����� � � -� -��L�L�4�e�<�<�<��.�.�"�"�"�"�"�"�"�"�"��F��}�&�&�(�(���{�� �e�j�D�0�0�E�4D�0��)�)�+�+�����������1�0r���c����������� �����������K����|�j��������������������������������������������r|������������������������������������t����������d<���d�S�|������������������������������������s6t �������������������������������d�������������|��������������������������������������d�{V����d�S�t����������j ����������������������rL|������������������������������������t����������d<���|�� ����������������������������������r|��������������������������������������d�{V����d�S�t����������j����������������������}|st �������������������������������d�������������d�S�|�j ��������4��d�{V����|�j�������������������������������������������}|�j�������������������������������������������}|����������������������|�j��������|||�������������}|t����������d<���d} �|����������������������|��������������d�{V����|�j���������������������������������������������|�j�����������������������������d��������������|��������������������������������������d�{V����n�#�t.����������$�r�}t �������������������������������d||�������������|j��������r|j��������d k����rd}nr|j��������rI|j��������d k����s|j��������dk����r3|t2����������k�����r(|����������������������d|�j��������|d z���|t8������������������������n"t �������������������������������d|j��������||�������������Y�d�}~nd�}~ww�xY�wd�d�d��������������d�{V����n#�1��d�{V���swxY�w�Y���|r|����������������������d���������������d�{V����d�S�d�S�)Nr!���z&need to register first before activatez9Can't continue iaid activation: no valid license is found)r!���r�����licenseFTr����z.Something went wrong on activate %r attempt %s���r����r����r���r1���r@���z-Failed to activate (%s) after %s attempts: %r�r����)r����r_���ra���r���ru���rF���r����r���r����is_freery���r ���r~����_activate_lockr^���r`���rt���rn����ACTIVATE_URLr�����touchrz���r����r���r����r����rK���r����_ACTIVATE_MINIMUM_TIMEOUTr����r����)rH���r7���r����r!���r����r�����need_to_registerr}���s��� r���r���zIndependentAgentIDAPI.activate��s�����������"�)�)�+�+�� ������A�f�I��F�� � �"�"�� ��N�N�C�D�D�D��,�,�.�.� � � � � � � ��F������ ������A�f�I��#�#�%�%�� "��i�i�k�k�!�!�!�!�!�!�!��F��"�$�$���� ��N�N�K� �� �� �� �F��%��, "��, "��, "��, "��, "��, "��, "��, "��=�*�*�,�,�D��-�7�7�9�9�H��l�l�� �t�h���#�����G���A�f�I�$��$ "��'�'��0�0�0�0�0�0�0�0�0��'�-�-�/�/�/�B��#�*�*�d�*�;�;�;��i�i�k�k�!�!�!�!�!�!�!�!��C��� �� �� ����D�������� ��=���Q�]�c�%9�%9�'+�$�$��M����#�-�-���#�1E�1E��*�,�,� ��M�M�"����!�� '� 9��"�����������L�L�G��(��� ��������������3 ����, "��, "��, "��, "��, "��, "��, "��, "��, "��, "��, "��, "��, "��, "��, "��, "��, "��, "��, "��, "��, "��, "��, "�����, "��, "��, "��, "�Z��� +��,�,�T�,�*�*�*�*�*�*�*�*�*�*�*� +�� +s>����!AJ5�?4G)�36J5�) J �3B#J�J5�J � J5�5 J?�J?c�������������������t���K����|�j������������������������������d��������������|��������������������������������������d�{V����d�S�)NTr����)r����r����r���rN���s��� r���r����z IndependentAgentIDAPI.reactivateE��sF������������&�&�$�&�7�7�7��l�l�n�n���������r���c�������������������~��K����|�������������������������������������st�������������������������������d�������������d�S�|�j�������������������������������������������}|�j�������������������������������������������}|����������������������|�j��������||�������������} �|����������������������|��������������d�{V���}t����������t����������|�j��������������������|d���������|�j�������������������������������������������d|�� ����������������������������������d��������������d�S�#�t����������$�r�}t�������������������������������d||�������������|t ����������k�����r\|j���������|j��������dk����r"|����������������������d |�j��������|d z���|��������������nV|j��������dk����r|����������������������d ���������������d�{V����n(t�������������������������������d|j��������||�������������Y�d�}~d�S�Y�d�}~d�S�Y�d�}~d�S�d�}~ww�xY�w)Nz#need to register first before login)r!���r����r|���r����r����r����z/Something wrong happened on login %r attempt %sr����r ���r1���rM���r����Tr����z*Failed to login (%s) after %s attempts: %r)ru���rF���r����r^���r`���rt���rn���� LOGIN_URLr����r ���r,���rz���r_���r[���r���r����r����r����rK���r ���r���r����)rH���r7���r!���r����r����r����r}���s��� r���r ���zIndependentAgentIDAPI.loginJ��s(���������� � �"�"�� ��L�L�>�?�?�?��F��}�&�&�(�(���)�3�3�5�5���,�,�s�}�4�(�,�K�K�� ��,�,�W�5�5�5�5�5�5�5�5�F�*� ��C�'�(�(��w���*�1�1�3�3���H�H�J�J�!� �� �� �� �� �� ��)��� �� �� ��N�N�A�1�g� �� �� ����#�#��=�(�A�M�S�,@�,@��M�M����G�a�K���"�����������]�c�)�)��,�,�T�,�2�2�2�2�2�2�2�2�2�����@��$��� ����������������������������� ��������������� ���s����C6��6 F<��B%F7�7F<)Nrb���)Fr1���)r1���),r���r���r����API_PATHr���r ���� _BASE_URL�formatr����r����r����r����r����IAID_DIRr^���rt���rz���r����rA���r2����Lockr����r����r���r-����staticmethodr���r9����classmethodrK���rO���rU���r[���ra���rn���ru���r~���r����ry���r���r����r���r����r ���r���r���r���r���r���'���sV�������������#�H��7�3�=�(�/�/�*�*E�*E�F�F�L��7�3�=�(�/�/�*�*E�*E�F�F�L���� �x���w�'?�'?�@�@�I���������(E�(E�F�F�J��t�%�&�&�H��6�!�I�!�O�3����-�O�"�%5�5��������F� �"�W�\�^�^�N�!�W�\�^�^�N��Y�d�����������������������FG�������H���������\����EF��@��@��@�8��@��@��@���[�@� ��;��;���[�;���E��E���[�E���/��/���\�/��������[�� �� �� �� ���\� ��� �� ���[� ��� N�� N���[� N���&�i��&��&��&���[�&���,��,���[�,���8%��8%��8%���[�8%�t�������[��$��A+��A+��A+���[�A+�F�������[����%��%��%���[�%��%��%r���r���)'r2���rX���rh���r����r4���r����� contextlibr����dataclassesr����loggingr����pathlibr����typingr����urllib.parser����urllib.requestr ����defence360agent.api.serverr ���r����!defence360agent.contracts.licenser����defence360agent.utilsr ����defence360agent.utils.commonr����&defence360agent.internals.global_scoper���r���rF���r����r6���r�����RuntimeErrorr���r���r���r���r����<module>r�������s����������� � � � ������� � � � �� � � � �������������������!��!��!��!��!��!�������������������������������������� �� �� �� �� �� ��"��"��"��"��"��"��4��4��4��4��4��4��4��4��8��8��8��8��8��8��0��0��0��0��0��0��,��,��,��,��,��,��4��4��4��4��4��4� ��8� � ���� ���������/��/��/��/��/�\��/��/��/�I��I��I��I��I�C��I��I��I��I��Ir���