2010-05-08 21:51:41 +00:00
|
|
|
Shindo.tests('AWS::EC2 | address requests', ['aws']) do
|
2010-05-06 04:40:21 +00:00
|
|
|
|
|
|
|
@server = AWS[:ec2].servers.create(:image_id => GENTOO_AMI)
|
|
|
|
@server.wait_for { ready? }
|
2010-05-13 20:59:33 +00:00
|
|
|
@ip_address = @server.ip_address
|
2010-05-06 04:40:21 +00:00
|
|
|
|
|
|
|
tests('success') do
|
|
|
|
|
|
|
|
@public_ip = nil
|
|
|
|
|
2010-05-21 21:43:29 +00:00
|
|
|
tests('#allocate_address').formats({'publicIp' => String, 'requestId' => String}) do
|
|
|
|
data = AWS[:ec2].allocate_address.body
|
|
|
|
@public_ip = data['publicIp']
|
|
|
|
data
|
2010-05-06 04:40:21 +00:00
|
|
|
end
|
|
|
|
|
2010-05-21 21:43:29 +00:00
|
|
|
tests('#describe_addresses').formats(AWS::EC2::Formats::ADDRESSES) do
|
|
|
|
AWS[:ec2].describe_addresses.body
|
2010-05-06 04:40:21 +00:00
|
|
|
end
|
|
|
|
|
2010-05-21 21:43:29 +00:00
|
|
|
tests("#describe_addresses('#{@public_Ip}')").formats(AWS::EC2::Formats::ADDRESSES) do
|
|
|
|
AWS[:ec2].describe_addresses(@public_ip).body
|
2010-05-06 04:40:21 +00:00
|
|
|
end
|
|
|
|
|
2010-05-21 21:43:29 +00:00
|
|
|
tests("#associate_addresses('#{@server.identity}', '#{@public_Ip}')") do
|
|
|
|
|
|
|
|
formats(AWS::EC2::Formats::BASIC) do
|
|
|
|
AWS[:ec2].associate_address(@server.identity, @public_ip).body
|
|
|
|
end
|
|
|
|
|
|
|
|
tests('server.ip_address').returns(@public_ip) do
|
|
|
|
@server.reload.ip_address
|
|
|
|
end
|
|
|
|
|
2010-05-06 04:40:21 +00:00
|
|
|
end
|
|
|
|
|
2010-05-21 21:43:29 +00:00
|
|
|
tests("#dissassociate_address('#{@public_ip}')") do
|
|
|
|
|
|
|
|
formats(AWS::EC2::Formats::BASIC) do
|
|
|
|
AWS[:ec2].disassociate_address(@public_ip).body
|
|
|
|
end
|
|
|
|
|
|
|
|
test("server.ip_address is not #{@public_ip}") do
|
|
|
|
@server.reload.ip_address != @public_ip
|
|
|
|
end
|
|
|
|
|
2010-05-06 04:40:21 +00:00
|
|
|
end
|
|
|
|
|
2010-05-21 21:43:29 +00:00
|
|
|
tests("#release_address('#{@public_ip}')").formats(AWS::EC2::Formats::BASIC) do
|
|
|
|
AWS[:ec2].release_address(@public_ip).body
|
2010-05-06 04:40:21 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
tests ('failure') do
|
|
|
|
|
|
|
|
@address = AWS[:ec2].addresses.create
|
|
|
|
|
2010-05-21 21:43:29 +00:00
|
|
|
tests("#describe_addresses('127.0.0.1')").raises(Excon::Errors::BadRequest) do
|
|
|
|
AWS[:ec2].describe_addresses('127.0.0.1')
|
2010-05-06 04:40:21 +00:00
|
|
|
end
|
|
|
|
|
2010-05-21 21:43:29 +00:00
|
|
|
tests("#associate_addresses('i-00000000', '#{@address.identity}')").raises(Excon::Errors::BadRequest) do
|
|
|
|
AWS[:ec2].associate_address('i-00000000', @address.identity)
|
2010-05-06 04:40:21 +00:00
|
|
|
end
|
|
|
|
|
2010-05-21 21:43:29 +00:00
|
|
|
tests("#associate_addresses('#{@server.identity}', '127.0.0.1')").raises(Excon::Errors::BadRequest) do
|
|
|
|
AWS[:ec2].associate_address(@server.identity, '127.0.0.1')
|
2010-05-06 04:40:21 +00:00
|
|
|
end
|
|
|
|
|
2010-05-21 21:43:29 +00:00
|
|
|
tests("#disassociate_addresses('127.0.0.1') raises BadRequest error").raises(Excon::Errors::BadRequest) do
|
|
|
|
AWS[:ec2].disassociate_address('127.0.0.1')
|
2010-05-06 04:40:21 +00:00
|
|
|
end
|
|
|
|
|
2010-05-21 21:43:29 +00:00
|
|
|
tests("#release_address('127.0.0.1')").raises(Excon::Errors::BadRequest) do
|
|
|
|
AWS[:ec2].release_address('127.0.0.1')
|
2010-05-06 04:40:21 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
@address.destroy
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
@server.destroy
|
|
|
|
|
|
|
|
end
|