1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00

implemented list_addresses for Fog::Compute::RackspaceV2

This commit is contained in:
Kyle Rames 2012-12-20 17:42:04 -06:00
parent 887bc65142
commit a8c8e96da4
3 changed files with 70 additions and 0 deletions

View file

@ -39,6 +39,7 @@ module Fog
request :resize_server
request :confirm_resize_server
request :revert_resize_server
request :list_addresses
request :create_image
request :list_images

View file

@ -0,0 +1,36 @@
module Fog
module Compute
class RackspaceV2
class Real
def list_addresses(server_id)
request(
:method => 'GET',
:expects => 200,
:path => "/servers/#{server_id}/ips"
)
end
end
class Mock
RESPONSE_BODY = {
"addresses" => {
"public"=>[{"version"=>6, "addr"=>"2001:4800:7811:0513:0fe1:75e8:ff04:760b"}, {"version"=>4, "addr"=>"166.78.18.176"}],
"private"=>[{"version"=>4, "addr"=>"10.181.129.68"}]
}
}
def list_addresses(server_id)
raise Fog::Compute::RackspaceV2::NotFound.new if server_id == 0
response = Excon::Response.new
response.status = 200
response.body = RESPONSE_BODY
response
end
end
end
end
end

View file

@ -0,0 +1,33 @@
Shindo.tests('Fog::Compute::RackspaceV2 | address requests', ['rackspace']) do
@service = Fog::Compute.new(:provider => 'Rackspace', :version => 'V2')
tests('success') do
unless Fog.mocking?
@server = @service.servers.create(:flavor_id => 2, :image_id => "8a3a9f96-b997-46fd-b7a8-a9e740796ffd", :name => "address-tests-#{Time.now.to_i}")
@server.wait_for(timeout=1200) { ready? }
end
address_format = { "addresses"=> {
"private" => [{"addr" => String, "version" => Integer}],
"public" => [{"addr" => String, "version" => Integer }, {"addr"=> String, "version" => Integer}]}
}
begin
tests("#list_addresses(#{@server.id})").formats(address_format) do
@service.list_addresses(@server.id).body
end
ensure
@server.destroy if @server
end
end
tests('failure') do
tests('#list_addresses(0)').raises(Fog::Compute::RackspaceV2::NotFound) do
@service.list_addresses(0)
end
end
end