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 :confirm_resize_server
|
||||
request :revert_resize_server
|
||||
request :list_addresses
|
||||
|
||||
request :create_image
|
||||
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