From aa94d9d57c8fd267f3e108a4ed8f2a944d670776 Mon Sep 17 00:00:00 2001 From: Sneha Somwanshi Date: Thu, 31 Oct 2013 16:47:44 +0000 Subject: [PATCH] using new way of task mocking for edgegateway tests --- .../post_configure_edge_gateway_services.rb | 22 +++++++++++++++++-- .../requests/compute/edge_gateway_tests.rb | 4 ++-- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/lib/fog/vcloud_director/requests/compute/post_configure_edge_gateway_services.rb b/lib/fog/vcloud_director/requests/compute/post_configure_edge_gateway_services.rb index d805c2119..3793348c7 100644 --- a/lib/fog/vcloud_director/requests/compute/post_configure_edge_gateway_services.rb +++ b/lib/fog/vcloud_director/requests/compute/post_configure_edge_gateway_services.rb @@ -42,8 +42,26 @@ module Fog "No access to entity \"(com.vmware.vcloud.entity.edgegateway:#{id})\"." ) end - data[:edge_gateways][id][:Configuration][:EdgeGatewayServiceConfiguration] = configuration - Excon::Response.new(:body => {:name => 'mock_task', :href => '/10000000000000000000000000000000' }) + + owner = {:href => '', :name => nil, :type => nil} #known-bug: admin-api does not return owner. + task_id = enqueue_task( + "Configuring edgegateway(#{id})", 'networkConfigureEdgeGatewayServices', owner, + :on_success => lambda do + data[:edge_gateways][id][:Configuration][:EdgeGatewayServiceConfiguration] = configuration + end + ) + + body = { + :xmlns => xmlns, + :xmlns_xsi => xmlns_xsi, + :xsi_schemaLocation => xsi_schema_location, + }.merge(task_body(task_id)) + + Excon::Response.new( + :status => 202, + :headers => {'Content-Type' => "#{body[:type]};version=#{api_version}"}, + :body => body + ) end end end diff --git a/tests/vcloud_director/requests/compute/edge_gateway_tests.rb b/tests/vcloud_director/requests/compute/edge_gateway_tests.rb index b228a1831..7dacc5fec 100644 --- a/tests/vcloud_director/requests/compute/edge_gateway_tests.rb +++ b/tests/vcloud_director/requests/compute/edge_gateway_tests.rb @@ -66,7 +66,7 @@ Shindo.tests('Compute::VcloudDirector | edge gateway requests', ['vclouddirector raise('fail fast if our test firewall rule already exists - its likely left over from a broken test run') if rule response = @service.post_configure_edge_gateway_services(@edge_gateway_id, @new_edge_gateway_configuration) - @service.process_task(response.body) unless Fog.mocking? + @service.process_task(response.body) tests('#check for new firewall rule').returns(@new_edge_gateway_configuration[:FirewallService][:FirewallRule]) do edge_gateway = @service.get_edge_gateway(@edge_gateway_id).body @@ -76,7 +76,7 @@ Shindo.tests('Compute::VcloudDirector | edge gateway requests', ['vclouddirector tests('#remove the firewall rule added by test').returns(nil) do response = @service.post_configure_edge_gateway_services(@edge_gateway_id, @orginal_gateway_conf[:Configuration][:EdgeGatewayServiceConfiguration]) - @service.process_task(response.body) unless Fog.mocking? + @service.process_task(response.body) edge_gateway = @service.get_edge_gateway(@edge_gateway_id).body edge_gateway[:Configuration][:EdgeGatewayServiceConfiguration][:FirewallService][:FirewallRule].find { |rule| rule[:Id] == FIREWALL_RULE_ID } end