o ckF[E@sdZddlZddlZddlZddlmZddlmZmZddl m Z GdddeZ Gdd d eZ Gd d d e Z Gd d d e ZGddde ZGdddeZGdddeZGdddeZGdddeZGdddeZGdddeZGdddeZGdddeZGd d!d!eZGd"d#d#e ZGd$d%d%eZGd&d'd'eZGd(d)d)eZGd*d+d+eZGd,d-d-eZGd.d/d/eZ Gd0d1d1eZ!Gd2d3d3eZ"Gd4d5d5eZ#Gd6d7d7eZ$Gd8d9d9e Z%Gd:d;d;e Z&Gdd?d?e&Z(Gd@dAdAe)Z*GdBdCdCe)Z+GdDdEdEe)Z,GdFdGdGe)Z-GdHdIdIe)Z.GdJdKdKe)Z/GdLdMdMeZ0GdNdOdOe)Z1GdPdQdQe)Z2GdRdSdSe)Z3GdTdUdUe)Z4GdVdWdWe)Z5dS)XzI Exception classes - Subclassing allows you to check for specific errors N)handler)json StandardError) ResultSetc0eZdZdZfddZddZddZZS)BotoClientErrorz9 General Boto Client error (error accessing AWS) cs"tt|j|g|R||_dSN)superr__init__reason)selfr args __class__0/usr/lib/python3/dist-packages/boto/exception.pyr )s zBotoClientError.__init__cC d|jSNzBotoClientError: %sr r rrr__repr__- zBotoClientError.__repr__cCrrrrrrr__str__0rzBotoClientError.__str____name__ __module__ __qualname____doc__r rr __classcell__rrrrr%  rc@ eZdZdS)SDBPersistenceErrorNrrrrrrrr!4r!c@eZdZdZdS)StoragePermissionsErrorzP Permissions error when accessing a bucket or key on a storage service. Nrrrrrrrrr%8r%c@r$)S3PermissionsErrorzA Permissions error when accessing a bucket or key on S3. Nr&rrrrr(?r'r(c@r$)GSPermissionsErrorzA Permissions error when accessing a bucket or key on GS. Nr&rrrrr)Fr'r)csZeZdZdfdd ZddZfddZdd Zd d Zd d ZddZ ddZ Z S)BotoServerErrorNc stt|j|||g|R||_||_|pd|_d|_d|_d|_d|_ d|_ t |jt rGz |j d|_WntyFtjdYnw|jrt|jdr~|jdd|_d|jvrt|jdi}|dd|_|dd|_ dS|jd d|_ dSzt||}||jWdSttjjfyz9t|j}d|vr|d|_d|vrd|dvr|dd|_d|dvr|dd|_ WYdSWYdSWYdSttfy|j|_ d|_YYdSwwdS) Nzutf-8z!Unable to decode body from bytes!items RequestIdErrorCodeMessagemessage)r r*r statusr body request_id error_code_error_messager1 box_usage isinstancebytesdecodeUnicodeDecodeErrorbotologdebughasattrgetrXmlHandlerWrapper parseString TypeErrorxmlsaxSAXParseExceptionrloads ValueError)r r2r r3r errorhparsedrrrr NsX          zBotoServerError.__init__cCs |dkr|jS|dkr|jSt)N error_messagecode)r1r5AttributeError)r namerrr __getattr__s zBotoServerError.__getattr__cs(|dkr ||_dStt|||dS)NrL)r1r r* __setattr__)r rOvaluerrrrQs zBotoServerError.__setattr__cCd|jj|j|j|jfSNz %s: %s %s %srrr2r r3rrrrr zBotoServerError.__repr__cCrSrTrUrrrrrrVzBotoServerError.__str__cCdSrrr rOattrs connectionrrr startElementzBotoServerError.startElementcCsH|dvr ||_dS|dkr||_dS|dkr||_dS|dkr"||_dS)N)r- RequestIDr/r0BoxUsager4r5r1r7r rOrRrZrrr endElementszBotoServerError.endElementcCsd|_d|_d|_d|_dSrr_rrrr_cleanupParsedPropertiess z(BotoServerError._cleanupParsedPropertiesr) rrrr rPrQrrr[rarbrrrrrr*Ms;  r*c@&eZdZdddZddZddZdS) ConsoleOutputNcCs"||_d|_d|_d|_d|_dSr)parent instance_id timestampcommentoutput)r rerrrr s  zConsoleOutput.__init__cCrWrrrXrrrr[r\zConsoleOutput.startElementcCs:|dkr ||_dS|dkrt||_dSt|||dS)N instanceIdri)rfbase64 b64decoderisetattrr`rrrras  zConsoleOutput.endElementrrrrr r[rarrrrrds  rdcs.eZdZdZdfdd ZfddZZS)StorageCreateErrorz> Error creating a bucket or key on a storage service. Ncd|_tt||||dSr)bucketr ror r r2r r3rrrr zStorageCreateError.__init__c&|dkr ||_dStt||||S)N BucketName)rqr rorar`rrrras zStorageCreateError.endElementr)rrrrr rarrrrrrosroc@r$) S3CreateErrorz/ Error creating a bucket or key on S3. Nr&rrrrrvr'rvc@r$) GSCreateErrorz/ Error creating a bucket or key on GS. Nr&rrrrrwr'rwc@r$)StorageCopyErrorz3 Error copying a key on a storage service. Nr&rrrrrxr'rxc@r$) S3CopyErrorz$ Error copying a key on S3. Nr&rrrrryr'ryc@r$) GSCopyErrorz$ Error copying a key on GS. Nr&rrrrrzr'rzcFeZdZdZd fdd ZfddZfddZfd d ZZS) SQSErrorz0 General Error on Simple Queue Service. Ncs$d|_d|_tt||||dSr)detailtyper r|r rrrrrr szSQSError.__init__ctt||||Sr)r r|r[rXrrrr[szSQSError.startElementcs8|dkr ||_dS|dkr||_dStt||||S)NDetailType)r}r~r r|rar`rrrras   zSQSError.endElementc(tt|dD]}t||dq dS)N)r}r~)r r|rbrmr prrrrb z!SQSError._cleanupParsedPropertiesr rrrrr r[rarbrrrrrr|s   r|cr)SQSDecodeErrorz- Error when decoding an SQS message. cstt|||||_dSr)r rr r1)r r r1rrrr s zSQSDecodeError.__init__cCrNzSQSDecodeError: %srrrrrrrzSQSDecodeError.__repr__cCrrrrrrrrrzSQSDecodeError.__str__rrrrrrrrcr{) StorageResponseErrorz3 Error in response from a storage service. Ncrpr)resourcer rr rrrrrr &rszStorageResponseError.__init__crr)r rr[rXrrrr[*s z!StorageResponseError.startElementcrt)NResource)rr rrar`rrrra.s   zStorageResponseError.endElementcr)Nr)r rrbrmrrrrrb5rz-StorageResponseError._cleanupParsedPropertiesrrrrrrr"s   rc@r$)S3ResponseErrorz$ Error in response from S3. Nr&rrrrr;r'rc@r$)GSResponseErrorz$ Error in response from GS. Nr&rrrrrBr'rcs>eZdZdZd fdd ZddZddZfd d ZZS) EC2ResponseErrorz% Error in response from EC2. NcsVd|_g|_tt||||dd|jD|_t|jr)|jd\|_|_dSdS)NcSsg|]}|j|jfqSrr5rL).0errr Qs z-EC2ResponseError.__init__..r)errors_errorResultSetr rr lenr5rLrrrrrr Ms zEC2ResponseError.__init__cCs"|dkrtdtfg|_|jSdS)NErrorsr.)r _EC2ErrorrrXrrrr[VszEC2ResponseError.startElementcCs|dkr ||_dSdS)Nr])r4r`rrrra]s zEC2ResponseError.endElementcs.tt|g|_dD]}t||dq dS)Nr)r rrbrrmrrrrrbcs z)EC2ResponseError._cleanupParsedPropertiesrrrrrrrIs  rc@seZdZdZdddZdS)JSONResponseErrora This exception expects the fully parsed and decoded JSON response body to be passed as the body parameter. :ivar status: The HTTP status code. :ivar reason: The HTTP reason message. :ivar body: The Python dict that represents the decoded JSON response body. :ivar error_message: The full description of the AWS error encountered. :ivar error_code: A short string that identifies the AWS error (e.g. ConditionalCheckFailedException) NcGs\||_||_||_|jr*|jdd|_|jdd|_|jr,|jdd|_dSdSdS)Nr1__type#)r2r r3r@rLr5split)r r2r r3r rrrr wszJSONResponseError.__init__r)rrrrr rrrrrjs rc@r )DynamoDBResponseErrorNr"rrrrrr#rc@r )SWFResponseErrorNr"rrrrrr#rc@r$)EmrResponseErrorz$ Error in response from EMR Nr&rrrrrr'rc@rc) rNcCs||_d|_d|_dSr)rZr5rL)r rZrrrr s z_EC2Error.__init__cCrWrrrXrrrr[r\z_EC2Error.startElementcCs(|dkr ||_dS|dkr||_dSdS)Nr/r0rr`rrrras   z_EC2Error.endElementrrnrrrrrs  rc@r$)SDBResponseErrorz& Error in responses from SDB. Nr&rrrrrr'rc@r$)AWSConnectionErrorz: General error connecting to Amazon Web Services. Nr&rrrrrr'rc@r$)StorageDataErrorz6 Error receiving data from a storage service. Nr&rrrrrr'rc@r$) S3DataErrorz' Error receiving data from S3. Nr&rrrrrr'rc@r$) GSDataErrorz' Error receiving data from GS. Nr&rrrrrr'rc eZdZdZfddZZS)InvalidUriErrorz%Exception raised when URI is invalid.ctt||||_dSr)r rr r1r r1rrrr  zInvalidUriError.__init__rrrrr rrrrrrrcr)InvalidAclErrorz)Exception raised when ACL XML is invalid.crr)r rr r1rrrrr rzInvalidAclError.__init__rrrrrrrrcr)InvalidCorsErrorz*Exception raised when CORS XML is invalid.crr)r rr r1rrrrr rzInvalidCorsError.__init__rrrrrrrrcr)InvalidEncryptionConfigErrorzBException raised when GCS encryption configuration XML is invalid.crr)r rr r1rrrrr rz%InvalidEncryptionConfigError.__init__rrrrrrrrcr)InvalidLifecycleConfigErrorzAException raised when GCS lifecycle configuration XML is invalid.crr)r rr r1rrrrr rz$InvalidLifecycleConfigError.__init__rrrrrrrrc@r$)NoAuthHandlerFoundzAIs raised when no auth handlers were found ready to authenticate.Nr&rrrrrsrc@seZdZdZdZdZdZdS)ResumableTransferDisposition START_OVERWAIT_BEFORE_RETRYABORT_CUR_PROCESSABORTN)rrrrrrrrrrrrs rc(eZdZdZfddZddZZS)ResumableUploadExceptionz Exception raised for various resumable upload problems. self.disposition is of type ResumableTransferDisposition. c"tt|||||_||_dSr)r rr r1 dispositionr r1rrrrr  z!ResumableUploadException.__init__cCd|j|jfS)Nz"ResumableUploadException("%s", %s)r1rrrrrrz!ResumableUploadException.__repr__rrrrr rrrrrrr  rcr)ResumableDownloadExceptionz Exception raised for various resumable download problems. self.disposition is of type ResumableTransferDisposition. crr)r rr r1rrrrrr $rz#ResumableDownloadException.__init__cCr)Nz$ResumableDownloadException("%s", %s)rrrrrr)rz#ResumableDownloadException.__repr__rrrrrrrrcr)TooManyRecordsExceptionzd Exception raised when a search of Route53 records returns more records than requested. crr)r rr r1rrrrr 4rz TooManyRecordsException.__init__rrrrrr.src@s"eZdZdZdddZddZdS)PleaseRetryExceptionz0 Indicates a request should be retried. NcCs||_||_dSrr1response)r r1rrrrr =s zPleaseRetryException.__init__cCr)NzPleaseRetryException("%s", %s)rrrrrrAszPleaseRetryException.__repr__r)rrrrr rrrrrr9s  rcr)InvalidInstanceMetadataErrorzYou can set the 'metadata_service_num_attempts' in your boto config file to increase the number of times boto will attempt to retrieve credentials from the instance metadata service.cs"|d|j}tt||dS)N )MSGr rr )r msg final_msgrrrr Osz%InvalidInstanceMetadataError.__init__)rrrrr rrrrrrHsr)6rrkxml.saxrDr<r boto.compatrrboto.resultsetrrr!r%r(r)r*objectrdrorvrwrxryrzr|rrrrrrrrrrrrrrr Exceptionrrrrrrrrrrrrrrrrs`  f!