moto/moto/dynamodb/models.py

57 lines
1.7 KiB
Python
Raw Normal View History

2013-02-20 01:39:04 +00:00
import datetime
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-20 00:38:33 +00:00
class DynamoDBBackend(BaseBackend):
2013-02-20 00:38:33 +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-20 00:38:33 +00:00
dynamodb_backend = DynamoDBBackend()