HEX
Server: LiteSpeed
System: Linux php-prod-1.spaceapp.ru 5.15.0-157-generic #167-Ubuntu SMP Wed Sep 17 21:35:53 UTC 2025 x86_64
User: xnsbb3110 (1041)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //usr/local/CyberCP/lib/python3.10/site-packages/docker/context/__pycache__/context.cpython-310.pyc
o

�h��@sbddlZddlZddlmZmZddlmZddlmZddl	m
Z
mZmZm
Z
Gdd�d�ZdS)	�N)�copyfile�rmtree)�ContextException)�	TLSConfig�)�get_context_host�get_meta_dir�
get_meta_file�get_tls_dirc@s�eZdZdZ		d+dd�Z		d,dd�Zd	d
�Zedd��Zed
d��Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zedd��Zedd ��Zed!d"��Zed#d$��Zed%d&��Zed'd(��Zed)d*��ZdS)-�Contextz
A context.NFc	Cs�|std��||_d|_||_i|_i|_d|_d|_|s5|r#|dkr%dn|}|t||�|d�i|_dS|�	�D]9\}}t
|t�sLtd|�d|����||j|<|dkrVq9|�
dt||��|j|d<t|�
d	|��|j|d	<q9dS)
NzName not providedz	IN MEMORY�swarm�docker��Host�
SkipTLSVerifyz$Unknown endpoint format for context z: rr)�	Exception�name�context_type�orchestrator�	endpoints�tls_cfg�	meta_path�tls_pathr�items�
isinstance�dictr�get�bool)	�selfrr�hostr�tls�default_endpoint�k�v�r$�I/usr/local/CyberCP/lib/python3.10/site-packages/docker/context/context.py�__init__sJ�����
�
���zContext.__init__r
cCs@t||�|d�|j|<|r||j|d<|r||j|<dSdS)Nr�DefaultNamespace)rrr)rrrr�skip_tls_verify�
def_namespacer$r$r%�set_endpoint>s
��zContext.set_endpointcCs|��S�N)�__call__�rr$r$r%�inspectKszContext.inspectcCs`t�|�}|r.||d|d�dd�|�dd�d�}|d�dd�|_|��t|�|_|SdS)N�Name�Metadata�StackOrchestrator�	Endpoints)rr�Type)r�
_load_metarr�_load_certsrr)�clsr�meta�instancer$r$r%�load_contextNs

�
zContext.load_contextc
Cs�t|�}tj�|�sdSi}zt|��
}t�|�}Wd�n1s#wYWnttt	fyC}zt
d|�d|���|�d}~ww|d��D]&\}}|dkrSqJ|�dt
dd��|d|d<t|�dd��|d|d<qJ|S)	Nz)Detected corrupted meta file for context z : r2r
rFrT)r	�os�path�isfile�open�json�load�OSError�KeyError�
ValueErrorrrrrr)r6r�	meta_file�metadata�f�er"r#r$r$r%r4\s6
������
�
�zContext._load_metac	Csi}t|j�}|j��D]m}tj�tj�||��sqd}d}d}t�tj�||��D]+}|�	d�r:tj�|||�}q*|�	d�rHtj�|||�}q*|�	d�rUtj�|||�}q*t
|||g�ryd}|dkrn|jd�dd�snd}t||f||d�||<q||_
||_dS)	N�ca�cert�keyr
rFT)�client_cert�ca_cert�verify)r
rr�keysr:r;�isdir�join�listdir�
startswith�allrrrr)	r�certs�tls_dir�endpointrKrHrI�filenamerLr$r$r%r5xs8



��

��
zContext._load_certsc	
Cs:t|j�}tj�|�st�|�tt|j�d��}|�t	�
|j��Wd�n1s,wYt|j�}|j
��D]S\}}tj�tj�||��sTt�tj�||��|j}|rht|tj�||tj�|���|jr�|j\}}t|tj�||tj�|���t|tj�||tj�|���q;t|j�|_t|j�|_dS)N�w)rrr:r;rN�makedirsr=r	�writer>�dumpsr0r
rrrOrKr�basenamerHrr)	r�meta_dirrErTrUr �ca_file�	cert_file�key_filer$r$r%�save�s4

�

�

�
��zContext.savecCs8tj�|j�rt|j�tj�|j�rt|j�dSdSr+)r:r;rNrrrr-r$r$r%�remove�s

�zContext.removecCsd|jj�d|j�d�S)N�<z: 'z'>)�	__class__�__name__rr-r$r$r%�__repr__�szContext.__repr__cCstj|��dd�S)N�)�indent)r>rZr,r-r$r$r%�__str__�szContext.__str__cCs"|j}|�|j�|�|j�|Sr+)r0�update�TLSMaterial�Storage)r�resultr$r$r%r,�szContext.__call__cCs
|jduSr+)rr-r$r$r%�is_docker_host�s
zContext.is_docker_hostcC�|jSr+)rr-r$r$r%r/��zContext.NamecCsF|jr|jdkr|j�dd�}|r|�dd�SdS|j|j�dd�S)Nrr
r)rrr)rrUr$r$r%r�szContext.HostcCrnr+)rr-r$r$r%�Orchestrator�rozContext.OrchestratorcCs$i}|jr
d|ji}|j||jd�S)Nr1)r/r0r2)rrr)rr7r$r$r%r0�s
�zContext.MetadatacCs2|j}|r	|dkrd}||j��vr|j|SdS)Nrr
)rrrM)rrIr$r$r%r�s
zContext.TLSConfigcCsHi}|j��D]\}}|j\}}tttjj|j||g��||<qd|iS)Nrj)	rrrH�list�mapr:r;r[rK)rrSrUr rHrIr$r$r%rj�s

��zContext.TLSMaterialcCsd|j|jd�iS)Nrk)�MetadataPath�TLSPath)rrr-r$r$r%rk�s
��zContext.Storage)NNNF)r
NNFN)rd�
__module__�__qualname__�__doc__r&r*r.�classmethodr9r4r5r`rarerhr,rm�propertyr/rrpr0rrjrkr$r$r$r%rsD
�,
�




	





r)r>r:�shutilrr�
docker.errorsr�
docker.tlsr�configrrr	r
rr$r$r$r%�<module>s