HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/compose/cli/__pycache__/docker_client.cpython-310.pyc
o

S�`��@sddlZddlZddlZddlmZddlmZddlmZddlmZddl	m
Z
ddlmZddl
mZd	d
lmZddlmZdd
lmZddlmZd	dlmZd	dlmZd	dlmZe�e�Zdd�Zdd�Zd!dd�Z d"dd�Z!dd�Z"d!dd�Z#d#dd �Z$dS)$�N)�	APIClient)�Context)�
ContextAPI)�	TLSConfig)�TLSParameterError)�kwargs_from_env)�home_dir�)�
verbose_proxy�)�Environment)�HTTP_TIMEOUT)�unquote_path)�	UserError)�generate_user_agent)�get_version_infocCstj�t�d�S)Nz.docker)�os�path�joinr�rr�;/usr/lib/python3/dist-packages/compose/cli/docker_client.py�default_cert_pathsrcCs@t||�}td||r
|jndd�}|r|jd|||jd�|S)N�composeF��host�tls�docker)�skip_tls_verify)�tls_config_from_optionsr�verify�set_endpoint)r�options�environmentr�ctxrrr�make_contexts

r$cCs
t�|�S�N)r�get_context)�namerrr�load_context$s
r(FcCslt|||t|�d�}|r4|����}t�td��t�d|j�t�dd�dd�|D���t	�
d|�S|S)	N)�version�contextr"�tls_version�fullzDocker base_url: %szDocker version: %sz, css�|]}d|VqdS)z%s=%sNr)�.0�itemrrr�	<genexpr>2s�zget_client.<locals>.<genexpr>r)�
docker_client�get_tls_versionr)�items�log�infor�base_urlrr
�VerboseProxy)r"�verboser)r*�client�version_inforrr�
get_client(s��r:cCsF|�dd�}|s
dSd�|�}tt|�st�d�|��dStt|�S)N�COMPOSE_TLS_VERSIONzPROTOCOL_{}z|The "{}" protocol is unavailable. You may need to update your version of Python or OpenSSL. Falling back to TLSv1 (default).)�get�format�hasattr�sslr3�warning�getattr)r"�compose_tls_version�
tls_attr_namerrrr17s

�
r1cCsV|pt�}|�d�pd}|�dd�}t|�d��}t|�d��}t|�d��}|�d�p0|�d�}|�d	d�}|durWt|||f�sWtj�|d
�}tj�|d�}tj�|d�}|rxt|||f�sxtj�t�d�}tj�t�d
�}tj�t�d�}t	|�}	t|||||	g�}
|d
ur�|
s�d
S|
r�d}|s�|r�||f}t
||||r�d|	d�Sd|	d�SdS)N�DOCKER_CERT_PATHz--tlsFz--tlscacertz	--tlscertz--tlskeyz--tlsverify�DOCKER_TLS_VERIFYz--skip-hostname-checkzcert.pemzkey.pemzca.pemT)�client_certr�ca_cert�assert_hostname�ssl_version)rr<r�get_boolean�anyrrrrr1r)r!r"�	cert_pathrrG�cert�keyr�skip_hostname_checkr+�
advanced_optsrFrrrrHsB
��rcCs8zt||d�}Wntytd��w|sC|�dd�}|�dd�}|s&dn|j}|r3td||d�}nt��}|rC|jd	|||d
�|�	�sKtd��|j
|d<|jrX|j|d<|r^||d<|�d
�}|rlt|�|d<nt
|d<t�|d<d|vr�d|�d�i|d<t|�dd��}	tdd|	i|��}
|�d�|
_|
S)z�
    Returns a docker-py client configured using environment variables
    according to the same logic as the official Docker client.
    )r"rIz�TLS configuration is invalid - make sure your DOCKER_TLS_VERIFY and DOCKER_CERT_PATH are set correctly.
You might need to run `eval "$(docker-machine env default)"`r5NrFrrr)r�tls_cfgrzwThe platform targeted with the current context is not supported.
Make sure the context in use targets a Docker Engine.
r)�COMPOSE_HTTP_TIMEOUT�timeout�
user_agent�LD_LIBRARY_PATH_ORIG�LD_LIBRARY_PATH�
credstore_env�COMPOSE_PARAMIKO_SSHr�use_ssh_clientr)rrrr<rrr�get_current_contextr �is_docker_host�Hostr�intr
rr�_original_base_url)r"r)r*r+�kwargsrrrrS�use_paramiko_sshr8rrrr0vsJ���




�r0r%)FNN)NNN)%�logging�os.pathrr?rrrrr�
docker.errorsr�docker.utilsr�docker.utils.configr�r
�config.environmentr�constr
�utilsr�errorsrrr�	getLogger�__name__r3rr$r(r:r1rr0rrrr�<module>s2



.