U a+@sddlZddlZddlZddlmZddlmZmZmZddl m Z ddl m Z e eZGdddeZGdd d eZGd d d eZd d ZGdddeZGdddeZGdddeZdS)N) xform_name) BotoCoreErrorHTTPClientErrorConnectionError)OperationNotFoundError)CachedPropertyc@s eZdZdS)EndpointDiscoveryExceptionN)__name__ __module__ __qualname__r r /Users/jalaguru/Documents/Proserv/artifacts/aws_dms_cdk_automation/aws-dms-cdk-automation/venv/lib/python3.8/site-packages/botocore/discovery.pyrsrc@seZdZdZdZdS)EndpointDiscoveryRequiredzD Endpoint Discovery is disabled but is required for this operation. zAEndpoint Discovery is not enabled but this operation requires it.Nr r r __doc__fmtr r r r rsrc@seZdZdZdZdS)EndpointDiscoveryRefreshFailedz? Endpoint Discovery failed to the refresh the known endpoints. zs  z-EndpointDiscoveryModel.discovery_required_forc sB|j|ds(|dd|ddtfdd|DS)N Identifiers Operationc3s"|]\}}|kr||fVqdSrr .0kvZ input_keysr r KszDEndpointDiscoveryModel.discovery_operation_kwargs..)r'rpopdictitemsrrr r1r discovery_operation_kwargsEs    z1EndpointDiscoveryModel.discovery_operation_kwargscCs||j|Sr) _gather_idsr#r operationparamsr r r gather_identifiersMsz)EndpointDiscoveryModel.gather_identifiersNcCsb|dkr i}|jD]F\}}|jdr8||||<q|jdkr||kr|||||q|S)NZendpointdiscoveryidZ structure)r%r5metadatarZ type_namer8)rshaper;ids member_nameZ member_shaper r r r8Ps z"EndpointDiscoveryModel._gather_ids)N) r r r rrr"r'r*r7r<r8r r r r r-s  rc@sneZdZdddZddZddZd d Zd d Zd dZddZ ddZ ddZ ddZ ddZ ddZdS)EndpointDiscoveryManagerNTcCsP|dkr i}||_i|_|dkr&tj}||_||_t||_t|j j |_ dSr) _cache_failed_attemptstime_time_always_discoverweakrefproxy_clientrmetar_model)rclientcache current_timeZalways_discoverr r r r^s z!EndpointDiscoveryManager.__init__cCs8|d}|}|D]}|d}||d|d<q|S)NZ EndpointsZCachePeriodInMinutes< Expiration)rEr)rresponse endpointsrNendpointZ cache_timer r r _parse_endpointsms  z)EndpointDiscoveryManager._parse_endpointscCs"t|trtt|S|SdSr) isinstancer4tuplesortedr5)rvaluer r r _cache_itemus z$EndpointDiscoveryManager._cache_itemc s,jjf|}tfddt|DS)Nc3s|]\}}|VqdSr)rYr-rr r r2}sz=EndpointDiscoveryManager._create_cache_key..)rKr7rVrWr5r6r rZr _create_cache_key{sz*EndpointDiscoveryManager._create_cache_keycCs|j||Sr)rKr<r9r r r r<sz+EndpointDiscoveryManager.gather_identifierscKs"|jf|}||jkr|j|=dSr)r[rB)rr cache_keyr r r delete_endpointss  z)EndpointDiscoveryManager.delete_endpointscKs8|jjf|}|jj}t|j|}td||f|S)Nz%Discovering endpoints with kwargs: %s)rKr7r"getattrrIloggerdebug)rrr)r!r r r _describe_endpointss   z,EndpointDiscoveryManager._describe_endpointscs.||jkrdS|fdd|j|DS)Ncsg|]}|dkr|qS)rPr )r.enowr r s zCEndpointDiscoveryManager._get_current_endpoints..)rBrE)rkeyr rcr _get_current_endpointss z/EndpointDiscoveryManager._get_current_endpointsc Ksr|jf|}z4|jf|}||}||j|<|j|d|WSttfk rl|d|j|<YdSXdS)NrO) r[rarTrBrCr3rrrE)rrr\rQrRr r r _refresh_current_endpointss    z3EndpointDiscoveryManager._refresh_current_endpointscCs0||jkr,|}||j|kr$dS|j|=dS)NTF)rCrE)rr\rdr r r _recently_faileds  z)EndpointDiscoveryManager._recently_failedcCs |ddS)NrZAddressr )rrRr r r _select_endpointsz)EndpointDiscoveryManager._select_endpointcKs|d}|j|}|js0|s0td|dS|jf|}||}|rT||S||}|s||j f|}|r|||Std||j |d}|r||S|r|r|j f|}|r||St dS)Nr,zAOptional discovery disabled. Skipping discovery for Operation: %sz%Endpoint Discovery has failed for: %s) rKr*rFr_r`r[rgrjrirhrBrr)rrr:Zdiscovery_requiredr\rRZrecently_failedZ stale_entriesr r r describe_endpoints:            z*EndpointDiscoveryManager.describe_endpoint)NNT)r r r rrTrYr[r<r]rargrhrirjrkr r r r rA]s   rAc@s4eZdZddZddZddZddZd d Zd S) EndpointDiscoveryHandlercCs ||_dSr)_manager)rmanagerr r r rsz!EndpointDiscoveryHandler.__init__cCs:|d||j|d||j|d||jdS)Nzbefore-parameter-build.%szrequest-created.%szneeds-retry.%s)registerr<Zregister_firstdiscover_endpointhandle_retries)reventsZ service_idr r r rosz!EndpointDiscoveryHandler.registercKs0|j}|dkrdS|j||}d|i|d<dS)N identifiers discovery)rrmr<)rr;rcontextrrr?r r r r<s z+EndpointDiscoveryHandler.gather_identifierscKsn|jdid}|dkr dS|jj||d}|dkrFtddS|dsXd|}td|||_dS)Nrtrsr,r+z&Failed to discover and inject endpointhttpzhttps://z!Injecting discovered endpoint: %s)rurrmrkr_r` startswithurl)rrequestr)rr?rSr r r rps   z*EndpointDiscoveryHandler.discover_endpointc Ks|dkr dS|\}}|did}|did}|dkrL|dkrLdS|di}|did } | dkrvdS|jj|j| d d S) NZResponseMetadataZHTTPStatusCodeErrorZCodeiZInvalidEndpointExceptionrurtrsrvr)rrmr]r ) rZ request_dictrQr:r_statusZ error_coderur?r r r rqs  z'EndpointDiscoveryHandler.handle_retriesN)r r r rror<rprqr r r r rls  rl)rDloggingrGZbotocorerZbotocore.exceptionsrrrZbotocore.modelrZbotocore.utilsr getLoggerr r_rrrrobjectrrArlr r r r  s    0|