Submit
Path:
~
/
/
usr
/
lib64
/
python3.6
/
site-packages
/
borg
/
testsuite
/
__pycache__
/
File Content:
archiver.cpython-36.pyc
3 �ie\ � @ s� d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl Z d dl Z d dlZd dlZd dl Z d dlZd dlZd dlZd dlmZmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZmZ d d lmZ d dlZyd dl Z W n e!k �r Y nX d dl"Z"d dl#Z"d dl$m%Z%m&Z&m'Z' d dl(m)Z)m*Z*m+Z+m,Z, d d l-m.Z.m/Z/m0Z0 d dl1m2Z2m3Z3 d dl4T d dl5m6Z6m7Z7 d dl8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z> d dl?m@Z@mAZA d dlBmCZC d dl&mDZDmEZE d dl&mFZFmGZGmHZH d dl&mIZImJZJmKZK d dl&mLZL d dl&mMZM d dl&mNZN d dlOmPZPmQZQ d dlRmSZSmTZTmUZU d dlVmWZW d dlXmYZY d dlZm[Z[ d dl\m]Z]m^Z^ d d l_m`Z` d!d"l$maZambZb d!d#l$mcZcmdZdmeZemfZf d!d$l$mgZgmhZhmiZimjZjmkZk d!d%l'mlZl d!d&lmmnZn d!d'l$moZo ejpjqejpjrejpjset�d(��Zudd)dd*d)d+�d,d-�Zvd.d/� Zwyevd0d1d2d3� d4d5gZxW n eyk �rj d4gZxY nX ejzexd6�d7d8� �Z{d9d:� Z|d;Z}ej~jejpj�e}� d<e} d=�d>d?� �Z�G d@dA� dAec�Z�G dBdC� dCe��Z�ej�d5exkdD�G dEdF� dFe���Z�G dGdH� dHe��Z�G dIdJ� dJe��Z�G dKdL� dLe��Z�G dMdN� dNe��Z�G dOdP� dPe��Z�G dQdR� dRe��Z�dSdT� Z�dUdV� Z�G dWdX� dX�Z�G dYdZ� dZ�Z�d[d\� Z�d]d^� Z�ej~j�d_e�e�� j�� ��d`da� �Z�ej~j�dbe�e.j�j�� ��dcdd� �Z�dS )e� N)� unhexlify� b2a_base64)�ConfigParser)�datetime)�timezone)� timedelta)�sha256)�BytesIO�StringIO)�patch� )�xattr�helpers�platform)�Archive�ChunkBuffer� flags_noatime�flags_normal)�Archiver�parse_storage_quota�PURE_PYTHON_MSGPACK_WARNING)�Cache� LocalCache)�*)� bytes_to_long�num_aes_blocks)�KeyfileKeyBase�RepoKey� KeyfileKey� Passphrase�TAMRequiredError�ArchiveTAMRequiredError)�RepoIdMismatch�NotABorgKeyFile)�FileIntegrityError)�Location�get_security_dir)�Manifest�MandatoryFeatureUnsupported�ArchiveInfo)�EXIT_SUCCESS�EXIT_WARNING� EXIT_ERROR)� bin_to_hex)�MAX_S)�msgpack)� RstToTextLazy�rst_to_terminal)� IECommand�PatternMatcher� parse_pattern)�Item)� LockFailed)� setup_logging)�RemoteRepository�PathNotAllowed)� Repository� )�has_lchflags� has_llfuse)�BaseTestCase� changedir�environment_variable� no_selinux)�are_symlinks_supported�are_hardlinks_supported�are_fifos_supported�is_utime_fully_supported�is_birthtime_fully_supported)�fakeroot_detected)�make_attic_repo)�keyz..F� )�archiver�fork�exe�input� binary_outputc O s� |r�yX|d krt jddf}n$t|t�r.|f}nt|t�s@td��tj|| tj|d�}d} W nZ tj k r� } z| j }| j} W Y d d } ~ X n, tk r� } zd}| j } W Y d d } ~ X nX |r�| |fS | tj|�fS �nt jt jt j }}} z�t|j� �t _t|�t j_t� }tj|dd� } t _t _| d k�r8t� } d d � | _t| _tt_y| jt|��}W nF tk �r� } z(|j � | j |�r�|j!� n |j!� j� fS d } ~ X nX | j"|�} |j � | |�r�|j!� n |j!� j� fS ||| t _t _t _X d S )Nz-mz borg.archiverz"exe must be None, a tuple or a str)�stderrrN r � zutf-8)�encodingc W s d S )N� )�argsrS rS � /usr/lib64/python3.6/archiver.py�<lambda>d s zexec_cmd.<locals>.<lambda>)#�sys� executable� isinstance�str�tuple� ValueError� subprocessZcheck_outputZSTDOUTZCalledProcessError�output� returncode� SystemExit�code�os�fsdecode�stdin�stdoutrP r �decoder �buffer�io� TextIOWrapperr Z prerun_checksr* � exit_coder � parse_args�list�flush�getvalueZrun)rK rL rM rN rO rT �kw�borgr^ �ret�erd re rP Zoutput_textrS rS rU �exec_cmdE sN , rs c C s6 t jd�sdS tjddgtjd�} | j� \}}d|kS )N�tarFz --version)re s GNU tar)�shutil�whichr] �Popen�PIPEZcommunicate)�popenre rP rS rS rU �have_gnutarv s rz �helpzborg.exeT)rM rL �python�binary)Zparamsc s8 | j dkrd � n| j dkr d� ntd��� fdd�}|S )Nr| r} zborg.exez"param must be 'python' or 'binary'c s t | � dd�|��S )NT)rM rL )rs )rT ro )rM rS rU �exec_fn� s zcmd.<locals>.exec_fn)Zparamr\ )Zrequestr~ rS )rM rU �cmd� s r c C s� |j d�}|j d�}|j d�}|jd�jd� | dddt|� �\}}|tksRt�| d d | t|��\}}|tksvt�tt|���$ | dd | �\}}|tks�t�W d Q R X | dd | d�\}}|tks�t�| d d | t|��\}}|tks�t�d S ) N�reporN r^ Z test_file�content�initz--encryption=nonez%s�createz%s::archive�extractzdoes/not/match) �mkdir�join�writerZ r* �AssertionErrorr? r+ r, )r �tmpdirr� rN r^ �rc�outrS rS rU �test_return_codes� s r� z/tmp/borg-mountzneeds a 16MB fs mounted on %s)�reasonc ) C s ddd�}t dd���� t}tjj|�s,t�tjj|d�}tjj|d�}tjj|d�}�x�td �D �]�}tj |dd � tj |dd � ||ddd d� | d|�\}}|t kr�td||� |t ks�t�z�d\} } x�| �r�| d7 } y||dd� W n6 tk �r" } z|j t jk�rP � W Y d d }~X nX z6| dd|| f |�\}}|t k} | �sXtd||� W d tj tjj|d�dd � tjtjj|d�� X q�W W d tj |dd � X | d|�\}}|t k�r�td||� | dd|�\}}|t k�r�td||� |t ksbt�qbW W d Q R X d S )NTc S s� t j| dd� tj| � |r<tjd|�}|dkr<tjd|�}xLt|�D ]@}tjj| d| �}t |d��}tj |�}|j|� W d Q R X qFW d S )NT)� ignore_errorsr; zfile%03d�wb)ru �rmtreerb r� �randomZrandint�range�pathr� �open�urandomr� )�dir�count�size�rnd�i�fn�f�datarS rS rU � make_files� s z"test_disk_full.<locals>.make_files�YES)�!BORG_CHECK_I_KNOW_WHAT_I_AM_DOINGr� rN �reserve�d )r� �P i�� F)r� r� r r; � i@ r� z%s::test%03dzlock.exclusivezlock.rosterrl �checkz--repair)T)Tr )r@ �DF_MOUNTrb r� �existsr� r� r� ru r� r* �print�OSError�errnoZENOSPC�remove)r r� �mountr� rN r� �jr� r� �successr� �errrS rS rU �test_disk_full� sP r� c @ sZ e Zd ZdZdZdZdd� Zdd� Zdd � Zd d� Z dd � Z dd� Zddd�Zdd� Z dS )�ArchiverTestCaseBaseNFrQ c C s� dt jd<