Add more shard iterator types.
This commit is contained in:
parent
38a4734f95
commit
57d45aa4b8
5 changed files with 402 additions and 22 deletions
|
|
@ -40,3 +40,44 @@ class KinesisResponse(BaseResponse):
|
|||
self.kinesis_backend.delete_stream(stream_name)
|
||||
|
||||
return ""
|
||||
|
||||
def get_shard_iterator(self):
|
||||
stream_name = self.parameters.get("StreamName")
|
||||
shard_id = self.parameters.get("ShardId")
|
||||
shard_iterator_type = self.parameters.get("ShardIteratorType")
|
||||
starting_sequence_number = self.parameters.get("StartingSequenceNumber")
|
||||
|
||||
shard_iterator = self.kinesis_backend.get_shard_iterator(
|
||||
stream_name, shard_id, shard_iterator_type, starting_sequence_number,
|
||||
)
|
||||
|
||||
return json.dumps({
|
||||
"ShardIterator": shard_iterator
|
||||
})
|
||||
|
||||
def get_records(self):
|
||||
shard_iterator = self.parameters.get("ShardIterator")
|
||||
limit = self.parameters.get("Limit")
|
||||
|
||||
next_shard_iterator, records = self.kinesis_backend.get_records(shard_iterator, limit)
|
||||
|
||||
return json.dumps({
|
||||
"NextShardIterator": next_shard_iterator,
|
||||
"Records": [record.to_json() for record in records]
|
||||
})
|
||||
|
||||
def put_record(self):
|
||||
stream_name = self.parameters.get("StreamName")
|
||||
partition_key = self.parameters.get("PartitionKey")
|
||||
explicit_hash_key = self.parameters.get("ExplicitHashKey")
|
||||
sequence_number_for_ordering = self.parameters.get("SequenceNumberForOrdering")
|
||||
data = self.parameters.get("Data")
|
||||
|
||||
sequence_number, shard_id = self.kinesis_backend.put_record(
|
||||
stream_name, partition_key, explicit_hash_key, sequence_number_for_ordering, data
|
||||
)
|
||||
|
||||
return json.dumps({
|
||||
"SequenceNumber": sequence_number,
|
||||
"ShardId": shard_id,
|
||||
})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue