From 6d648dd8a7c61f4253bb9b93c467b8c8c768edd7 Mon Sep 17 00:00:00 2001 From: kanetann Date: Thu, 14 Feb 2013 18:47:50 +0900 Subject: [PATCH 1/3] fixed bug, quantum api need no underscore valiable name. (ex floatingips --- lib/fog/openstack/models/network/floating_ip.rb | 2 +- lib/fog/openstack/models/network/floating_ips.rb | 4 ++-- lib/fog/openstack/requests/network/associate_floating_ip.rb | 6 +++--- lib/fog/openstack/requests/network/create_floating_ip.rb | 6 +++--- lib/fog/openstack/requests/network/delete_floating_ip.rb | 2 +- .../openstack/requests/network/disassociate_floating_ip.rb | 6 +++--- lib/fog/openstack/requests/network/get_floating_ip.rb | 2 +- lib/fog/openstack/requests/network/list_floating_ips.rb | 2 +- 8 files changed, 15 insertions(+), 15 deletions(-) diff --git a/lib/fog/openstack/models/network/floating_ip.rb b/lib/fog/openstack/models/network/floating_ip.rb index 0a2322d09..b38fc512e 100644 --- a/lib/fog/openstack/models/network/floating_ip.rb +++ b/lib/fog/openstack/models/network/floating_ip.rb @@ -32,7 +32,7 @@ module Fog merge_attributes(connection.create_floating_ip(self.floating_network_id, - self.attributes).body['floating_ip']) + self.attributes).body['floatingip']) self end diff --git a/lib/fog/openstack/models/network/floating_ips.rb b/lib/fog/openstack/models/network/floating_ips.rb index f5f975af9..a7e081a65 100644 --- a/lib/fog/openstack/models/network/floating_ips.rb +++ b/lib/fog/openstack/models/network/floating_ips.rb @@ -17,11 +17,11 @@ module Fog def all(filters = filters) self.filters = filters - load(connection.list_floating_ips(filters).body['floating_ips']) + load(connection.list_floating_ips(filters).body['floatingips']) end def get(floating_network_id) - if floating_ip = connection.get_floating_ip(floating_network_id).body['floating_ip'] + if floating_ip = connection.get_floating_ip(floating_network_id).body['floatingip'] new(floating_ip) end rescue Fog::Network::OpenStack::NotFound diff --git a/lib/fog/openstack/requests/network/associate_floating_ip.rb b/lib/fog/openstack/requests/network/associate_floating_ip.rb index 440f5b744..8bd845b50 100644 --- a/lib/fog/openstack/requests/network/associate_floating_ip.rb +++ b/lib/fog/openstack/requests/network/associate_floating_ip.rb @@ -5,14 +5,14 @@ module Fog class Real def associate_floating_ip(floating_ip_id, port_id, options = {}) data = { - 'floating_ip' => { + 'floatingip' => { 'port_id' => port_id, } } vanilla_options = [:fixed_ip_address] vanilla_options.reject{ |o| options[o].nil? }.each do |key| - data['floating_ip'][key] = options[key] + data['floatingip'][key] = options[key] end request( @@ -39,7 +39,7 @@ module Fog } self.data[:floating_ips][data['floating_ip_id']] = data - response.body = { 'floating_ip' => data } + response.body = { 'floatingip' => data } response end end diff --git a/lib/fog/openstack/requests/network/create_floating_ip.rb b/lib/fog/openstack/requests/network/create_floating_ip.rb index be5e9c345..3b7420ec1 100644 --- a/lib/fog/openstack/requests/network/create_floating_ip.rb +++ b/lib/fog/openstack/requests/network/create_floating_ip.rb @@ -5,7 +5,7 @@ module Fog class Real def create_floating_ip(floating_network_id, options = {}) data = { - 'floating_ip' => { + 'floatingip' => { 'floating_network_id' => floating_network_id, 'port_id' => options[:port_id], 'tenant_id' => options[:tenant_id], @@ -15,7 +15,7 @@ module Fog vanilla_options = [:port_id, :tenant_id, :fixed_ip_address ] vanilla_options.reject{ |o| options[o].nil? }.each do |key| - data['floating_ip'][key] = options[key] + data['floatingip'][key] = options[key] end request( @@ -40,7 +40,7 @@ module Fog 'router_id' => nil, } self.data[:floating_ips][data['id']] = data - response.body = { 'floating_ip' => data } + response.body = { 'floatingip' => data } response end end diff --git a/lib/fog/openstack/requests/network/delete_floating_ip.rb b/lib/fog/openstack/requests/network/delete_floating_ip.rb index ff594e325..42c1a4113 100644 --- a/lib/fog/openstack/requests/network/delete_floating_ip.rb +++ b/lib/fog/openstack/requests/network/delete_floating_ip.rb @@ -15,7 +15,7 @@ module Fog class Mock def delete_floating_ip(floating_ip_id) response = Excon::Response.new - if list_floating_ips.body['floating_ips'].map { |r| r['id'] }.include? floating_ip_id + if list_floating_ips.body['floatingips'].map { |r| r['id'] }.include? floating_ip_id self.data[:floating_ips].delete(floating_ip_id) response.status = 204 response diff --git a/lib/fog/openstack/requests/network/disassociate_floating_ip.rb b/lib/fog/openstack/requests/network/disassociate_floating_ip.rb index 8889b842f..a27576e17 100644 --- a/lib/fog/openstack/requests/network/disassociate_floating_ip.rb +++ b/lib/fog/openstack/requests/network/disassociate_floating_ip.rb @@ -5,14 +5,14 @@ module Fog class Real def disassociate_floating_ip(floating_ip_id, options = {}) data = { - 'floating_ip' => { + 'floatingip' => { 'port_id' => nil, } } vanilla_options = [:fixed_ip_address] vanilla_options.reject{ |o| options[o].nil? }.each do |key| - data['floating_ip'][key] = options[key] + data['floatingip'][key] = options[key] end request( @@ -39,7 +39,7 @@ module Fog } self.data[:floating_ips][data['floating_ip_id']] = data - response.body = { 'floating_ip' => data } + response.body = { 'floatingip' => data } response end end diff --git a/lib/fog/openstack/requests/network/get_floating_ip.rb b/lib/fog/openstack/requests/network/get_floating_ip.rb index aca3a1382..2bcb7ecd5 100644 --- a/lib/fog/openstack/requests/network/get_floating_ip.rb +++ b/lib/fog/openstack/requests/network/get_floating_ip.rb @@ -18,7 +18,7 @@ module Fog if data = self.data[:floating_ips][floating_ip_id] response.status = 200 response.body = { - "floating_ip" => { + "floatingip" => { "id" => "00000000-0000-0000-0000-000000000000", # changed # "floating_ip_id" => floating_ip_id, diff --git a/lib/fog/openstack/requests/network/list_floating_ips.rb b/lib/fog/openstack/requests/network/list_floating_ips.rb index 01b7ab0bd..b14844199 100644 --- a/lib/fog/openstack/requests/network/list_floating_ips.rb +++ b/lib/fog/openstack/requests/network/list_floating_ips.rb @@ -16,7 +16,7 @@ module Fog class Mock def list_floating_ips(filters = {}) Excon::Response.new( - :body => { 'floating_ips' => self.data[:floating_ips].values }, + :body => { 'floatingips' => self.data[:floating_ips].values }, :status => 200 ) end From c35f4affa79dea5cf520dd1c954c8f32022dfb96 Mon Sep 17 00:00:00 2001 From: Marc G Gauthier Date: Mon, 25 Feb 2013 10:36:28 +0100 Subject: [PATCH 2/3] Follow redirection from response even if response is a Hash --- lib/fog/aws/storage.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/fog/aws/storage.rb b/lib/fog/aws/storage.rb index a1be79ee4..0307ccdaa 100644 --- a/lib/fog/aws/storage.rb +++ b/lib/fog/aws/storage.rb @@ -400,7 +400,7 @@ DATA begin response = @connection.request(params, &block) rescue Excon::Errors::TemporaryRedirect => error - uri = URI.parse(error.response.headers['Location']) + uri = URI.parse(error.response.is_a?(Hash) ? error.response[:headers]['Location'] : error.response.headers['Location']) Fog::Logger.warning("fog: followed redirect to #{uri.host}, connecting to the matching region will be more performant") response = Fog::Connection.new("#{@scheme}://#{uri.host}:#{@port}", false, @connection_options).request(original_params, &block) end From 1aea726f285d5e8958384f674a680fdce1bd37a0 Mon Sep 17 00:00:00 2001 From: Kyle Rames Date: Mon, 25 Feb 2013 09:54:34 -0600 Subject: [PATCH 3/3] [rackspace|storage] removing type conversion for metadata per https://github.com/fog/fog/pull/1587 --- lib/fog/rackspace/models/storage/metadata.rb | 2 +- tests/rackspace/models/storage/directories_tests.rb | 2 +- tests/rackspace/models/storage/directory_tests.rb | 2 +- tests/rackspace/models/storage/metadata_tests.rb | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/fog/rackspace/models/storage/metadata.rb b/lib/fog/rackspace/models/storage/metadata.rb index d586e964b..8dd6a9c7b 100644 --- a/lib/fog/rackspace/models/storage/metadata.rb +++ b/lib/fog/rackspace/models/storage/metadata.rb @@ -42,7 +42,7 @@ module Fog headers.each_pair do |k, v| key = Metadata.to_key(k) next unless key - metadata.data[key] = Fog::JSON.decode(v) + metadata.data[key] = v end metadata end diff --git a/tests/rackspace/models/storage/directories_tests.rb b/tests/rackspace/models/storage/directories_tests.rb index acb5ee773..b1f94dec0 100644 --- a/tests/rackspace/models/storage/directories_tests.rb +++ b/tests/rackspace/models/storage/directories_tests.rb @@ -14,7 +14,7 @@ Shindo.tests('Fog::Rackspace::Storage | directories', ['rackspace']) do tests('#get').succeeds do instance = @service.directories.get @name returns(false) { instance.nil? } - returns(true) { instance.metadata[:fog_test] } + returns('true') { instance.metadata[:fog_test] } returns(@name) { instance.key } returns(1) { instance.count } returns( Fog::Storage.get_body_size(lorem_file)) {instance.bytes } diff --git a/tests/rackspace/models/storage/directory_tests.rb b/tests/rackspace/models/storage/directory_tests.rb index 01103e802..246eb053d 100644 --- a/tests/rackspace/models/storage/directory_tests.rb +++ b/tests/rackspace/models/storage/directory_tests.rb @@ -119,7 +119,7 @@ Shindo.tests('Fog::Rackspace::Storage | directory', ['rackspace']) do @service.put_container(@instance.key, {"X-Container-Meta-List-Test"=>"true"} ) dir = @service.directories.find {|d| d.key == @instance.key } returns(nil) { dir.instance_variable_get("@metadata") } - returns(true) { dir.metadata[:list_test] } + returns('true') { dir.metadata[:list_test] } end end diff --git a/tests/rackspace/models/storage/metadata_tests.rb b/tests/rackspace/models/storage/metadata_tests.rb index 7978a64fd..a640b3793 100644 --- a/tests/rackspace/models/storage/metadata_tests.rb +++ b/tests/rackspace/models/storage/metadata_tests.rb @@ -31,11 +31,11 @@ Shindo.tests('Fog::Rackspace::Storage | metadata', ['rackspace']) do metadata.to_headers end - tests("#from_headers").returns({:my_boolean=>true, :my_integer=>42, :my_string=>"I am a string"}) do + tests("#from_headers").returns({:my_boolean=>"true", :my_integer=>"42", :my_string=>"I am a string"}) do headers = { "X-Container-Meta-My-Integer"=> "42", "X-Container-Meta-My-Boolean"=> "true", - "X-Container-Meta-My-String"=> "\"I am a string\"" + "X-Container-Meta-My-String"=> "I am a string" } metadata = Fog::Storage::Rackspace::Metadata.from_headers headers