
    p                         d Z ddlmZ ddlmZ ddlm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d
lmZ dZ G d dej                        Zy)zBThis package provides tools for appending layers to docker images.    )absolute_import)division)print_functionN)docker_name)docker_digest)docker_http)docker_image)metadatazGsha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4c                   :    e Zd ZdZ	 	 d	dZd Zd Zd Zd Zd Z	y)
LayerzAppends a new layer on top of a base image.

  This augments a base docker image with new files from a gzipped tarball,
  adds environment variables and exposes a port.
  Nc                 .   || _         t        j                  | j                   j                               }t        j                  | j                   j	                               }|xs t        j                         }|j                  t        j                        }|r|| _
        t        j                  | j                        | _        |d   j                  | j                  t        j                   t#        | j                        d       |s.t        j                  | j%                  | j                              }|j                  |t#        d      d g      }n'|j                  t        j                  dd      g      }t        j                  ||      }t        j&                  |d	
      | _        | j(                  j+                  d      }t        j                  |      |d   d<   t#        |      |d   d<   t        j&                  |d	
      | _        y)a  Creates a new layer on top of a base with optional tar.gz.

    Args:
      base: a base DockerImage for a new layer.
      tar_gz: an optional gzipped tarball passed as a bytes with filesystem
          changeset.
      diff_id: an optional string containing the digest of the
          uncompressed tar_gz.
      overrides: an optional metadata.Overrides object of properties to override
          on the base image.
    )
created_bylayers)digest	mediaTypesizezsha256:N)r        T)	sort_keysutf8configr   r   )_basejsonloadsmanifestconfig_filer
   	OverridesOverrider   
USER_AGENT_blobr   SHA256	_blob_sumappendr   
LAYER_MIMElenuncompressed_blobdumps_config_fileencode	_manifest)selfbasetar_gzdiff_id	overridesr   r   utf8_encoded_configs           8lib/third_party/containerregistry/client/v2_2/append_.py__init__zLayer.__init__'   s     DJzz$**--/0H**TZZ3356K1X//1I""k.D.D"EIdj$++DJJ7dnxNN"--djj/! 	
 &&t'='=dnn'MN $$WS^_-E,F$Gi $$]-A-A#r-J,K$Li##K;K

;$?D++226:#0#7#78K#LHXx !$%8!9HXvZZD9DNr   c                     | j                   S 	Override.)r*   r+   s    r1   r   zLayer.manifestW   s    >>r   c                     | j                   S r4   )r(   r6   s    r1   r   zLayer.config_file[   s    r   c                 n    || j                   k(  r| j                  S | j                  j                  |      S r4   )r"   r    r   blob)r+   r   s     r1   r9   z
Layer.blob_   s+    ZZ::??6""r   c                     | S r4    r6   s    r1   	__enter__zLayer.__enter__f   s    Kr   c                      y)r5   Nr;   )r+   unused_typeunused_valueunused_tracebacks       r1   __exit__zLayer.__exit__j   s    
r   )NN)
__name__
__module____qualname____doc__r2   r   r   r9   r<   rA   r;   r   r1   r   r       s.     	.:`#r   r   )rE   
__future__r   r   r   r   containerregistry.clientr   containerregistry.client.v2_2r   r   r	    containerregistry.transform.v2_2r
   _EMPTY_LAYER_TAR_IDDockerImager   r;   r   r1   <module>rL      sC    I &  %  0 7 5 6 5 ` LL$$ Lr   