OwlCyberSecurity - MANAGER
Edit File: parser.cpython-311.pyc
� ����V#h�5����������������������������d�Z�ddlZddlZddlmZ�ddlZddlZddlZddlmZ�ddl m Z mZmZm Z �ddlmZ�ddlmZ�ddlmZmZmZmZmZmZmZmZmZ�dd lmZmZmZm Z m!Z!m"Z"m#Z#m$Z$�ej%���������&��������������������ej%���������'��������������������e(������������������������Z)ej*��������eej+��������eej,��������eej-��������eiZ.�G�d ��d������������Z/e0dk����r��e/��������������Z1�e2e1�3������������������������������������������������e2e1�4��������������������d ���������������������������e2e1�5������������������������������������������������e2e1�6������������������������������������������������e2e1�7�����������������������������������������������dS�dS�)zt Main API module that provides class uses as proxy to public vendors methods and converts data to internal objects. �����N)�compress)�ValidationError)�Optional�List�Dict�Any)�ALL_CL_FEATURES��integration_scripts) �BadScriptError�MalformedError�ErrorMessage� InternalError�PermissionDenied� BadRequest�NotFound�UnexpectedResult�VendorApiMalformedData)� PanelInfo� Databases�Package�User� DomainData�Reseller�Admin�InstalledPHPc�������������������������e�Zd�ZdZed����������������Zd��Zd��Zd��Zd��Z d��Z d��Zdd �Z � � � � � �dd�Z dd �Zdd�Zdd�Zdee���������fd�Zd S�)� PublicApiz> Proxy to the public universal api for control panels c�����������������������t������������������������S�)zU Re-read this each time we call api due to lve-stats daemon. r ���)�selfs��� ��/builddir/build/BUILDROOT/alt-python27-cllib-3.4.28-1.el8.cloudlinux.x86_64/opt/cloudlinux/venv/lib/python3.11/site-packages/vendors_api/parser.py�_scriptszPublicApi._scripts@���s�������#�$�$�$�����c����������������������t�����������j�������������������������������������������}|���������������������dd��������������d|d<��� �t ����������j��������|t����������j��������t����������j��������d|�������������5�}|�����������������������������������\��}}d�d�d��������������n#�1�swxY�w�Y���n&#�t����������$�r}t����������d|��d�������������|�d�}~ww�xY�w|����������������������||������������S�)N� PYTHONPATH�1�PYTHONNOUSERSITET)�stdout�stderr�text�envz-Something is wrong with integration script: `�`)�os�environ�copy�pop� subprocess�Popen�PIPE�DEVNULL�communicate�OSErrorr���� _validate)r ����command�schema_filer+����p�output�_�es��� r!����_executezPublicApi._executeJ���s%�������j�o�o��������d�#�#�#�"%���� ��!�'�)3��)3�);�'+�&)� +��+��+�� ,��/0��M�M�O�O� ��� ,�� ,�� ,�� ,�� ,�� ,�� ,�� ,�� ,�� ,�� ,����� ,�� ,�� ,�� ,������ �� �� � �D��D�D�D����� ����� ���� ��~�~�f�k�2�2�2s;����-B��(B��B��B�B��B�B�� B;�"B6�6B;c������������������t�����t��������������������������������|������������}|�t����������d||���������������||�������������)z� Convert documented api error constants into python exceptions. :param result: error constant :param message: custom message that vendor returned Nz8Unexpected result key: `%(result)s`; message=`%(error)s`)�result�error)�_ERROR_MESSAGE_TO_ERROR�getr���)r ���r@����message� error_clss��� r!����_error_key_to_errorzPublicApi._error_key_to_error`���sN�������,�/�/��7�7� ���"�J��W�.��.��.�� .���i�� � � r#���c������������������B���� �t����������j��������|������������pi�}n)#�t����������t����������f$�r}t ����������|������������|�d}~ww�xY�w �|d���������pi�}|d���������}n##�t ����������$�r}t ����������|�������������|�d}~ww�xY�w|dk����rv �|����������������������|������������}t����������j��������|d���������|�������������n<#�t����������t ����������t����������f$�r"}t����������t����������|������������������������|�d}~ww�xY�w|d���������S�|����������������������||� ��������������������d��������������������������dS�) zs Checks input for valid json structure :param raw_data: json :return: dict or list N�metadatar@���)r;����ok�datarD���)rD���)�json�loads� TypeError� ValueErrorr ����KeyError�_read_data_schema� jsonschema�validater���r����strrF���rC���)r ����raw_data�schema_path�deserializedr=���rH���r@����schemas��� r!���r7���zPublicApi._validateo���sW����� 2��:�h�/�/�5�2�L�L���:�&�� 2�� 2�� 2� ��*�*��1����� 2���� 9�#�J�/�5�2�H��h�'�F�F���� 9�� 9�� 9� ��1�1�1�q�8����� 9������T�>�>� <��/�/��<�<���#�L��$8�&�A�A�A�A��#�X�y�9�� <�� <�� <��-�S��V�V�4�4�!�;����� <����� ��'�'��$�$�V�X�\�\�)�5L�5L�$�M�M�M�M�Ms@������?�:�?�A�� A6� A1�1A6��0B1��1C*�C%�%C*c����������������������t����������t����������j�����������������������������t����������d|������������d�������������5�}t����������j��������|�����������������������������������t ����������j��������������������}ddd�������������n#�1�swxY�w�Y���|S�)a-�� Knowing the fact that we store all data schemas in one folder we can easily find their absolute path. We do not handle errors here as normally package contains all it's files. :param filename: schema filename to load :return: dict, jsonschema �schemaszutf-8)�encodingN) �openr-����path�join�BASE_DIR�yaml�load�read� SafeLoader)r ����filename�f�data_schemas��� r!���rP���zPublicApi._read_data_schema����s���������"�'�,�,�x��H�=�=�� P� P� P�� ?�TU��)�A�F�F�H�H�d�o�>�>�K� ?�� ?�� ?�� ?�� ?�� ?�� ?�� ?�� ?�� ?�� ?����� ?�� ?�� ?�� ?��s����2A4�4A8�;A8c����������� �����������|�����������������������|�j��������j��������d�������������}t����������|������������}|j��������s|S�|j��������D�]B}|t ����������v�r�t ����������d|��dd���������������������d��t ����������D�������������������������������������������|S�)z� Returns the information about the control panel. Necessity: Always Accessed by: All UNIX users Must work inside CageFS also: Yes zpanel_info.yaml�r9���zFeature zX is not available, please check your panel_info integration script. Available keys are: z, c�����������������������g�|�] }|j����������� S���)�value)�.0rd���s��� r!���� <listcomp>z(PublicApi.panel_info.<locals>.<listcomp>����s������1S�1S�1S�a�!�'�1S�1S�1Sr#���)r>���r"���� panel_infor����supported_cl_featuresr ���r���r]���)r ���� valid_datar@����features��� r!���rm���zPublicApi.panel_info����s���������]�]�4�=�#;�IZ�]�[�[� ��:�&�&���+�� ��M��3�� �� �G��/�)�)��!�W�7��W��W�'+�y�y�1S�1S�?�1S�1S�1S�'T�'T�W��W����� � �� r#���c������������������b�����|�����������������������|�j��������j��������d�������������}t����������|������������S�)a�� Returns the information about databases that are available to the control panel users and are managed by the control panel. Necessity: Only for LVE-Stats Accessed by: admins (UNIX users) Must work inside CageFS also: No zdb_info.yamlrg���)r>���r"����db_infor���)r ���ro���s��� r!���rr���zPublicApi.db_info����s,��������]�]�4�=�#8�n�]�U�U� ���$�$�$r#���Nc������������������r�����|�j���������j��������}|�|d|fz ��}|����������������������|d�������������}d��|D���������������S�)a�� Returns list of abstractions called "package" that represents a group of users that have the same default limits. Necessity: For limits functionality Accessed by: admins (UNIX users) Must work inside CageFS also: No N�--ownerz packages.yamlrg���c������������������,�����g�|�]}t����������|��������������S�ri���)r����rk����xs��� r!���rl���z&PublicApi.packages.<locals>.<listcomp>����s������/�/�/�q��� � �/�/�/r#���)r"����packagesr>���)r ����owner�argsro���s��� r!���rx���zPublicApi.packages����sL��������}�%�����Y��&�&�D��]�]�4�_�]�E�E� �/�/�J�/�/�/�/r#���c������������������Z�����h�d�}t����������|������������t����������|������������z��rt����������d�������������t����������|t����������t����������t����������d������������f������������st����������d�������������|�&t ����������|������������|z ��}|rt����������|��d��������������|g||g�g|gg} t����������t����������| d��| D���������������������������������������} t����������| ������������dk����rt����������d| ����������������|�j ��������j ��������}|�|d |fz ��}|r|r |d |d|fz ��}�rt�����������t����������������������r|d�fz ��}|r|d t����������|������������fz ��}|r|dd���������������������|������������fz ��}|�� ��������������������|d�������������}d��|D���������������} t�����������t����������t����������f������������r�fd�| D���������������} | S�)z� Returns information about UNIX users, created and managed by the control panel. Necessity: Always Accessed by: admins (UNIX users) Must work inside CageFS also: No >����id�emailry����domain�package�username�locale_codez7You can only use package_name and package_owner in pairNz"fields accept only list of stringsz are not allowed fieldsc������������������,�����g�|�]}t����������|��������������S�ri���)�all)rk����is��� r!���rl���z#PublicApi.users.<locals>.<listcomp>����s������4V�4V�4V��S��V�V�4V�4V�4Vr#�������z.You cannot use all these args in one request: rt���z--package-namez--package-ownerz --usernamez --unix-idz--fields�,z users.yamlrg���c������������������,�����g�|�]}t����������|��������������S�ri���)r���rv���s��� r!���rl���z#PublicApi.users.<locals>.<listcomp>��s������.�.�.�a�$�q�'�'�.�.�.r#���c������������������&������g�|�] }|j����������v��|��S�ri���)r�����rk����u�filter_namess��� �r!���rl���z#PublicApi.users.<locals>.<listcomp>��s%�������F�F�F�A�1�:��+E�+E�a�+E�+E�+Er#���)�boolrN���� isinstance�list�tuple�type�setr����lenr"����usersrS���r]���r>���)r ���ry����package_name� package_ownerr�����unix_id�fields�allowed_fields�not_allowed_fields�exclusive_groups� used_argsr8���ro���r@���s��� ` r!���r����zPublicApi.users����s?������ G��G��G��������]� 3� 3�3�� :���9��:��:�� :���&�4���T� � �";�<�<�� C��A�B�B�B���!$�V���~�!=��!�� Q� �$6�!O�!O�!O�P�P�P���G� �=�)� �N� �I� �����"2�4V�4V�EU�4V�4V�4V�W�W�X�X� ��y�>�>�A����L��L�L����� ���-�%����� �5�)�)�G��� :�M�� :��(�,�)�=�:�� :�G��� 4�J�|�S�9�9�� 4���l�3�3�G��� 3���S��\�\�2�2�G��� 6�� �C�H�H�V�$4�$4�5�5�G��]�]�7��]�E�E� �.�.�:�.�.�.����l�T�5�M�2�2�� G�F�F�F�F��F�F�F�F�� r#���Fc����������������������|r|rt����������d�������������|�j��������j��������}d}|r|d|fz ��}|r|d|fz ��}|r|dz ��}d}|����������������������||�������������}i�}|�����������������������������������D�]\��}} t����������| ������������||<����|S�)z� Returns key-value object, where a key is a domain (or subdomain) and a value is DomainData object Necessity: Selectors, some UI features Accessed by: All UNIX users Must work inside CageFS also: Yes z"you cannot use both owner and namezdomains.yamlrt����--name)z --with-phpzdomains_with_php.yamlrg���)rN���r"����domainsr>����itemsr���) r ���ry����name�with_phpr8���rW���ro���r@����k�vs ��� r!���r����zPublicApi.domains��s���������� C�T�� C��A�B�B�B��-�'������ *�� �5�)�)�G��� (���$�'�'�G��� -��'�'�G�,�F��]�]�7��]�?�?� ����$�$�&�&�� &�� &�D�A�q�"�1� � �F�1�I�I�� r#���c������������������D�����|r�rt����������d�������������|�j��������j��������}|�|dt����������|������������fz ��}t �����������t����������������������r|d�fz ��}|����������������������|d�������������}d��|D���������������}t �����������t����������t����������f������������r�fd�|D���������������}|S�) a��� Gives information about resellers who can be users owners in the control panel. Resellers do not obligatory have their own same-name UNIX accounts in the system and could exist only as an account in the control panel. Necessity: Always Accessed by: admins (UNIX users) Must work inside CageFS also: no :param int id_: int, reseller id :param filter_names: name or list of reseller names to return z&You cannot use id and name at one callNz--idr����zresellers.yamlrg���c������������������,�����g�|�]}t����������|��������������S�ri���)r���rv���s��� r!���rl���z'PublicApi.resellers.<locals>.<listcomp>L��s������2�2�2�!�(�1�+�+�2�2�2r#���c������������������&������g�|�] }|j����������v��|��S�ri����r����r����s��� �r!���rl���z'PublicApi.resellers.<locals>.<listcomp>N���%�������B�B�B�A�1�6�\�+A�+A�a�+A�+A�+Ar#���)rN���r"���� resellersrS���r����r>���r����r����)r ����id_r����r8���ro���r@���s��� ` r!���r����zPublicApi.resellers4��s����������� G�<�� G��E�F�F�F��-�)���?����C���)�)�G��l�C�(�(�� 0���,�/�/�G��]�]�7�8H�]�I�I� �2�2�z�2�2�2���l�T�5�M�2�2�� C�B�B�B�B��B�B�B�F�� r#���c������������������h������r|�t����������d�������������|�j��������j��������}t�����������t����������������������r|d�fz ��}|�&|dt ����������|�����������������������������������������������fz ��}|����������������������|d�������������}d��|D���������������}t�����������t����������t����������f������������r�fd�|D���������������}|S�) u��� Gives information about panel’s administrators, output information about all panel’s administrators who: - could be (or actually are) the owners of the users, listed in users() - could be (or actually are) the owners of the packages, listed in packages() - has UNIX users with the rights to run LVE Manager UI Necessity: Always Accessed by: admins (UNIX users) Must work inside CageFS also: no :param filter_names: name or list of names to return :param is_main: filter output by type of admins: None means no filtering, return all False means only additional admins True means only main admin Nz&unable to use name and is_main at oncer����z --is-mainzadmins.yamlrg���c������������������,�����g�|�]}t����������|��������������S�ri���)r���rv���s��� r!���rl���z$PublicApi.admins.<locals>.<listcomp>k��s������/�/�/�q�%��(�(�/�/�/r#���c������������������&������g�|�] }|j����������v��|��S�ri���r����r����s��� �r!���rl���z$PublicApi.admins.<locals>.<listcomp>m��r����r#���) rN���r"����adminsr����rS����lowerr>���r����r����)r ���r�����is_mainr8���ro���r@���s��� ` r!���r����zPublicApi.adminsQ��s��������$��� G�G�/��E�F�F�F��-�&���l�C�(�(�� 0���,�/�/�G�����S��\�\�%7�%7�%9�%9�:�:�G��]�]�7� �]�F�F� �/�/�J�/�/�/���l�T�5�M�2�2�� C�B�B�B�B��B�B�B�F�� r#����returnc������������������`�����|�j���������j��������}|����������������������|d�������������}d��|D���������������S�)a%�� Returns list of abstractions called "php" that represents an installed php with it's binary, ini file, modules directory, etc Necessity: For accelerate wp functionality Accessed by: admins (UNIX users) Must work inside CageFS also: No zphp.yamlrg���c������������������,�����g�|�]}t����������|��������������S�ri���)r���rv���s��� r!���rl���z!PublicApi.php.<locals>.<listcomp>|��s������4�4�4�A��Q���4�4�4r#���)r"����phpr>���)r ���rz���ro���s��� r!���r����z PublicApi.phpp��s7��������}� ���]�]�4�Z�]�@�@� �4�4��4�4�4�4r#���)N)NNNNNN)NNF)NN)�__name__� __module__�__qualname__�__doc__�propertyr"���r>���rF���r7���rP���rm���rr���rx���r����r����r����r����r���r���r����ri���r#���r!���r���r���;���s3������������������%��%���X�%�3��3��3�, !�� !�� !�N��N��N�> �� �� ������0%��%��%�0��0��0��0�"��� ����A��A��A��A�F�������:�������:�������>5�d�<�(��5��5��5��5��5��5r#���r����__main__�{���)r����)8r����r-���r1���� itertoolsr���rK���rQ���r_���r����typingr���r���r���r����clcommon.featuresr ����vendors_api.configr����vendors_api.exceptionsr���r ���r���r���r���r���r���r���r����vendors_api.modelsr���r���r���r���r���r���r���r���r\����abspath�dirname�__file__r^����INTERNAL_ERROR�PERMISSION_DENIED�BAD_REQUEST� NOT_FOUNDrB���r���r�����api�printrm���r����r����r����r����ri���r#���r!����<module>r�������s��������� � � � ����������������������������������������&��&��&��&��&��&��,��,��,��,��,��,��,��,��,��,��,��,��-��-��-��-��-��-��2��2��2��2��2��2� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ������������������������������������������7�?�?�2�7�?�?�8�4�4�5�5�������"�$4���j���H� ���A5��A5��A5��A5��A5��A5��A5��A5�H ��z��� �)�+�+�C� �E�#�.�.� � ���� �E�#�)�)�C�)� � �!�!�!� �E�#�*�*�,�,���� �E�#�-�-�/�/���� �E�#�+�+�-�-��������r#���