2013-02-20 01:39:04 +00:00
|
|
|
import datetime
|
|
|
|
|
2013-02-19 13:26:05 +00:00
|
|
|
from moto.core import BaseBackend
|
2013-02-20 01:39:04 +00:00
|
|
|
from .utils import unix_time
|
|
|
|
|
|
|
|
|
|
|
|
class Table(object):
|
|
|
|
|
|
|
|
def __init__(self, name, hash_key_attr=None, hash_key_type=None,
|
2013-03-05 13:35:18 +00:00
|
|
|
range_key_attr=None, range_key_type=None, read_capacity=None,
|
|
|
|
write_capacity=None):
|
2013-02-20 01:39:04 +00:00
|
|
|
self.name = name
|
|
|
|
self.hash_key_attr = hash_key_attr
|
|
|
|
self.hash_key_type = hash_key_type
|
|
|
|
self.range_key_attr = range_key_attr
|
|
|
|
self.range_key_type = range_key_type
|
|
|
|
self.read_capacity = read_capacity
|
|
|
|
self.write_capacity = write_capacity
|
|
|
|
self.created_at = datetime.datetime.now()
|
|
|
|
|
|
|
|
@property
|
|
|
|
def describe(self):
|
2013-02-26 05:31:01 +00:00
|
|
|
return {
|
|
|
|
"Table": {
|
|
|
|
"CreationDateTime": unix_time(self.created_at),
|
|
|
|
"KeySchema": {
|
|
|
|
"HashKeyElement": {
|
|
|
|
"AttributeName": self.hash_key_attr,
|
|
|
|
"AttributeType": self.hash_key_type
|
|
|
|
},
|
|
|
|
"RangeKeyElement": {
|
|
|
|
"AttributeName": self.range_key_attr,
|
|
|
|
"AttributeType": self.range_key_type
|
|
|
|
}
|
2013-02-20 01:39:04 +00:00
|
|
|
},
|
2013-02-26 05:31:01 +00:00
|
|
|
"ProvisionedThroughput": {
|
|
|
|
"ReadCapacityUnits": self.read_capacity,
|
|
|
|
"WriteCapacityUnits": self.write_capacity
|
|
|
|
},
|
|
|
|
"TableName": self.name,
|
|
|
|
"TableStatus": "ACTIVE",
|
|
|
|
"ItemCount": 0,
|
|
|
|
"TableSizeBytes": 0,
|
|
|
|
}
|
2013-02-20 01:39:04 +00:00
|
|
|
}
|
2013-02-19 13:26:05 +00:00
|
|
|
|
2013-02-20 00:38:33 +00:00
|
|
|
|
2013-02-19 13:26:05 +00:00
|
|
|
class DynamoDBBackend(BaseBackend):
|
2013-02-20 00:38:33 +00:00
|
|
|
|
2013-02-19 13:26:05 +00:00
|
|
|
def __init__(self):
|
|
|
|
self.tables = {}
|
|
|
|
|
2013-02-20 01:39:04 +00:00
|
|
|
def create_table(self, name, **params):
|
|
|
|
self.tables[name] = Table(name, **params)
|
2013-02-19 13:26:05 +00:00
|
|
|
|
2013-02-20 00:38:33 +00:00
|
|
|
dynamodb_backend = DynamoDBBackend()
|