
    2.ae                         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 ZddZd	 Zd
 ZddZd ZddZddZy)    N)utils)IS_WINDOWS_PLATFORM)DEFAULT_UNIX_SOCKET)find_config_filez	meta.jsonc                      d} t               }|r<	 t        |      5 }t        j                  |      j	                  dd      } d d d        | S | S # 1 sw Y   | S xY w# t
        $ r Y yw xY w)NdefaultcurrentContext)r   openjsonloadget	Exception)namedocker_cfg_pathfs      7/usr/lib/python3/dist-packages/docker/context/config.pyget_current_context_namer      st    D&(O	o& E!yy|''(8)DE K4K	E K  		s.   A &AA AA A 	A&%A&c                    | dk(  rd } t               }i }|r*	 t        |      5 }t        j                  |      }d d d        |j                  dd       }|r| s|d= n	| r| |d<   ny 	 t        |d      5 }t        j                  ||d       d d d        y # 1 sw Y   [xY w# t        $ r}|cY d }~S d }~ww xY w# 1 sw Y   y xY w# t        $ r}|cY d }~S d }~ww xY w)Nr   r	   w   )indent)r   r
   r   r   r   r   dump)r   r   configr   ecurrent_contexts         r   #write_context_name_to_docker_configr      s    y&(OF	o& &!1& jj!148Ot#$	#' /3' 	+1IIfa*	+ 	+& & 	H		+ 	+ so   B BB $C 0B6	C BB 	B3'B.(B3.B36B?;C ?C 	CCCCc                 f    t        j                  | j                  d            j                         S )Nzutf-8)hashlibsha256encode	hexdigestr   s    r   get_context_idr#   2   s#    >>$++g./99;;    c                      t         j                  j                  t         j                  j                  t	               xs d      d      S )N contexts)ospathjoindirnamer    r$   r   get_context_dirr-   6   s-    77<<(8(:(@bA:NNr$   c                     t         j                  j                  t               d      }| r)t         j                  j                  |t	        |             S |S )Nmeta)r(   r)   r*   r-   r#   )r   meta_dirs     r   get_meta_dirr1   :   s;    ww||O-v6Hww||HnT&:;;Or$   c                 \    t         j                  j                  t        |       t              S N)r(   r)   r*   r1   METAFILEr"   s    r   get_meta_filer5   A   s    77<<T*H55r$   c                     t               }| r+t        j                  j                  |dt	        |       |      S t        j                  j                  |d      S )Ntls)r-   r(   r)   r*   r#   )r   endpointcontext_dirs      r   get_tls_dirr:   E   s@    !#Kww||Kt0DhOO77<<U++r$   c                 p    t        j                  | t        |      }|t        k(  r|j	                  d      S |S )Nzhttp+)r   
parse_hostr   r   strip)r)   r7   hosts      r   get_context_hostr?   L   s4    D"5s;D""zz'""Kr$   r3   )Nr&   )NF)r(   r   r   dockerr   docker.constantsr   r   docker.utils.configr   r4   r   r   r#   r-   r1   r5   r:   r?   r,   r$   r   <module>rC      sH    	    0 0 0	2<O6,r$   