
    2.a&                        d dl Z  G d de      Zd Z G d de j                  j
                  e      Z G d de      Z G d	 d
e      Z G d de      Z	 G d de      Z
 G d de      Z G d de      Z G d de      Z G d de      Z G d dee      Z G d de      Z G d de      Z G d de      Z G d d e      Zd! Z G d" d#e      Z G d$ d%e      Z G d& d'e      Z G d( d)e      Zy)*    Nc                       e Zd ZdZy)DockerExceptionz
    A base class from which all other exceptions inherit.

    If you want to catch all errors that the Docker SDK might raise,
    catch this base exception.
    N)__name__
__module____qualname____doc__     //usr/lib/python3/dist-packages/docker/errors.pyr   r      s    r
   r   c                 H   | j                   }	 |j                         d   }t
        }|j                  dk(  r6|r.dt        |      v sdt        |      v sdt        |      v rt        }nt        } || ||      # t        $ r! |j                  xs dj	                         }Y w xY w)zH
    Create a suitable APIError from requests.exceptions.HTTPError.
    message i  zNo such imagez+not found: does not exist or no pull accesszrepository does not exist)responseexplanation)
r   json
ValueErrorcontentstripAPIErrorstatus_codestrImageNotFoundNotFound)er   r   clss       r   $create_api_error_from_http_exceptionr      s     zzH7mmoi0 Cs"Os;/??I";/073{;KKCC
a(
<<  7''-24467s   A7 7'B! B!c                   P     e Zd ZdZd fd	Z fdZed        Zd Zd Z	d Z
 xZS )	r   z%
    An HTTP error from the API.
    c                 @    t         |   |       || _        || _        y N)super__init__r   r   )selfr   r   r   	__class__s       r   r!   zAPIError.__init__&   s!     	! &r
   c                    t         |          }| j                         rPdj                  | j                  j
                  | j                  j                  | j                  j                        }n_| j                         rOdj                  | j                  j
                  | j                  j                  | j                  j                        }| j                  r| d| j                   d}|S )Nz{} Client Error for {}: {}z{} Server Error for {}: {}z ("z"))
r    __str__is_client_errorformatr   r   urlreasonis_server_errorr   )r"   r   r#   s     r   r%   zAPIError.__str__-   s    '/#!299))4==+<+<$$&G !!#299))4==+<+<$$&G  	T%5%5$6b9Gr
   c                 H    | j                   | j                   j                  S y r   )r   r   r"   s    r   r   zAPIError.status_code?   s!    ==$==,,, %r
   c                 F    | j                         xs | j                         S r   )r&   r*   r,   s    r   is_errorzAPIError.is_errorD   s    ##%?)=)=)??r
   c                 P    | j                   yd| j                   cxk  xr dk  S c S )NFi    r   r,   s    r   r&   zAPIError.is_client_errorG   -    #d&&,,,,,r
   c                 P    | j                   yd| j                   cxk  xr dk  S c S )NFr0   iX  r1   r,   s    r   r*   zAPIError.is_server_errorL   r2   r
   )NN)r   r   r   r   r!   r%   propertyr   r.   r&   r*   __classcell__r#   s   @r   r   r   "   s6    '$ - -@-
-r
   r   c                       e Zd Zy)r   Nr   r   r   r	   r
   r   r   r   R       r
   r   c                       e Zd Zy)r   Nr8   r	   r
   r   r   r   V   r9   r
   r   c                       e Zd Zy)InvalidVersionNr8   r	   r
   r   r<   r<   Z   r9   r
   r<   c                       e Zd Zy)InvalidRepositoryNr8   r	   r
   r   r>   r>   ^   r9   r
   r>   c                       e Zd Zy)InvalidConfigFileNr8   r	   r
   r   r@   r@   b   r9   r
   r@   c                       e Zd Zy)InvalidArgumentNr8   r	   r
   r   rB   rB   f   r9   r
   rB   c                       e Zd Zy)DeprecatedMethodNr8   r	   r
   r   rD   rD   j   r9   r
   rD   c                       e Zd Zd Zd Zy)TLSParameterErrorc                     || _         y r   msgr"   rI   s     r   r!   zTLSParameterError.__init__o   	    r
   c                      | j                   dz   S )Nz. TLS configurations should map the Docker CLI client configurations. See https://docs.docker.com/engine/articles/https/ for API details.rH   r,   s    r   r%   zTLSParameterError.__str__r   s    xx . / 	/r
   Nr   r   r   r!   r%   r	   r
   r   rF   rF   n   s    /r
   rF   c                       e Zd Zy)NullResourceNr8   r	   r
   r   rO   rO   y   r9   r
   rO   c                   "     e Zd ZdZ fdZ xZS )ContainerErrorzK
    Represents a container that has exited with a non-zero exit code.
    c                     || _         || _        || _        || _        || _        |d| nd}dj                  ||||      }t        |   |       y )Nz: r   z=Command '{}' in image '{}' returned non-zero exit status {}{})	containerexit_statuscommandimagestderrr'   r    r!   )	r"   rS   rT   rU   rV   rW   errrI   r#   s	           r   r!   zContainerError.__init__   sb    "&
%16(mr$fWe[#F 	 	r
   )r   r   r   r   r!   r5   r6   s   @r   rQ   rQ   }   s     r
   rQ   c                       e Zd Zd Zy)StreamParseErrorc                     || _         y r   rH   )r"   r)   s     r   r!   zStreamParseError.__init__   s	    r
   N)r   r   r   r!   r	   r
   r   rZ   rZ      s    r
   rZ   c                        e Zd Z fdZ xZS )
BuildErrorc                 @    t         |   |       || _        || _        y r   )r    r!   rI   	build_log)r"   r)   r_   r#   s      r   r!   zBuildError.__init__   s     "r
   )r   r   r   r!   r5   r6   s   @r   r]   r]      s    # #r
   r]   c                       e Zd Zy)ImageLoadErrorNr8   r	   r
   r   ra   ra      r9   r
   ra   c                 &   t        |      D cg c]  }d| d
 }}|  dg}t        |      dk(  r|j                  d       n|j                  d       |j                  dj                  |             t	        dj                  |            S c c}w )N'z()    z#got an unexpected keyword argument z!got unexpected keyword arguments z, r   )sortedlenappendjoin	TypeError)namekwargskquoted_kwargstexts        r   create_unexpected_kwargs_errorro      s    '-f~6!q1X6M6fCL>D
=Q9:78KK		-()RWWT]## 7s   Bc                       e Zd Zd Zd Zy)MissingContextParameterc                     || _         y r   param)r"   rt   s     r   r!   z MissingContextParameter.__init__   s	    
r
   c                      d| j                    S )Nzmissing parameter: rs   r,   s    r   r%   zMissingContextParameter.__str__   s    %djj\23r
   NrM   r	   r
   r   rq   rq      s    4r
   rq   c                       e Zd Zd Zd Zy)ContextAlreadyExistsc                     || _         y r   rj   r"   rj   s     r   r!   zContextAlreadyExists.__init__   	    	r
   c                 "    d| j                    dS )Nzcontext z already existsry   r,   s    r   r%   zContextAlreadyExists.__str__   s    499+_56r
   NrM   r	   r
   r   rw   rw      s    7r
   rw   c                       e Zd Zd Zd Zy)ContextExceptionc                     || _         y r   rH   rJ   s     r   r!   zContextException.__init__   rK   r
   c                     | j                   S r   rH   r,   s    r   r%   zContextException.__str__   s    r
   NrM   r	   r
   r   r~   r~      s    r
   r~   c                       e Zd Zd Zd Zy)ContextNotFoundc                     || _         y r   ry   rz   s     r   r!   zContextNotFound.__init__   r{   r
   c                 "    d| j                    dS )Nz	context 'z' not foundry   r,   s    r   r%   zContextNotFound.__str__   s    DII;k23r
   NrM   r	   r
   r   r   r      s    4r
   r   )requests	Exceptionr   r   
exceptions	HTTPErrorr   r   r   r<   r>   r@   rB   rD   rF   r   rO   rQ   RuntimeErrorrZ   r]   ra   ro   rq   rw   r~   r   r	   r
   r   <module>r      s   i =*--x"",,o --`	x 		H 		_ 		 		 		o 		 	/ /	?J 	_ $| 
# #	_ 	$4o 47? 7 4o 4r
   