1
0
Fork 0
mirror of https://github.com/fog/fog-aws.git synced 2022-11-09 13:50:52 -05:00
fog--fog-aws/tests/requests/kinesis/helper.rb

111 lines
2.6 KiB
Ruby

class AWS
module Kinesis
def wait_for(&block)
Fog.wait_for do
block.call.tap do
print '.'
end
end
end
def wait_for_status(stream_name, status)
wait_for do
Fog::AWS[:kinesis].describe_stream("StreamName" => stream_name).body["StreamDescription"]["StreamStatus"] == status
end
end
def delete_if_exists(stream_name)
if Fog::AWS[:kinesis].list_streams.body["StreamNames"].include?(stream_name)
wait_for_status(stream_name, "ACTIVE")
Fog::AWS[:kinesis].delete_stream("StreamName" => @stream_id)
wait_for do
begin
Fog::AWS[:kinesis].describe_stream("StreamName" => stream_name)
false
rescue Fog::AWS::Kinesis::ResourceNotFound
true
end
end
end
end
module Formats # optional keys are commented out
LIST_STREAMS_FORMAT = {
"HasMoreStreams" => Fog::Boolean,
"StreamNames" => [
String
]
}
DESCRIBE_STREAM_FORMAT = {
"StreamDescription" => {
"HasMoreShards" => Fog::Boolean,
"Shards" => [
{
#"AdjacentParentShardId" => String,
"HashKeyRange" => {
"EndingHashKey" => String,
"StartingHashKey" => String
},
#"ParentShardId" => String,
"SequenceNumberRange" => {
# "EndingSequenceNumber" => String,
"StartingSequenceNumber" => String
},
"ShardId" => String
}
],
"StreamARN" => String,
"StreamName" => String,
"StreamStatus" => String
}
}
GET_SHARD_ITERATOR_FORMAT = {
"ShardIterator" => String
}
PUT_RECORDS_FORMAT = {
"FailedRecordCount" => Integer,
"Records" => [
{
# "ErrorCode" => String,
# "ErrorMessage" => String,
"SequenceNumber" => String,
"ShardId" => String
}
]
}
PUT_RECORD_FORMAT = {
"SequenceNumber" => String,
"ShardId" => String
}
GET_RECORDS_FORMAT = {
"MillisBehindLatest" => Integer,
"NextShardIterator" => String,
"Records" => [
{
"Data" => String,
"PartitionKey" => String,
"SequenceNumber" => String
}
]
}
LIST_TAGS_FOR_STREAM_FORMAT = {
"HasMoreTags" => Fog::Boolean,
"Tags" => [
{
"Key" => String,
"Value" => String
}
]
}
end
end
end