ó ÞtÚ_c@sddlZddlZddlZddlmZddlmZmZmZddl m Z ddl m Z ej eƒZdefd„ƒYZdefd „ƒYZd efd „ƒYZd „Zd efd„ƒYZdefd„ƒYZdefd„ƒYZdS(iÿÿÿÿN(t xform_name(t BotoCoreErrortHTTPClientErrortConnectionError(tOperationNotFoundError(tCachedPropertytEndpointDiscoveryExceptioncBseZRS((t__name__t __module__(((s=/opt/awscli/lib/python2.7/site-packages/botocore/discovery.pyRstEndpointDiscoveryRequiredcBseZdZdZRS(sD Endpoint Discovery is disabled but is required for this operation. sAEndpoint Discovery is not enabled but this operation requires it.(RRt__doc__tfmt(((s=/opt/awscli/lib/python2.7/site-packages/botocore/discovery.pyR stEndpointDiscoveryRefreshFailedcBseZdZdZRS(s? Endpoint Discovery failed to the refresh the known endpoints. s<Endpoint Discovery failed to refresh the required endpoints.(RRR R (((s=/opt/awscli/lib/python2.7/site-packages/botocore/discovery.pyR "scKs.|j}|r*|jdƒr*tƒ‚ndS(Ntrequired(tendpoint_discoverytgetR (tmodeltkwargsR((s=/opt/awscli/lib/python2.7/site-packages/botocore/discovery.pyt,block_endpoint_discovery_required_operations's tEndpointDiscoveryModelcBsVeZd„Zed„ƒZed„ƒZd„Zd„Zd„Zdd„Z RS(cCs ||_dS(N(t_service_model(tselft service_model((s=/opt/awscli/lib/python2.7/site-packages/botocore/discovery.pyt__init__.scCs|jj}t|jƒS(N(Rtendpoint_discovery_operationRtname(Rtdiscovery_operation((s=/opt/awscli/lib/python2.7/site-packages/botocore/discovery.pytdiscovery_operation_name1s cCs:|jj}g}|jr6t|jjjƒƒ}n|S(N(RRt input_shapetlisttmemberstkeys(RRR((s=/opt/awscli/lib/python2.7/site-packages/botocore/discovery.pytdiscovery_operation_keys6s   cCsBy)|jj|ƒ}|jjdtƒSWntk r=tSXdS(NR (Rtoperation_modelRRtFalseR(Rtoperation_nameR!((s=/opt/awscli/lib/python2.7/site-packages/botocore/discovery.pytdiscovery_required_for>s  c s[|j‰|jdƒs;|jddƒ|jddƒnt‡fd†|jƒDƒƒS(Nt Identifierst Operationc3s-|]#\}}|ˆkr||fVqdS(N((t.0tktv(t input_keys(s=/opt/awscli/lib/python2.7/site-packages/botocore/discovery.pys Ks(R RtpoptNonetdicttitems(RR((R*s=/opt/awscli/lib/python2.7/site-packages/botocore/discovery.pytdiscovery_operation_kwargsEs  cCs|j|j|ƒS(N(t _gather_idsR(Rt operationtparams((s=/opt/awscli/lib/python2.7/site-packages/botocore/discovery.pytgather_identifiersMscCs‘|dkri}nxu|jjƒD]d\}}|jjdƒrT||||}s(RFR/RTRUR.(RR((Rs=/opt/awscli/lib/python2.7/site-packages/botocore/discovery.pyt_create_cache_key{scCs|jj||ƒS(N(RFR3(RR1R2((s=/opt/awscli/lib/python2.7/site-packages/botocore/discovery.pyR3scKs/|j|}||jkr+|j|=ndS(N(RXR=(RRt cache_key((s=/opt/awscli/lib/python2.7/site-packages/botocore/discovery.pytdelete_endpoints‚scKsJ|jj|}|jj}t|j|ƒ}tjd|ƒ||S(Ns%Discovering endpoints with kwargs: %s(RFR/RtgetattrRDtloggertdebug(RRR#R((s=/opt/awscli/lib/python2.7/site-packages/botocore/discovery.pyt_describe_endpoints‡s  cCsM||jkrdS|jƒ}g|j|D]}||dkr-|^q-S(NRM(R=R,R@(Rtkeytnowte((s=/opt/awscli/lib/python2.7/site-packages/botocore/discovery.pyt_get_current_endpointss cKs‹|j|}yF|j|}|j|ƒ}||j|<|jj|dƒ|SWn/ttfk r†|j ƒd|j|R+R,RRR@(RRRYRNRO((s=/opt/awscli/lib/python2.7/site-packages/botocore/discovery.pyt_refresh_current_endpoints–s cCsC||jkr?|jƒ}||j|kr2tS|j|=ntS(N(R>R@tTrueR"(RRYR`((s=/opt/awscli/lib/python2.7/site-packages/botocore/discovery.pyt_recently_failed¢s   cCs |ddS(NitAddress((RRO((s=/opt/awscli/lib/python2.7/site-packages/botocore/discovery.pyt_select_endpointªscKs&|d}|jj|ƒ}|j rB| rBtjd|ƒdS|j|}|j|ƒ}|rs|j|ƒS|j |ƒ}|s­|j |}|r­|j|ƒSntjd|ƒ|j j |dƒ}|rå|j|ƒS|r"|r|j |}|r|j|ƒSnt ƒ‚ndS(NR&sAOptional discovery disabled. Skipping discovery for Operation: %ss%Endpoint Discovery has failed for: %s(RFR$RAR\R]R,RXRbRgReRcR=RR (RRR1tdiscovery_requiredRYROtrecently_failedt stale_entries((s=/opt/awscli/lib/python2.7/site-packages/botocore/discovery.pytdescribe_endpoint­s6    N(RRR,RdRRRRWRXR3RZR^RbRcReRgRk(((s=/opt/awscli/lib/python2.7/site-packages/botocore/discovery.pyR<]s        tEndpointDiscoveryHandlercBs5eZd„Zd„Zd„Zd„Zd„ZRS(cCs ||_dS(N(t_manager(Rtmanager((s=/opt/awscli/lib/python2.7/site-packages/botocore/discovery.pyRÚscCsI|jd||jƒ|jd||jƒ|jd||jƒdS(Nsbefore-parameter-build.%ssrequest-created.%ssneeds-retry.%s(tregisterR3tregister_firsttdiscover_endpointthandle_retries(Rteventst service_id((s=/opt/awscli/lib/python2.7/site-packages/botocore/discovery.pyRoÝs cKsC|j}|dkrdS|jj||ƒ}i|d6|d s    0|