
    s                        S r SSKrSSKrSSKrSSKrSSKJr  SSKJr  SSKJ	r
  SSKJr  SSKJ	r  SSKJr  SSKJr  SS	KJr  SS
KJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKr\R4                  " SS9r\R9                  SSSSS9  \R9                  SSSSS9  \R:                  " \5        SrS rS r \!S:X  a"  \RD                  " 5          \ " 5         SSS5        gg! , (       d  f       g= f)z1This package pulls images from a Docker Registry.    N)docker_creds)docker_name)docker_image)docker_http)docker_image_list)save)	v2_compat)logging_setup)patched)platform_args)retry)transport_poolz#Pull images from a Docker Registry.)descriptionz--namestorezaThe name of the docker image to pull and save. Supports fully-qualified tag or digest references.T)actionhelprequiredz	--tarballz Where to save the image tarball.zi-was-a-digestc                     [        U [        R                  5      (       a  U $ [        R                  " SR                  [	        U R                  5       5      [        S95      $ )Nz{repo}:{tag})repotag)
isinstancer   Tagformatstras_repository_DEFAULT_TAG)names    9lib/third_party/containerregistry/tools/docker_puller_.py_make_tag_if_digestr   D   sN    koo&&K	..t!!#$, / 8 
9 9    c                     [         R                  " [        5        [        R                  5       n [         R                  " U S9  [
        R                  " 5       nUR                  [        R                  5      n[        R                  " UR                  SS9nSU R                  ;   a!  [        R                  " U R                  5      nO [        R                  " U R                  5      n[         R"                  n [$        R&                  R)                  U5      n [4        R6                  " U R8                  SS9 n[,        R:                  " S	U5        [<        R>                  " UWU5       nURA                  5       (       ab  [B        RD                  " U 5      n	URG                  U	5       n
[H        R8                  " [K        U5      X5         S S S 5        S S S 5        S S S 5        g S S S 5        [,        R:                  " S
U5        [L        R>                  " X5X$5       nURA                  5       (       a2  [H        R8                  " [K        U5      X5         S S S 5        S S S 5        g  S S S 5        [,        R:                  " SU5        [N        R>                  " X5U5       n[P        RR                  " U5       n[H        R8                  " [K        U5      X5         S S S 5        S S S 5        S S S 5        g ! [*         a8  n[,        R.                  " SX65        [0        R2                  " S5         S nAGNS nAff = f! , (       d  f       GN[= f! , (       d  f       GNe= f! , (       d  f       N= f! , (       d  f       O= f S S S 5        O! , (       d  f       O= fS S S 5        g ! , (       d  f       g = f! [*         a7  n[,        R.                  " SX65        [0        R2                  " S5         S nAg S nAff = f)N)args   )size@z&Error resolving credentials for %s: %s   zw:)r   modez!Pulling manifest list from %r ...zPulling v2.2 image from %r ...zPulling v2 image from %r ...z%Error pulling and saving image %s: %s)*r
   DefineCommandLineArgsparser
parse_argsInitr   FactoryWithSourceTransportCallablehttplib2Httpr   Buildr   r   Digestr   r   SUPPORTED_MANIFEST_MIMESr   DefaultKeychainResolve	Exceptionloggingfatalsysexittarfileopentarballinfo
image_listFromRegistryexistsr   FromArgsresolver   r   
v2_2_imagev2_imager	   	V22FromV2)r"   retry_factory	transportr   acceptcredsetarimg_listplatformdefault_childv2_2_imgv2_imgs                r   mainrQ   L   s   %%f-				$$--/-;;HMMJ-!!-"5"5A>)DIIdii(D??499%D //&((006E	4<<d	3sll6=""4	:h??"++D1()]LL,T2MG *	 ; 
4	3: ll3T:""4	Bh??
,,*40(
@
 C 
4	3  C
 ll148  i8F  (H
,,*40(
@
 ) 9% 
4	3 
 MM:DDHHQKK *)	 ;: CB )(( 988% 
4	3	3. 
 MM94CHHQKKs   8K& N& 70N'=L=$"L+L=NN& 6N7MNN& 6NM;+"M M;NN& &
L(0-L##L(+
L:5L==
M	N
M	N 
M.*M;2	N;
N		NN& 
N#N& #N& &
O'0-O""O'__main__)#__doc__argparser6   r8   r:   containerregistry.clientr   r   containerregistry.client.v2r   rD   containerregistry.client.v2_2r   rC   r   r>   r   r	   containerregistry.toolsr
   r   r   containerregistry.transportr   r   r.   ArgumentParserr)   add_argumentAddArgumentsr   r   rQ   __name__Httplib2 r    r   <module>r`      s    8   
  1 0 @ 5 D I . 3 1 + 1 - 6  
	 	 5
7   ?     &H     6 "9:z zF  s   
C
C*