o
    2.ae                     @   s   d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZ d dlm	Z	 dZ
dd Zdd	d
Zdd Zdd ZdddZdd ZdddZdddZdS )    N)utils)IS_WINDOWS_PLATFORM)DEFAULT_UNIX_SOCKET)find_config_filez	meta.jsonc                  C   sl   d} t  }|r4z"t|}t|dd} W d    W | S 1 s"w   Y  W | S  ty3   Y dS w | S )NdefaultcurrentContext)r   openjsonloadget	Exception)namedocker_cfg_pathf r   7/usr/lib/python3/dist-packages/docker/context/config.pyget_current_context_name   s   
r   c              
   C   s  | dkrd } t  }i }|r=zt|}t|}W d    n1 s"w   Y  W n ty< } z|W  Y d }~S d }~ww |dd }|rK| sK|d= n	| rR| |d< nd S z"t|d}tj||dd W d    W d S 1 sow   Y  W d S  ty } z|W  Y d }~S d }~ww )Nr   r   w   )indent)r   r   r	   r
   r   r   dump)r   r   Zconfigr   eZcurrent_contextr   r   r   #write_context_name_to_docker_config   s8   

&r   c                 C   s   t | d S )Nzutf-8)hashlibZsha256encodeZ	hexdigestr   r   r   r   get_context_id2   s   r   c                   C   s   t jt jt p
ddS )N Zcontexts)ospathjoindirnamer   r   r   r   r   get_context_dir6   s   r"   c                 C   s*   t jt d}| rt j|t| S |S )Nmeta)r   r   r    r"   r   )r   Zmeta_dirr   r   r   get_meta_dir:   s   r$   c                 C   s   t jt| tS N)r   r   r    r$   METAFILEr   r   r   r   get_meta_fileA   s   r'   r   c                 C   s.   t  }| rtj|dt| |S tj|dS )Ntls)r"   r   r   r    r   )r   ZendpointZcontext_dirr   r   r   get_tls_dirE   s   r)   Fc                 C   s$   t | t|}|tkr|dS |S )Nzhttp+)r   Z
parse_hostr   r   strip)r   r(   Zhostr   r   r   get_context_hostL   s   
r+   r%   )Nr   )NF)r   r	   r   Zdockerr   Zdocker.constantsr   r   Zdocker.utils.configr   r&   r   r   r   r"   r$   r'   r)   r+   r   r   r   r   <module>   s     


