관리-도구
편집 파일: validate.cpython-311.pyc
� ����JJ�Lb����������������������D����d�dl�Z�d�dlZd�dlZd�dlZd�dlZd�dlmZ�d�dlmZ�d�dl m Z �d�dlmZm Z mZ�d�dlmZ�d�dlmZmZ��ej��������e������������Z�ej��������d������������Z�G�d ��d e������������Z�eddd g������������Z�G�d��de������������Z�G�d��de ������������Zd��Zd��Zd��Z dS�)�����N)� namedtuple��wraps)� Validator)�ANTIVIRUS_MODE� BackupRestore�Malware)� LicenseCLN)�BackupSystem�get_backendz^[A-Fa-f0-9]{64}$c�������������������������e�Zd�Zdd�ZdS�)�ValidationErrorNc������������������b�����t����������|t����������������������r |g|�_��������n||�_��������|pi�|�_��������d�S��N)� isinstance�str�errors� extra_data)�selfr���r���s��� �W/opt/imunify360/venv/lib/python3.11/site-packages/defence360agent/rpc_tools/validate.py�__init__zValidationError.__init__���s6�������f�c�"�"�� !�!�(�D�K�K� �D�K�$�*����������r���)�__name__� __module__�__qualname__r�����r���r���r���r������s(��������������+��+��+��+��+��+r���r����OrderByBase�column_name�descc��������������������4�������e�Zd�Z��fd�Zed����������������Z��xZS�)�OrderByc������������������J������t���������������������������������������������|�||������������S�r���)�super�__new__)�clsr���r���� __class__s��� �r���r$���zOrderBy.__new__$���s��������w�w���s�K��6�6�6r���c���������������������� �t����������j��������d���������������������������������|������������dd����������\��}}�|�||dk����������������S�#�t����������$�r5}t����������d���������������������t����������|������������|�������������������������d}~ww�xY�w)zP :param ob_string: for example: 'user+', 'id-' :return: z^(.+)([+|-])��������-zIncorrect order_by: ({}): {}N)�re�compile�split� ValueError�formatr���)r%���� ob_string�col_name�sign�es��� r���� fromstringzOrderBy.fromstring'���s������� ��Z��7�7�=�=�i�H�H��2��N�N�H�d��3�x����-�-�-���� �� �� ��.�5�5�c�!�f�f�i�H�H����� ����� ���s����AA�� B�0A>�>B)r���r���r���r$����classmethodr4���� __classcell__�r&���s���@r���r!���r!���#���sS���������������7��7��7��7��7��������[���������r���r!���c���������������������������e�Zd�ZdZ��fd�Zd��Zd��Zd��Zd��Zde fd�Z d ��Zd ��Zd��Z defd �Zd��Zd��Zd��Zd��Zd��Zd��Zd��Zde fd�Zd��Zd��Z��xZS�)�SchemaValidatorz%Y-%m-%dc������������������H�������t������������������������j��������|i�|���i�|�_��������d�S�r���)r#���r���r���)r����args�kwargsr&���s��� �r���r���zSchemaValidator.__init__9���s*������������$�)�&�)�)�)�����r���c������������������d�����t����������|t����������������������r|S�t�������������������������������|������������S�r���)r���r!���r4����r����values��� r����_normalize_coerce_order_byz*SchemaValidator._normalize_coerce_order_by=���s-�������e�W�%�%�� ��L��!�!�%�(�(�(r���c������������������h�����t����������|����������������������������������������������������������������������������������S�r���)r����strip�lowerr>���s��� r����_normalize_coerce_sha256hashz,SchemaValidator._normalize_coerce_sha256hashB���s&�������5�z�z���!�!�'�'�)�)�)r���c������������������4�����t�����������rdS�|�t����������j��������S�|S�)NF)r���r ����DATABASE_SCAN_ENABLEDr>���s��� r����_normalize_coerce_scan_dbz)SchemaValidator._normalize_coerce_scan_dbE���s"�������� ��5��=��0�0��r���c������������������4�����t����������|t����������������������rdS�dS�)NTF)r���r!���r>���s��� r����_validate_type_order_byz'SchemaValidator._validate_type_order_byL���s�������e�W�%�%�� ��4��ur���r?���c������������������t�����t��������������������������������t����������|�����������������������������������������������������������S�r���)� SHA256_REGEXP�matchr���rB���r>���s��� r����_validate_type_sha256hashz)SchemaValidator._validate_type_sha256hashQ���s(�������"�"�3�u�:�:�#3�#3�#5�#5�6�6�6r���c�����������������������|rJt�����������j�����������������������������|������������s-|����������������������|d���������������������|�������������������������dS�dS�dS�)z#{'type': 'boolean', 'empty': False}zPath {} should be absoluteN)�os�path�isabs�_errorr/���)r����is_absolute_path�fieldr?���s��� r����_validate_is_absolute_pathz*SchemaValidator._validate_is_absolute_pathT���sc�������� O��7�=�=��'�'�� O����E�#?�#F�#F�u�#M�#M�N�N�N�N�N� O�� O� O�� Or���c�����������������������|r? �|����������������������d�������������dS�#�t����������$�r�|����������������������|d�������������Y�dS�w�xY�wdS�)z{'type': 'boolean'}�asciizMust only contain ascii symbolsN)�encode�UnicodeEncodeErrorrR���)r����isasciirT���r?���s��� r����_validate_isasciiz!SchemaValidator._validate_isasciiZ���sr�������� F� F����W�%�%�%�%�%��%�� F�� F�� F����E�#D�E�E�E�E�E�E� F���� F�� Fs������ ?�?c������������������ �����t����������|������������S�r���)�intr>���s��� r����_normalize_coerce_intz%SchemaValidator._normalize_coerce_intb���s�������5�z�z�r����returnc�����������������������t����������j��������t����������j������������������������������������������������������������������������������������������S�r���)�math�ceil�datetime�now� timestamp)r����documents��� r����_normalize_default_setter_nowz-SchemaValidator._normalize_default_setter_nowe���s-�������y��*�.�.�0�0�:�:�<�<�=�=�=r���c�����������������������dS�)a;��{'type': 'dict', 'empty': False, 'schema': { 'users': {'type': 'list', 'allowed': ['non-root', 'root'], 'empty': False}, 'require_rpc': {'type': 'string', 'empty': True, 'default': 'running', 'allowed': ['running', 'stopped', 'any', 'direct']} }} Nr����r���r;���r<���s��� r���� _validate_clizSchemaValidator._validate_clii�������������r���c�����������������������dS�)z"{'type': 'string', 'empty': False}Nr���ri���s��� r����_validate_helpzSchemaValidator._validate_helps���rk���r���c�����������������������dS�)z4{'type': 'boolean', 'empty': True, 'default': False}Nr���ri���s��� r����_validate_positionalz$SchemaValidator._validate_positionalw���rk���r���c�����������������������dS�)z!{'type': 'string', 'empty': True}Nr���ri���s��� r����_validate_return_typez%SchemaValidator._validate_return_type{���rk���r���c�����������������������dS�)z5{'type': 'boolean', 'empty': False, 'default': False}Nr���ri���s��� r����_validate_cli_onlyz"SchemaValidator._validate_cli_only~���rk���r���c�����������������������dS�)z� Parameter can be passed via the specified environment variable. The value specified via a CLI argument takes precedence. The rule's arguments are validated against this schema: {'type': 'string', 'empty': False} Nr���ri���s��� r����_validate_envvarz SchemaValidator._validate_envvar����rk���r���c�����������������������dS�)a�� Parameter will only be accepted if provided via environment variable specified by `envvar`. It will be rejected if passed as a CLI argument. The rule's arguments are validated against this schema: {'type': 'boolean', 'default': False} Nr���ri���s��� r����_validate_envvar_onlyz%SchemaValidator._validate_envvar_only����rk���r���c������������������H�����|rt�����������j�����������������������������|������������S�|S�r���)rO���rP����abspathr>���s��� r����_normalize_coerce_pathz&SchemaValidator._normalize_coerce_path����s#�������� *��7�?�?�5�)�)�)��r���c������������������N�����t����������|t����������������������r|S�t����������|������������S�r���)r���r���r���r>���s��� r����_normalize_coerce_backup_systemz/SchemaValidator._normalize_coerce_backup_system����s'�������e�\�*�*�� ��L��5�!�!�!r���c������������������t�����t�����������j��������rt����������j����������������������s|����������������������|d�������������d�S�d�S�)NzBackup is not enabled!)r����ENABLED� backup_systemrR���)r���rT���r?���s��� r����_validator_backup_is_enabledz,SchemaValidator._validator_backup_is_enabled����sB�������%�� 9�-�*E�*G�*G�� 9��K�K��7�8�8�8�8�8� 9�� 9r���)r���r���r����_DATE_FORMATr���r@���rD���rG���rI���r���rM���rU���r[���r^���r]���rg���rj���rm���ro���rq���rs���ru���rw���rz���r|���r����r6���r7���s���@r���r9���r9���6���s����������������L����������)��)��)� *��*��*����������� 7�s��7��7��7��7�O��O��O�F��F��F������>���>��>��>��>������1��1��1�C��C��C�0��0��0�D��D��D������������C���������"��"��"�9��9��9��9��9��9��9r���r9���c������������������$����|�����������������������||id�������������}|����������������������|||���������i������������sNt�������������������������������d���������������������|||�j���������������������������������t ����������|�j��������|�j���������������������|�j��������|���������S�)NT)�always_return_documentz6Validation error with command {}, params {}, errors {}) � normalized�validate�logger�warningr/���r���r���r���rf���)� validator�hashable�params�valuess��� r���r����r��������s������� � !� !� �6��4��"�����F�����x���)9�:�;�;��F����D�K�K��&�)�"2� �� � �� �� � ��i�.� �0D�E�E�E���h�'�'r���c���������������������������fd�}|S�)Nc������������������@��������t���������������������������fd���������������}|S�)Nc�����������������������K����t����������|�d���������������������}t�����������||�d���������������������|�d<�����|�g|�R�i�|����d�{V���}|S�)N�commandr����)�tupler����)�requestr;���r<���r�����result�fr����s��� ��r����wrapperz5validate_middleware.<locals>.wrapped.<locals>.wrapper����sq������������W�Y�/�0�0�H� (��8�W�X�%6�!��!�G�H����1�W�6�t�6�6�6�v�6�6�6�6�6�6�6�6�F��Mr���r���)r����r����r����s���` �r����wrappedz$validate_middleware.<locals>.wrapped����s9�������� �q��� �� �� �� �� �� �� ���r���r���)r����r����s���` r����validate_middlewarer��������s#������� �� �� �� �� ���Nr���c������������������p��������t����������d�������������t���������������������������fd���������������}t����������r|S���S�)zz Decorator for CLI commands methods that ensures that the AV+ license is valid. :raises ValidationError: zImunifyAV+ license requiredc��������������������N����K����t����������j����������������������r��|�i�|����d�{V���S���r���)r ����is_valid_av_plus)r;���r<���� exception�funcs��� ��r���� async_wrapperz/validate_av_plus_license.<locals>.async_wrapper����sD������������&�(�(�� /���t�.�v�.�.�.�.�.�.�.�.�.��r���)r���r���r���)r����r����r����s���` @r����validate_av_plus_licenser��������sW��������� � =�>�>�I� �4�[�[������������[�� �������Kr���)!rc����loggingra���rO���r+����collectionsr���� functoolsr����cerberus.validatorr���� defence360agent.contracts.configr���r���r ����!defence360agent.contracts.licenser ����%defence360agent.subsys.backup_systemsr���r���� getLoggerr���r����r,���rK���� Exceptionr���r���r!���r9���r����r����r����r���r���r����<module>r�������s��������������������� � � � �� � � � ��"��"��"��"��"��"��������������(��(��(��(��(��(�������������������� �9��8��8��8��8��8��K��K��K��K��K��K��K��K� �� �8� $� $���� �.�/�/� �+��+��+��+��+�i��+��+��+���j����(?�@�@�����������k�������&l9��l9��l9��l9��l9�i��l9��l9��l9�^(��(��(� �� �� � ��������r���