U
    n/e                     @   sH   d dl mZmZmZmZmZ dd Zdd Zdd Zdd	 Z	d
d Z
dS )    )ETreeXMLParseError_get_cross_region_presigned_url1_get_presigned_url_source_and_destination_regionsloggerc                    s8   | d krd S | \}}t |I d H r4td| d|_d S )NzWError found for response with 200 status code, errors: %s, changing status code to 500.i  )_looks_like_special_case_errorr   debugstatus_code)responsekwargshttp_responseparsed r   8/tmp/pip-unpacked-wheel-8mnez3y6/aiobotocore/handlers.pycheck_for_200_error
   s    r   c                    sd   | j dkr`z0tjt dd}|| jI d H  | }W n tk
rP   Y dS X |jdkr`dS dS )N   utf-8targetencodingTErrorF)	r	   r   	XMLParserTreeBuilderfeedcontentcloser   tag)r   parserrootr   r   r   r   )   s    
 
r   c                    sT   d| d krd S t || d \}}t|| |||I d H }|| d d< || d d< d S )NZPresignedUrlbodyZDestinationRegionr   r   paramsZrequest_signermodelr   srcdesturlr   r   r   inject_presigned_url_ec2;   s         
r'   c                    sb   d| d krd S t || d \}}| d d= d| d kr<d S t|| |||I d H }|| d d< d S )NZSourceRegionr   ZPreSignedUrlr    r!   r   r   r   inject_presigned_url_rdsK   s"     
    
r(   c                    sP   |j d krd S |jI d H }tjt dd}|| | }|j}|| d< d S )Nr   r   ZLocationConstraint)rawr   r   r   r   r   r   text)r   r   r   Zresponse_bodyr   r   Zregionr   r   r   parse_get_bucket_locationc   s    

r+   N)Zbotocore.handlersr   r   r   r   r   r   r   r'   r(   r+   r   r   r   r   <module>   s
   	