HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/duplicity/backends/__pycache__/_cf_cloudfiles.cpython-310.pyc
o

�~�_k�@sXddlmZddlZddlZddlmZddlmZddlmZGdd�dej	j
�ZdS)�)�strN)�log)�util)�BackendExceptionc@sHeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dS)�CloudFilesBackendz,
    Backend for Rackspace's CloudFiles
    c

CsBzddlm}ddlm}ddlm}ddlm}Wnty.}ztdt|���d}~ww||_	i}dt
jvr=td��d	t
jvrFtd
��t
jd|d<t
jd	|d<d
t
jvrat
jd
|d<n|j|d<|j
�d�}z	|di|��}	Wn#ty�}zt�d|jjt�|�ftjj�WYd}~nd}~ww|	�|�|_dS)Nr)�
Connection)�
ResponseError)�consts)�NoSuchObjectzZCloudfiles backend requires the cloudfiles library available from Rackspace.
Exception: %s�CLOUDFILES_USERNAMEz0CLOUDFILES_USERNAME environment variablenot set.�CLOUDFILES_APIKEYz/CLOUDFILES_APIKEY environment variable not set.�username�api_key�CLOUDFILES_AUTHURL�authurl�/z7Connection failed, please check your credentials: %s %s�)�
cloudfilesr�cloudfiles.errorsrr	r
�ImportErrorrr�resp_exc�os�environ�default_authurl�path�lstrip�	Exceptionr�
FatalError�	__class__�__name__r�uexc�	ErrorCode�connection_failed�create_container�	container)
�self�
parsed_urlrrr	r
�e�conn_kwargsr$�connrr�C/usr/lib/python3/dist-packages/duplicity/backends/_cf_cloudfiles.py�__init__"sD���



����zCloudFilesBackend.__init__cCs8t|t�r	tjjSt||j�r|jdkrtjjSdSdS)Ni�)�
isinstancer
rr!�backend_not_foundr�status)r%�	operationr'rrr*�_error_codeIs

�zCloudFilesBackend._error_codecCs|j�|�}|�|j�dS�N)r$�
create_object�load_from_filename�name)r%�source_path�remote_filename�sobjectrrr*�_putPszCloudFilesBackend._putcCsV|j�|�}t|jd��}|��D]}|�|�qWd�dS1s$wYdS)N�wb)r$r2�openr4�stream�write)r%r6�
local_pathr7�f�chunkrrr*�_getTs�"�zCloudFilesBackend._getcCsD|j��}|}t|�dkr |jj|dd�}||7}t|�dks
|S)Ni'���)�marker)r$�list_objects�len)r%�objs�keysrrr*�_listZs
�zCloudFilesBackend._listcCs|j�|�dSr1)r$�
delete_object)r%�filenamerrr*�_deletedszCloudFilesBackend._deletecCs|j�|�}d|jiS)N�size)r$�
get_objectrK)r%rIr7rrr*�_querygs
zCloudFilesBackend._queryN)r�
__module__�__qualname__�__doc__r+r0r8r@rGrJrMrrrr*rs'
r)�builtinsrr�duplicity.backend�	duplicityrr�duplicity.errorsr�backend�Backendrrrrr*�<module>s