2016-03-02 16:32:04 +00:00
|
|
|
"""
|
|
|
|
DynamoDB Exceptions
|
|
|
|
===================
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
|
|
class DynamoDBException(Exception):
|
|
|
|
"""Base exception that is extended by all exceptions raised by
|
|
|
|
tornado_dynamodb.
|
|
|
|
|
|
|
|
:ivar msg: The error message
|
|
|
|
|
|
|
|
"""
|
2016-03-22 14:37:24 +00:00
|
|
|
|
2016-03-02 16:32:04 +00:00
|
|
|
def __init__(self, *args, **kwargs):
|
|
|
|
super(DynamoDBException, self).__init__(*args, **kwargs)
|
|
|
|
|
|
|
|
|
2016-06-14 16:11:48 +00:00
|
|
|
class RequestException(DynamoDBException):
|
|
|
|
"""Raised when the HTTP request failed due to a network or DNS related
|
|
|
|
issue.
|
|
|
|
|
|
|
|
"""
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
2016-03-02 16:32:04 +00:00
|
|
|
class ConditionalCheckFailedException(DynamoDBException):
|
|
|
|
"""A condition specified in the operation could not be evaluated."""
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class ConfigNotFound(DynamoDBException):
|
|
|
|
"""The configuration file could not be parsed."""
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class ConfigParserError(DynamoDBException):
|
|
|
|
"""Error raised when parsing a configuration file with
|
|
|
|
:class:`~configparser.RawConfigParser`
|
|
|
|
|
|
|
|
"""
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class InternalFailure(DynamoDBException):
|
|
|
|
"""The request processing has failed because of an unknown error, exception
|
|
|
|
or failure.
|
|
|
|
|
|
|
|
"""
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class ItemCollectionSizeLimitExceeded(DynamoDBException):
|
|
|
|
"""An item collection is too large. This exception is only returned for
|
|
|
|
tables that have one or more local secondary indexes.
|
|
|
|
|
|
|
|
"""
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class InvalidAction(DynamoDBException):
|
|
|
|
"""The action or operation requested is invalid. Verify that the action is
|
|
|
|
typed correctly.
|
|
|
|
|
|
|
|
"""
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class InvalidParameterCombination(DynamoDBException):
|
|
|
|
"""Parameters that must not be used together were used together."""
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class InvalidParameterValue(DynamoDBException):
|
|
|
|
"""An invalid or out-of-range value was supplied for the input parameter."""
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class InvalidQueryParameter(DynamoDBException):
|
|
|
|
"""The AWS query string is malformed or does not adhere to AWS standards."""
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class LimitExceeded(DynamoDBException):
|
|
|
|
"""The number of concurrent table requests (cumulative number of tables in
|
|
|
|
the ``CREATING``, ``DELETING`` or ``UPDATING`` state) exceeds the maximum
|
|
|
|
allowed of ``10``.
|
|
|
|
|
|
|
|
Also, for tables with secondary indexes, only one of those tables can be in
|
|
|
|
the ``CREATING`` state at any point in time. Do not attempt to create more
|
|
|
|
than one such table simultaneously.
|
|
|
|
|
|
|
|
The total limit of tables in the ``ACTIVE`` state is ``250``.
|
|
|
|
|
|
|
|
"""
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class MalformedQueryString(DynamoDBException):
|
|
|
|
"""The query string contains a syntax error."""
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class MissingParameter(DynamoDBException):
|
|
|
|
"""A required parameter for the specified action is not supplied."""
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class NoCredentialsError(DynamoDBException):
|
|
|
|
"""Raised when the credentials could not be located."""
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class NoProfileError(DynamoDBException):
|
|
|
|
"""Raised when the specified profile could not be located."""
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class OptInRequired(DynamoDBException):
|
|
|
|
"""The AWS access key ID needs a subscription for the service."""
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class ThroughputExceeded(DynamoDBException):
|
|
|
|
"""Your request rate is too high. The AWS SDKs for DynamoDB automatically
|
|
|
|
retry requests that receive this exception. Your request is eventually
|
|
|
|
successful, unless your retry queue is too large to finish. Reduce the
|
|
|
|
frequency of requests and use exponential backoff. For more information, go
|
|
|
|
to `Error Retries and Exponential Backoff <http://docs.aws.amazon.com/
|
|
|
|
amazondynamodb/latest/developerguide/ErrorHandling.html#APIRetries>`_ in
|
|
|
|
the Amazon DynamoDB Developer Guide.
|
|
|
|
|
|
|
|
"""
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class RequestException(DynamoDBException):
|
|
|
|
"""A generic HTTP request exception has occurred when communicating with
|
|
|
|
DynamoDB.
|
|
|
|
|
|
|
|
"""
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class RequestExpired(DynamoDBException):
|
|
|
|
"""The request reached the service more than 15 minutes after the date
|
|
|
|
stamp on the request or more than 15 minutes after the request expiration
|
|
|
|
date (such as for pre-signed URLs), or the date stamp on the request is
|
|
|
|
more than 15 minutes in the future.
|
|
|
|
|
|
|
|
"""
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class ResourceInUse(DynamoDBException):
|
|
|
|
"""he operation conflicts with the resource's availability. For example,
|
|
|
|
you attempted to recreate an existing table, or tried to delete a table
|
|
|
|
currently in the ``CREATING`` state.
|
|
|
|
|
|
|
|
"""
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class ResourceNotFound(DynamoDBException):
|
|
|
|
"""The operation tried to access a nonexistent table or index. The resource
|
|
|
|
might not be specified correctly, or its status might not be ``ACTIVE``.
|
|
|
|
|
|
|
|
"""
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class ServiceUnavailable(DynamoDBException):
|
|
|
|
"""The request has failed due to a temporary failure of the server."""
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class ThrottlingException(DynamoDBException):
|
2016-03-22 14:37:24 +00:00
|
|
|
"""This exception might be returned if the following API operations are
|
|
|
|
requested too rapidly: CreateTable; UpdateTable; DeleteTable.
|
|
|
|
|
|
|
|
"""
|
2016-03-02 16:32:04 +00:00
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class TimeoutException(DynamoDBException):
|
|
|
|
"""The request to DynamoDB timed out."""
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class ValidationException(DynamoDBException):
|
|
|
|
"""The input fails to satisfy the constraints specified by an AWS service.
|
2016-03-22 14:37:24 +00:00
|
|
|
This error can occur for several reasons, such as a required parameter
|
|
|
|
that is missing, a value that is out range, or mismatched data types. The
|
|
|
|
error message contains details about the specific part of the request that
|
|
|
|
caused the error.
|
2016-03-02 16:32:04 +00:00
|
|
|
|
|
|
|
"""
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
MAP = {
|
2016-03-22 14:37:24 +00:00
|
|
|
'com.amazonaws.dynamodb.v20120810#ConditionalCheckFailedException':
|
|
|
|
ConditionalCheckFailedException,
|
|
|
|
'com.amazonaws.dynamodb.v20120810#ItemCollectionSizeLimitExceededException':
|
|
|
|
ItemCollectionSizeLimitExceeded,
|
2016-03-02 16:32:04 +00:00
|
|
|
'com.amazonaws.dynamodb.v20120810#InternalFailure': InternalFailure,
|
2016-03-22 14:37:24 +00:00
|
|
|
'com.amazonaws.dynamodb.v20120810#LimitExceededException': LimitExceeded,
|
|
|
|
'com.amazonaws.dynamodb.v20120810#ProvisionedThroughputExceededException':
|
|
|
|
ThroughputExceeded,
|
2016-03-02 16:32:04 +00:00
|
|
|
'com.amazonaws.dynamodb.v20120810#ResourceInUseException': ResourceInUse,
|
|
|
|
'com.amazonaws.dynamodb.v20120810#ResourceNotFoundException':
|
2016-03-22 14:37:24 +00:00
|
|
|
ResourceNotFound,
|
|
|
|
'com.amazonaws.dynamodb.v20120810#ThrottlingException':
|
|
|
|
ThrottlingException,
|
2016-03-02 16:32:04 +00:00
|
|
|
'com.amazon.coral.validate#ValidationException': ValidationException
|
|
|
|
}
|