HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: //usr/lib/python3.6/site-packages/botocore/__pycache__/discovery.cpython-36.pyc
3

�T_+�@s�ddlZddlZddlZddlmZddlmZmZmZddl	m
Z
ddlmZej
e�ZGdd�de�ZGdd	�d	e�ZGd
d�de�Zdd
�ZGdd�de�ZGdd�de�ZGdd�de�ZdS)�N)�
xform_name)�
BotoCoreError�HTTPClientError�ConnectionError)�OperationNotFoundError)�CachedPropertyc@seZdZdS)�EndpointDiscoveryExceptionN)�__name__�
__module__�__qualname__�rr�/usr/lib/python3.6/discovery.pyrsrc@seZdZdZdZdS)�EndpointDiscoveryRequiredzD Endpoint Discovery is disabled but is required for this operation. zAEndpoint Discovery is not enabled but this operation requires it.N)r	r
r�__doc__�fmtrrrr
rsrc@seZdZdZdZdS)�EndpointDiscoveryRefreshFailedz? Endpoint Discovery failed to the refresh the known endpoints. z<Endpoint Discovery failed to refresh the required endpoints.N)r	r
rrrrrrr
r"srcKs|j}|r|jd�rt��dS)N�required)�endpoint_discovery�getr)�model�kwargsrrrr
�,block_endpoint_discovery_required_operations'src@sNeZdZdd�Zedd��Zedd��Zdd�Zd	d
�Zdd�Z	ddd�Z
d
S)�EndpointDiscoveryModelcCs
||_dS)N)�_service_model)�self�
service_modelrrr
�__init__.szEndpointDiscoveryModel.__init__cCs|jj}t|j�S)N)r�endpoint_discovery_operationr�name)r�discovery_operationrrr
�discovery_operation_name1sz/EndpointDiscoveryModel.discovery_operation_namecCs&|jj}g}|jr"t|jjj��}|S)N)rr�input_shape�list�members�keys)rrr$rrr
�discovery_operation_keys6s
z/EndpointDiscoveryModel.discovery_operation_keyscCs4y|jj|�}|jjdd�Stk
r.dSXdS)NrF)r�operation_modelrrr)r�operation_namer&rrr
�discovery_required_for>s
z-EndpointDiscoveryModel.discovery_required_forcsB|j�|jd�s(|jdd�|jdd�t�fdd�|j�D��S)N�Identifiers�	Operationc3s"|]\}}|�kr||fVqdS)Nr)�.0�k�v)�
input_keysrr
�	<genexpr>KszDEndpointDiscoveryModel.discovery_operation_kwargs.<locals>.<genexpr>)r%r�pop�dict�items)rrr)r.r
�discovery_operation_kwargsEs

z1EndpointDiscoveryModel.discovery_operation_kwargscCs|j|j|�S)N)�_gather_idsr!)r�	operation�paramsrrr
�gather_identifiersMsz)EndpointDiscoveryModel.gather_identifiersNcCsf|dkri}xT|jj�D]F\}}|jjd�r:||||<q|jdkr||kr|j||||�qW|S)NZendpointdiscoveryidZ	structure)r#r2ZmetadatarZ	type_namer4)r�shaper6�ids�member_nameZmember_shaperrr
r4Psz"EndpointDiscoveryModel._gather_ids)N)r	r
rrrr r%r(r3r7r4rrrr
r-src@sneZdZddd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�ZdS)�EndpointDiscoveryManagerNTcCsP|dkri}||_i|_|dkr&tj}||_||_tj|�|_t|j	j
�|_dS)N)�_cache�_failed_attempts�time�_time�_always_discover�weakref�proxy�_clientr�metar�_model)rZclient�cache�current_timeZalways_discoverrrr
r^sz!EndpointDiscoveryManager.__init__cCs<|d}|j�}x&|D]}|jd�}||d|d<qW|S)NZ	EndpointsZCachePeriodInMinutes�<�
Expiration)r?r)r�response�	endpointsrG�endpointZ
cache_timerrr
�_parse_endpointsms

z)EndpointDiscoveryManager._parse_endpointscCs"t|t�rtt|j���S|SdS)N)�
isinstancer1�tuple�sortedr2)r�valuerrr
�_cache_itemus
z$EndpointDiscoveryManager._cache_itemcs,�jjf|�}t�fdd�t|j��D��S)Nc3s|]\}}�j|�VqdS)N)rR)r+r,r-)rrr
r/}sz=EndpointDiscoveryManager._create_cache_key.<locals>.<genexpr>)rEr3rOrPr2)rrr)rr
�_create_cache_key{sz*EndpointDiscoveryManager._create_cache_keycCs|jj||�S)N)rEr7)rr5r6rrr
r7sz+EndpointDiscoveryManager.gather_identifierscKs"|jf|�}||jkr|j|=dS)N)rSr<)rr�	cache_keyrrr
�delete_endpoints�s
z)EndpointDiscoveryManager.delete_endpointscKs8|jjf|�}|jj}t|j|�}tjd|�|f|�S)Nz%Discovering endpoints with kwargs: %s)rEr3r �getattrrC�logger�debug)rrr'rrrr
�_describe_endpoints�s
z,EndpointDiscoveryManager._describe_endpointscs.||jkrdS|j���fdd�|j|D�S)Ncsg|]}�|dkr|�qS)rIr)r+�e)�nowrr
�
<listcomp>�szCEndpointDiscoveryManager._get_current_endpoints.<locals>.<listcomp>)r<r?)r�keyr)r[r
�_get_current_endpoints�s
z/EndpointDiscoveryManager._get_current_endpointscKsn|jf|�}y2|jf|�}|j|�}||j|<|jj|d�|Sttfk
rh|j�d|j|<dSXdS)NrH)	rSrYrMr<r=r0rrr?)rrrTrJrKrrr
�_refresh_current_endpoints�s

z3EndpointDiscoveryManager._refresh_current_endpointscCs0||jkr,|j�}||j|kr$dS|j|=dS)NTF)r=r?)rrTr[rrr
�_recently_failed�s
z)EndpointDiscoveryManager._recently_failedcCs|ddS)NrZAddressr)rrKrrr
�_select_endpoint�sz)EndpointDiscoveryManager._select_endpointcKs�|d}|jj|�}|jr4|r4tjd|�dS|jf|�}|j|�}|rX|j|�S|j|�}|s�|j	f|�}|r�|j|�Stjd|�|j
j|d�}|r�|j|�S|r�|r�|j	f|�}|r�|j|�St��dS)Nr*zAOptional discovery disabled. Skipping discovery for Operation: %sz%Endpoint Discovery has failed for: %s)
rEr(r@rWrXrSr^rar`r_r<rr)rrr5Zdiscovery_requiredrTrKZrecently_failedZ
stale_entriesrrr
�describe_endpoint�s6





z*EndpointDiscoveryManager.describe_endpoint)NNT)r	r
rrrMrRrSr7rUrYr^r_r`rarbrrrr
r;]s
	r;c@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�EndpointDiscoveryHandlercCs
||_dS)N)�_manager)rZmanagerrrr
r�sz!EndpointDiscoveryHandler.__init__cCs:|jd||j�|jd||j�|jd||j�dS)Nzbefore-parameter-build.%szrequest-created.%szneeds-retry.%s)�registerr7Zregister_first�discover_endpoint�handle_retries)rZeventsZ
service_idrrr
re�s
z!EndpointDiscoveryHandler.registercKs0|j}|dkrdS|jj||�}d|i|d<dS)N�identifiers�	discovery)rrdr7)rr6r�contextrrr9rrr
r7�s
z+EndpointDiscoveryHandler.gather_identifierscKsn|jjdi�jd�}|dkr dS|jj||d�}|dkrFtjd�dS|jd�sXd|}tjd|�||_dS)Nrirh)r*r)z&Failed to discover and inject endpointZhttpzhttps://z!Injecting discovered endpoint: %s)rjrrdrbrWrX�
startswithZurl)rZrequestr'rr9rLrrr
rf�s


z*EndpointDiscoveryHandler.discover_endpointc
Ks�|dkrdS|\}}|jdi�jd�}|jdi�jd�}|dkrL|dkrLdS|jdi�}|jdi�jd	�}	|	dkrvdS|jj|j|	d
�dS)NZResponseMetadataZHTTPStatusCode�ErrorZCodei�ZInvalidEndpointExceptionrjrirh)r*r)r)rrdrUr)
rZrequest_dictrJr5r�_ZstatusZ
error_coderjr9rrr
rg�sz'EndpointDiscoveryHandler.handle_retriesN)r	r
rrrer7rfrgrrrr
rc�s
	rc)r>ZloggingrAZbotocorerZbotocore.exceptionsrrrZbotocore.modelrZbotocore.utilsrZ	getLoggerr	rWrrrr�objectrr;rcrrrr
�<module>
s
0|