From baffd91136329ab4ca9c77f2ffe815a1fd0bcdcd Mon Sep 17 00:00:00 2001 From: Nat Welch Date: Wed, 17 Sep 2014 10:07:12 -0700 Subject: [PATCH 1/4] [google|compute] Change how get_region works for mocks. --- lib/fog/google/requests/compute/get_region.rb | 22 +++++++++++++------ .../models/compute/target_pools_tests.rb | 1 - 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/lib/fog/google/requests/compute/get_region.rb b/lib/fog/google/requests/compute/get_region.rb index 3757eea38..f0eced292 100755 --- a/lib/fog/google/requests/compute/get_region.rb +++ b/lib/fog/google/requests/compute/get_region.rb @@ -2,13 +2,21 @@ module Fog module Compute class Google class Mock - def get_region(identity) - identity = identity.split('/')[-1] - regions = Fog::Compute[:google].list_regions - region = regions.body['items'].select { |region| region['name'] == identity } - - raise Fog::Errors::NotFound if region.nil? || region.empty? - build_excon_response(region.first) + def get_region(region_name) + region = self.data[:regions][region_name] || { + "error" => { + "errors" => [ + { + "domain" => "global", + "reason" => "notFound", + "message" => "The resource 'projects/#{project}/regions/#{region_name}' was not found" + } + ], + "code" => 404, + "message" => "The resource 'projects/#{project}/regions/#{region_name}' was not found" + } + } + build_excon_response(region) end end diff --git a/tests/google/models/compute/target_pools_tests.rb b/tests/google/models/compute/target_pools_tests.rb index 9e8e92c32..59cd12eca 100644 --- a/tests/google/models/compute/target_pools_tests.rb +++ b/tests/google/models/compute/target_pools_tests.rb @@ -5,5 +5,4 @@ Shindo.tests("Fog::Compute[:google] | target pools model", ['google']) do instance = create_test_server(Fog::Compute[:google], 'us-central1-a') health_check = create_test_http_health_check(Fog::Compute[:google]) collection_tests(Fog::Compute[:google].target_pools, {:name => "fog-test-target-pool-#{random_string}", :region => region, :instances => [instance.self_link], :healthChecks => [health_check.self_link]}) - end From a130429a75ef9a137b32804afe49ad159b4c8efd Mon Sep 17 00:00:00 2001 From: Nat Welch Date: Wed, 17 Sep 2014 10:16:11 -0700 Subject: [PATCH 2/4] [google|compute] Make get_region look the same for real and mock --- lib/fog/google/requests/compute/get_region.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/fog/google/requests/compute/get_region.rb b/lib/fog/google/requests/compute/get_region.rb index f0eced292..41890dd62 100755 --- a/lib/fog/google/requests/compute/get_region.rb +++ b/lib/fog/google/requests/compute/get_region.rb @@ -2,7 +2,8 @@ module Fog module Compute class Google class Mock - def get_region(region_name) + def get_region(identity) + region_name = identity.split('/')[-1] region = self.data[:regions][region_name] || { "error" => { "errors" => [ From a2d41af9d71cdae6b16a21d6830c82f263d372e3 Mon Sep 17 00:00:00 2001 From: Nat Welch Date: Wed, 17 Sep 2014 11:19:59 -0700 Subject: [PATCH 3/4] [google|compute] Change target pool code to be correct and consistent with fog. --- lib/fog/google/models/compute/target_pools.rb | 5 ++-- lib/fog/google/requests/compute/get_region.rb | 8 +++--- .../requests/compute/get_target_pool.rb | 28 ++++++++----------- .../models/compute/target_pools_tests.rb | 5 +++- 4 files changed, 21 insertions(+), 25 deletions(-) diff --git a/lib/fog/google/models/compute/target_pools.rb b/lib/fog/google/models/compute/target_pools.rb index ecfffd9db..f407e23ce 100644 --- a/lib/fog/google/models/compute/target_pools.rb +++ b/lib/fog/google/models/compute/target_pools.rb @@ -22,15 +22,14 @@ module Fog def get(identity, region=nil) response = nil if region.nil? - service.list_regions.body['items'].each do |region| + service.regions.all.each do |region| begin - response = service.get_target_pool(identity, region['name']) + response = service.get_target_pool(identity, region.name) break if response.status == 200 rescue Fog::Errors::Error end end else - region = region['name'] if region['name'] response = service.get_target_pool(identity, region) end return nil if response.nil? diff --git a/lib/fog/google/requests/compute/get_region.rb b/lib/fog/google/requests/compute/get_region.rb index 41890dd62..87c5f3910 100755 --- a/lib/fog/google/requests/compute/get_region.rb +++ b/lib/fog/google/requests/compute/get_region.rb @@ -3,18 +3,18 @@ module Fog class Google class Mock def get_region(identity) - region_name = identity.split('/')[-1] - region = self.data[:regions][region_name] || { + rname = identity.split('/')[-1] + region = self.data[:regions][rname] || { "error" => { "errors" => [ { "domain" => "global", "reason" => "notFound", - "message" => "The resource 'projects/#{project}/regions/#{region_name}' was not found" + "message" => "The resource 'projects/#{project}/regions/#{rname}' was not found" } ], "code" => 404, - "message" => "The resource 'projects/#{project}/regions/#{region_name}' was not found" + "message" => "The resource 'projects/#{project}/regions/#{rname}' was not found" } } build_excon_response(region) diff --git a/lib/fog/google/requests/compute/get_target_pool.rb b/lib/fog/google/requests/compute/get_target_pool.rb index 1bdad81ee..8c7929395 100644 --- a/lib/fog/google/requests/compute/get_target_pool.rb +++ b/lib/fog/google/requests/compute/get_target_pool.rb @@ -3,24 +3,18 @@ module Fog class Google class Mock def get_target_pool(name, region_name) - region_name = get_region(region_name).body['name'] - region = data(project)[:regions][region_name] - target_pool = data(project)[:target_pools][name] - if target_pool.nil? or target_pool['region'] != region['selfLink'] - return build_excon_response ({ - "error" => { - "errors" => [ - { - "domain" => "global", - "reason" => "notFound", - "message" => "The resource 'projects/#{project}/regions/#{region_name}/targetPools/#{name}' was not found" - } - ], - "code" => 404, + region = get_region(region_name) + target_pool = self.data[:target_pools][name] || { + "error" => { + "errors" => [{ + "domain" => "global", + "reason" => "notFound", "message" => "The resource 'projects/#{project}/regions/#{region_name}/targetPools/#{name}' was not found" - } - }) - end + }], + "code" => 404, + "message" => "The resource 'projects/#{project}/regions/#{region_name}/targetPools/#{name}' was not found" + } + } build_excon_response(target_pool) end end diff --git a/tests/google/models/compute/target_pools_tests.rb b/tests/google/models/compute/target_pools_tests.rb index 59cd12eca..6546f79b3 100644 --- a/tests/google/models/compute/target_pools_tests.rb +++ b/tests/google/models/compute/target_pools_tests.rb @@ -4,5 +4,8 @@ Shindo.tests("Fog::Compute[:google] | target pools model", ['google']) do region = 'us-central1' instance = create_test_server(Fog::Compute[:google], 'us-central1-a') health_check = create_test_http_health_check(Fog::Compute[:google]) - collection_tests(Fog::Compute[:google].target_pools, {:name => "fog-test-target-pool-#{random_string}", :region => region, :instances => [instance.self_link], :healthChecks => [health_check.self_link]}) + collection_tests( + Fog::Compute[:google].target_pools, + {:name => "fog-test-target-pool-#{random_string}", :region => region, :instances => [instance.self_link], :healthChecks => [health_check.self_link]} + ) end From 6a8bbde99e895362e1f18715684d63d177f56708 Mon Sep 17 00:00:00 2001 From: Nat Welch Date: Wed, 17 Sep 2014 11:26:06 -0700 Subject: [PATCH 4/4] [aws|dns] Fix some syntax errors --- tests/aws/requests/dns/health_check_tests.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/aws/requests/dns/health_check_tests.rb b/tests/aws/requests/dns/health_check_tests.rb index 59e8e82d3..c7cd31334 100644 --- a/tests/aws/requests/dns/health_check_tests.rb +++ b/tests/aws/requests/dns/health_check_tests.rb @@ -140,9 +140,9 @@ Shindo.tests('Fog::DNS[:aws] | DNS requests', ['aws', 'dns']) do :type => 'A', :ttl => 3600, :resource_records => ['8.8.4.4'], - health_check_id: @health_check_id, - set_identifier: SecureRandom.hex(8), - weight: 50 + :health_check_id => @health_check_id, + :set_identifier => SecureRandom.hex(8), + :weight => 50 } resource_record_set = [@resource_record.merge(:action => 'CREATE')] record_response = @r53_connection.change_resource_record_sets @zone_id, resource_record_set