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:
parent
887bc65142
commit
a8c8e96da4
3 changed files with 70 additions and 0 deletions
|
@ -39,6 +39,7 @@ module Fog
|
||||||
request :resize_server
|
request :resize_server
|
||||||
request :confirm_resize_server
|
request :confirm_resize_server
|
||||||
request :revert_resize_server
|
request :revert_resize_server
|
||||||
|
request :list_addresses
|
||||||
|
|
||||||
request :create_image
|
request :create_image
|
||||||
request :list_images
|
request :list_images
|
||||||
|
|
36
lib/fog/rackspace/requests/compute_v2/list_addresses.rb
Normal file
36
lib/fog/rackspace/requests/compute_v2/list_addresses.rb
Normal 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
|
33
tests/rackspace/requests/compute_v2/address_tests.rb
Normal file
33
tests/rackspace/requests/compute_v2/address_tests.rb
Normal 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
|
Loading…
Add table
Reference in a new issue