ó ].äOc @sKddlZddlZddlZddljjZeejejej ej fƒZ eej ej ejfƒZeej fƒZeej ej ejfƒZeejejfƒZied6e d6e d6Zied6ed6ed6Ziejd6ejd6Zeejejejejejejejejejf ƒZ dej!fd„ƒYZ"de"fd„ƒYZ#d e"fd „ƒYZ$d e"fd „ƒYZ%d e"fd„ƒYZ&de"fd„ƒYZ'de"fd„ƒYZ(de"fd„ƒYZ)de"fd„ƒYZ*de"fd„ƒYZ+de"fd„ƒYZ,dS(iÿÿÿÿNtfilethttpthttpstTransportExceptioncBseZdZd„ZRS(sNBase class for various exceptions thrown by code in transport package.cCsd|_t|_t|_dS(Ni(tcounttFalset decayablet retryable(tself((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pyt__init__Js  (t__name__t __module__t__doc__R (((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pyRFstTransportOperationErrorcBs eZdZd„Zd„ZRS(s>Used when transport operations fail for miscellaneous reasons.cCstj|ƒ||_dS(N(RR tdata(RR((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pyR Ss cCs t|jƒS(N(tstrR(R((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pyt__str__Ws(R R R R R(((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pyR Ps tTransportFailurescBs;eZdZd„Zd„Zd„Zd„Zd„ZRS(s:This exception encapsulates multiple transport exceptions.cCstj|ƒg|_dS(N(RR t exceptions(R((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pyR cs cCszt}t|tƒst‚x?|jD]4}t||ƒdkr%|jd7_t}Pq%q%W|sv|jj|ƒndS(Nii( Rt isinstanceRtAssertionErrorRtcmpRtTruetappend(Rtexctfoundtx((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pyRgscCs"x|D]}|j|ƒqWdS(N(R(Rtexc_listR((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pytextendts cCsºt|jƒdkrdSd}x„t|jƒD]s\}}t|jƒdkre|d|d7}n|t|ƒ7}|jdkr˜|d|j7}n|d7}q/W||jƒ7}|S(Nis[no errors accumulated]tis%d: s (happened %d times)s (tlenRt enumerateRRt _str_autofix(RtstiR((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pyRxscCs t|jƒS(N(RR(R((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pyt__len__‡s(R R R R RRRR#(((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pyR[s    tTransportProtoErrorc BsAeZdZddddddddd„Zd„Zd„ZRS(s3Raised when errors occur in the transport protocol.c Cs”tj|ƒ||_||_||_||_||_||_|jt|jk|_ |jt |jk|_ ||_ ||_ | |_dS(N(RR tprototcodeturlturlstemtreasontrequesttdecayable_proto_errorsRtretryable_proto_errorsRtuuidtdetailstproxy( RR%R&R'R)trepourlR*R-R.R/((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pyR Žs         cCs¿d|j}|jr*|d|j7}n|jrG|d|j7}n|jrd|d|j7}n|jr|d|j7}n|jrž|d|j7}n|jr»|d|j7}n|S(Ns%s protocol errors : code: %ds reason: %ss URL: '%s's Repository URL: '%s'.s Proxy: '%s's Additional Details: %s(R%R&R)R'R(R/R.(RR!((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pyRs       cCsºt|tƒsdSt|j|jƒ}|dkr8|St|j|jƒ}|dkr]|St|j|jƒ}|dkr‚|St|j|jƒ}|dkr§|St|j|jƒS(Niÿÿÿÿi(RR$RR%R&R'R.R)(Rtothertr((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pyt__cmp__±s    N(R R R tNoneR RR3(((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pyR$‹s   tTransportFrameworkErrorcBs8eZdZdddddd„Zd„Zd„ZRS(s4Raised when errors occur in the transport framework.cCsktj|ƒ||_||_||_||_|jtk|_|jtk|_ ||_ ||_ dS(N( RR R&R'R(R)tdecayable_pycurl_errorsRtretryable_pycurl_errorsRR-R/(RR&R'R)R0R-R/((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pyR Æs      cCsxd|j}|jr*|d|j7}n|jrG|d|j7}n|jrd|d|j7}n||jƒ7}|S(NsFramework error: code: %ds reason: %ss URL: '%s's Proxy: '%s'(R&R)R'R/R (RR!((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pyRÒs    cCs•t|tƒsdSt|j|jƒ}|dkr8|St|j|jƒ}|dkr]|St|j|jƒ}|dkr‚|St|j|jƒS(Niÿÿÿÿi(RR5RR&R'R/R)(RR1R2((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pyR3Ýs   N(R R R R4R RR3(((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pyR5Ãs   tTransportStallErrorcBs5eZdZddddd„Zd„Zd„ZRS(s4Raised when stalls occur in the transport framework.cCs>tj|ƒ||_||_t|_||_||_dS(N(RR R'R(RRR-R/(RR'R0R-R/((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pyR ïs      cCscd}|js|jr%|d7}n|jrB|d|j7}n|jr_|d|j7}n|S(NsFramework stallt:s URL: '%s's Proxy: '%s'(R'R/(RR!((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pyR÷s   cCsKt|tƒsdSt|j|jƒ}|dkr8|St|j|jƒS(Niÿÿÿÿi(RR8RR'R/(RR1R2((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pyR3s  N(R R R R4R RR3(((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pyR8ìs tTransferContentExceptioncBs/eZdZddd„Zd„Zd„ZRS(sARaised when there are problems downloading the requested content.cCs5tj|ƒ||_||_t|_||_dS(N(RR R'R)RRR/(RR'R)R/((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pyR s     cCsZ|jr"d|j|jf}n d|j}|jrL|d|j7}n|d7}|S(Ns(Transfer from '%s' via proxy '%s' failedsTransfer from '%s' faileds: %st.(R/R'R)(RR!((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pyRs    cCspt|tƒsdSt|j|jƒ}|dkr8|St|j|jƒ}|dkr]|St|j|jƒS(Niÿÿÿÿi(RR:RR'R/R)(RR1R2((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pyR3s  N(R R R R4R RR3(((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pyR: s tInvalidContentExceptioncBs8eZdZdddddd„Zd„Zd„ZRS(spRaised when the content's hash/chash doesn't verify, or the content is received in an unreadable format.icCsGtj|ƒ||_||_||_t|_||_||_dS(N( RR tpathR)tsizeRRR'R/(RR=R)R>R'R/((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pyR /s      cCs~d}|jr#|d|j7}n|jr@|d|j7}n|jr]|d|j7}n|jrz|d|j7}n|S(NsInvalid contentspath %ss: %s.s URL: %ss Proxy: %s(R=R)R'R/(RR!((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pyR8s    cCs•t|tƒsdSt|j|jƒ}|dkr8|St|j|jƒ}|dkr]|St|j|jƒ}|dkr‚|St|j|jƒS(Niÿÿÿÿi(RR<RR=R)R/R'(RR1R2((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pyR3Ds   N(R R R R4R RR3(((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pyR<+s t PkgProtoErrorcBs5eZdZddddd„Zd„Zd„ZRS(s§Raised when the pkg protocol doesn't behave according to specification. This is different than TransportProtoError, which deals with the L7 protocols that we can use to perform a pkg(5) transport operation. Although it doesn't exist, this is essentially a L8 error, since our pkg protocol is built on top of application level protocols. The Framework errors deal with L3-6 errors.cCs>tj|ƒ||_||_||_||_||_dS(N(RR R'R)t operationtversionR/(RR'R@RAR)R/((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pyR [s      cCs|jr"d|j|jf}n d|j}|jrL|d|j7}n|jdk ro|d|j7}n|jrŒ|d|j7}n|S(Ns*Invalid pkg(5) response from %s (proxy %s)sInvalid pkg(5) response from %ss: Attempting operation '%s's version %ss: %s(R/R'R@RAR4R)(RR!((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pyRds    cCsºt|tƒsdSt|j|jƒ}|dkr8|St|j|jƒ}|dkr]|St|j|jƒ}|dkr‚|St|j|jƒ}|dkr§|St|j|jƒS(Niÿÿÿÿi(RR?RR'R@RAR/R)(RR1R2((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pyR3rs    N(R R R R4R RR3(((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pyR?Ss    tExcessiveTransientFailurecBs,eZdZdd„Zd„Zd„ZRS(s\Raised when the transport encounters too many retryable errors at a single endpoint.cCsGtj|ƒ||_||_t|_d|_d|_||_ dS(N( RR R'RRRR4tfailurestsuccessR/(RR'RR/((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pyR ˆs      cCsad}|jr#|d|j7}n|jr@|d|j7}n|jr]|d|j7}n|S(Ns7Too many retryable errors encountered during transfer. sURL: %s s Proxy: %ss Count: %s (R'R/R(RR!((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pyR‘s   cCspt|tƒsdSt|j|jƒ}|dkr8|St|j|jƒ}|dkr]|St|j|jƒS(Niÿÿÿÿi(RRBRR'R/R(RR1R2((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pyR3›s  N(R R R R4R RR3(((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pyRB„s t mDNSExceptioncBs eZdZd„Zd„ZRS(sUsed when mDNS operations fail.cCstj|ƒ||_dS(N(RR terr(Rterrstr((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pyR ©s cCs|jS(N(RF(R((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pyR­s(R R R R R(((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pyRE¦s (-terrnothttplibtpycurltpkg.client.api_errorstclientt api_errorstsettREQUEST_TIMEOUTt BAD_GATEWAYtGATEWAY_TIMEOUTt NOT_FOUNDtretryable_http_errorstE_FILE_COULDNT_READ_FILEtEAGAINtENOENTtretryable_file_errorstdecayable_http_errorstdecayable_file_errorstE_OPERATION_TIMEOUTEDtE_COULDNT_CONNECTR6R,R+t responsestproto_code_maptE_PARTIAL_FILEt E_GOT_NOTHINGt E_SEND_ERRORt E_RECV_ERRORtE_COULDNT_RESOLVE_HOSTtE_TOO_MANY_REDIRECTStE_BAD_CONTENT_ENCODINGR7tTransportErrorRR RR$R5R8R:R<R?RBRE(((sD/usr/lib/python2.7/vendor-packages/pkg/client/transport/exception.pytsL           08)!(1"