mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
[AWS|DynamoDB] cleanup/fixes for tables
This commit is contained in:
parent
1ae67784de
commit
54036aeb1d
5 changed files with 41 additions and 19 deletions
|
@ -10,10 +10,10 @@ module Fog
|
|||
# * 'key_schema'<~Hash>:
|
||||
# * 'HashKeyElement'<~Hash>: info for primary key
|
||||
# * 'AttributeName'<~String> - name of attribute
|
||||
# * 'AttributeType'<~String> - type of attribute
|
||||
# * 'AttributeType'<~String> - type of attribute, in %w{N NS S SS} for number, number set, string, string set
|
||||
# * 'RangeKeyElement'<~Hash>: optional, info for range key
|
||||
# * 'AttributeName'<~String> - name of attribute
|
||||
# * 'AttributeType'<~String> - type of attribute
|
||||
# * 'AttributeType'<~String> - type of attribute, in %w{N NS S SS} for number, number set, string, string set
|
||||
# * 'provisioned_throughput'<~Hash>:
|
||||
# * 'ReadCapacityUnits'<~Integer> - read capacity for table, in 5..10000
|
||||
# * 'WriteCapacityUnits'<~Integer> - write capacity for table, in 5..10000
|
||||
|
@ -26,10 +26,10 @@ module Fog
|
|||
# * 'KeySchema'<~Hash> - schema for table
|
||||
# * 'HashKeyElement'<~Hash>: info for primary key
|
||||
# * 'AttributeName'<~String> - name of attribute
|
||||
# * 'AttributeType'<~String> - type of attribute, in %w{N S} for number or string
|
||||
# * 'AttributeType'<~String> - type of attribute, in %w{N NS S SS} for number, number set, string, string set
|
||||
# * 'RangeKeyElement'<~Hash>: optional, info for range key
|
||||
# * 'AttributeName'<~String> - name of attribute
|
||||
# * 'AttributeType'<~String> - type of attribute, in %w{N S} for number or string
|
||||
# * 'AttributeType'<~String> - type of attribute, in %w{N NS S SS} for number, number set, string, string set
|
||||
# * 'ProvisionedThroughput'<~Hash>:
|
||||
# * 'ReadCapacityUnits'<~Integer> - read capacity for table, in 5..10000
|
||||
# * 'WriteCapacityUnits'<~Integer> - write capacity for table, in 5..10000
|
||||
|
|
|
@ -12,14 +12,13 @@ module Fog
|
|||
# * response<~Excon::Response>:
|
||||
# * body<~Hash>:
|
||||
# * 'TableDescription'<~Hash>
|
||||
# * 'CreationDateTime'<~Float> - Unix epoch time of table creation
|
||||
# * 'KeySchema'<~Hash> - schema for table
|
||||
# * 'HashKeyElement'<~Hash>: info for primary key
|
||||
# * 'AttributeName'<~String> - name of attribute
|
||||
# * 'AttributeType'<~String> - type of attribute, in %w{N S} for number or string
|
||||
# * 'AttributeType'<~String> - type of attribute, in %w{N NS S SS} for number, number set, string, string set
|
||||
# * 'RangeKeyElement'<~Hash>: optional, info for range key
|
||||
# * 'AttributeName'<~String> - name of attribute
|
||||
# * 'AttributeType'<~String> - type of attribute, in %w{N S} for number or string
|
||||
# * 'AttributeType'<~String> - type of attribute, in %w{N NS S SS} for number, number set, string, string set
|
||||
# * 'ProvisionedThroughput'<~Hash>:
|
||||
# * 'ReadCapacityUnits'<~Integer> - read capacity for table, in 5..10000
|
||||
# * 'WriteCapacityUnits'<~Integer> - write capacity for table, in 5..10000
|
||||
|
|
|
@ -11,15 +11,15 @@ module Fog
|
|||
# ==== Returns
|
||||
# * response<~Excon::Response>:
|
||||
# * body<~Hash>:
|
||||
# * 'TableDescription'<~Hash>
|
||||
# * 'Table'<~Hash>
|
||||
# * 'CreationDateTime'<~Float> - Unix epoch time of table creation
|
||||
# * 'KeySchema'<~Hash> - schema for table
|
||||
# * 'HashKeyElement'<~Hash>: info for primary key
|
||||
# * 'AttributeName'<~String> - name of attribute
|
||||
# * 'AttributeType'<~String> - type of attribute, in %w{N S} for number or string
|
||||
# * 'AttributeType'<~String> - type of attribute, in %w{N NS S SS} for number, number set, string, string set
|
||||
# * 'RangeKeyElement'<~Hash>: optional, info for range key
|
||||
# * 'AttributeName'<~String> - name of attribute
|
||||
# * 'AttributeType'<~String> - type of attribute, in %w{N S} for number or string
|
||||
# * 'AttributeType'<~String> - type of attribute, in %w{N NS S SS} for number, number set, string, string set
|
||||
# * 'ProvisionedThroughput'<~Hash>:
|
||||
# * 'ReadCapacityUnits'<~Integer> - read capacity for table, in 5..10000
|
||||
# * 'WriteCapacityUnits'<~Integer> - write capacity for table, in 5..10000
|
||||
|
|
|
@ -14,15 +14,14 @@ module Fog
|
|||
# ==== Returns
|
||||
# * response<~Excon::Response>:
|
||||
# * body<~Hash>:
|
||||
# * 'TableDescription'<~Hash>
|
||||
# * 'CreationDateTime'<~Float> - Unix epoch time of table creation
|
||||
# * 'Table'<~Hash>
|
||||
# * 'KeySchema'<~Hash> - schema for table
|
||||
# * 'HashKeyElement'<~Hash>: info for primary key
|
||||
# * 'AttributeName'<~String> - name of attribute
|
||||
# * 'AttributeType'<~String> - type of attribute, in %w{N S} for number or string
|
||||
# * 'AttributeType'<~String> - type of attribute, in %w{N NS S SS} for number, number set, string, string set
|
||||
# * 'RangeKeyElement'<~Hash>: optional, info for range key
|
||||
# * 'AttributeName'<~String> - name of attribute
|
||||
# * 'AttributeType'<~String> - type of attribute, in %w{N S} for number or string
|
||||
# * 'AttributeType'<~String> - type of attribute, in %w{N NS S SS} for number, number set, string, string set
|
||||
# * 'ProvisionedThroughput'<~Hash>:
|
||||
# * 'ReadCapacityUnits'<~Integer> - read capacity for table, in 5..10000
|
||||
# * 'WriteCapacityUnits'<~Integer> - write capacity for table, in 5..10000
|
||||
|
@ -36,7 +35,7 @@ module Fog
|
|||
|
||||
request(
|
||||
:body => MultiJson.encode(body),
|
||||
:headers => {'x-amz-target' => 'DynamoDB_20111205.DescribeTable'},
|
||||
:headers => {'x-amz-target' => 'DynamoDB_20111205.UpdateTable'},
|
||||
:idempotent => true
|
||||
)
|
||||
end
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
Shindo.tests('Fog::AWS[:dynamodb] | table requests', ['aws']) do
|
||||
|
||||
@table_format = {
|
||||
'CreationDateTime' => Float,
|
||||
'KeySchema' => {
|
||||
'HashKeyElement' => {
|
||||
'AttributeName' => String,
|
||||
|
@ -19,12 +20,12 @@ Shindo.tests('Fog::AWS[:dynamodb] | table requests', ['aws']) do
|
|||
|
||||
tests('success') do
|
||||
|
||||
tests("#create_table(#{@table_name}, {'HashKeyElement' => {'AttributeName' => 'id', 'AttributeType' => 'S'}, {'ReadCapacityUnits' => 5, 'WriteCapacityUnits' => 5})").formats('TableDescription' => @table_format.merge('CreationDateTime' => Float)) do
|
||||
tests("#create_table(#{@table_name}, {'HashKeyElement' => {'AttributeName' => 'id', 'AttributeType' => 'S'}, {'ReadCapacityUnits' => 5, 'WriteCapacityUnits' => 5})").formats('TableDescription' => @table_format) do
|
||||
pending if Fog.mocking?
|
||||
Fog::AWS[:dynamodb].create_table(@table_name, {'HashKeyElement' => {'AttributeName' => 'id', 'AttributeType' => 'S'}}, {'ReadCapacityUnits' => 5, 'WriteCapacityUnits' => 5}).body
|
||||
end
|
||||
|
||||
tests("#describe_table(#{@table_name})").formats('Table' => @table_format.merge('CreationDateTime' => Float)) do
|
||||
tests("#describe_table(#{@table_name})").formats('Table' => @table_format) do
|
||||
pending if Fog.mocking?
|
||||
Fog::AWS[:dynamodb].describe_table(@table_name).body
|
||||
end
|
||||
|
@ -38,7 +39,19 @@ Shindo.tests('Fog::AWS[:dynamodb] | table requests', ['aws']) do
|
|||
Fog.wait_for { Fog::AWS[:dynamodb].describe_table(@table_name).body['Table']['TableStatus'] == 'ACTIVE' }
|
||||
end
|
||||
|
||||
tests("#update_table(#{@table_name}, {'ReadCapacityUnits' => 10, 'WriteCapacityUnits' => 10})").formats('Table' => @table_format) do
|
||||
@update_table_format = {
|
||||
'TableDescription' => @table_format.merge({
|
||||
'ItemCount' => Integer,
|
||||
'ProvisionedThroughput' => {
|
||||
'LastIncreaseDateTime' => Float,
|
||||
'ReadCapacityUnits' => Integer,
|
||||
'WriteCapacityUnits' => Integer
|
||||
},
|
||||
'TableSizeBytes' => Integer
|
||||
})
|
||||
}
|
||||
|
||||
tests("#update_table(#{@table_name}, {'ReadCapacityUnits' => 10, 'WriteCapacityUnits' => 10})").formats(@update_table_format) do
|
||||
pending if Fog.mocking?
|
||||
Fog::AWS[:dynamodb].update_table(@table_name, {'ReadCapacityUnits' => 10, 'WriteCapacityUnits' => 10}).body
|
||||
end
|
||||
|
@ -47,7 +60,18 @@ Shindo.tests('Fog::AWS[:dynamodb] | table requests', ['aws']) do
|
|||
Fog.wait_for { Fog::AWS[:dynamodb].describe_table(@table_name).body['Table']['TableStatus'] == 'ACTIVE' }
|
||||
end
|
||||
|
||||
tests("#delete_table(#{@table_name}").formats('TableDescription' => @table_format) do
|
||||
@delete_table_format = {
|
||||
'TableDescription' => {
|
||||
'ProvisionedThroughput' => {
|
||||
'ReadCapacityUnits' => Integer,
|
||||
'WriteCapacityUnits' => Integer
|
||||
},
|
||||
'TableName' => String,
|
||||
'TableStatus' => String
|
||||
}
|
||||
}
|
||||
|
||||
tests("#delete_table(#{@table_name}").formats(@delete_table_format) do
|
||||
pending if Fog.mocking?
|
||||
Fog::AWS[:dynamodb].delete_table(@table_name).body
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue