From 0533db7f1e8a958f24bf9c0c832924524f82b877 Mon Sep 17 00:00:00 2001 From: Tomokazu Hirai Date: Tue, 5 Mar 2013 12:36:27 +0900 Subject: [PATCH] @rubiojr fixed mock faulure for router(s)_tests.rb --- .../requests/network/update_router.rb | 33 ++++++++++++------- .../openstack/models/network/router_tests.rb | 2 +- .../openstack/models/network/routers_tests.rb | 2 +- 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/lib/fog/openstack/requests/network/update_router.rb b/lib/fog/openstack/requests/network/update_router.rb index af25c7768..19d5cda47 100644 --- a/lib/fog/openstack/requests/network/update_router.rb +++ b/lib/fog/openstack/requests/network/update_router.rb @@ -53,20 +53,29 @@ module Fog class Mock def update_router(router_id, options = {}) - raise Fog::Network::OpenStack::NotFound if router_id == 0 + router = self.data['routers'].find { |r| r['id'] == router_id } + raise Fog::Network::OpenStack::NotFound unless router + data = { 'router' => router } + + vanilla_options = [:name, :admin_state_up] + + egi = options[:external_gateway_info] + if egi + if egi.is_a?(Fog::Network::OpenStack::Network) + data['router']['external_gateway_info'] = { 'network_id' => egi.id } + elsif egi.is_a?(Hash) and egi['network_id'] + data['router']['external_gateway_info'] = egi + else + raise ArgumentError.new('Invalid external_gateway_info attribute') + end + end + + vanilla_options.reject{ |o| options[o].nil? }.each do |key| + data['router'][key] = options[key] + end response = Excon::Response.new response.status = 201 - data = { - 'status' => 'ACTIVE', - 'external_gateway_info' => { - 'network_id' => '8ca37218-28ff-41cb-9b10-039601ea7e6b' - }, - 'name' => 'another_router', - 'admin_state_up' => true, - 'tenant_id' => '6b96ff0cb17a4b859e1e575d221683d3', - 'id' => '8604a0de-7f6b-409a-a47c-a1cc7bc77b2e' - } - response.body = { 'router' => data } + response.body = data response end end diff --git a/tests/openstack/models/network/router_tests.rb b/tests/openstack/models/network/router_tests.rb index faad48a76..9390fe8ee 100644 --- a/tests/openstack/models/network/router_tests.rb +++ b/tests/openstack/models/network/router_tests.rb @@ -5,7 +5,7 @@ Shindo.tests("Fog::Network[:openstack] | router", ['openstack']) do tests('#create').succeeds do @instance = Fog::Network[:openstack].routers.create( :name => 'router_name', - :admin_state_up => true, + :admin_state_up => true ) !@instance.id.nil? end diff --git a/tests/openstack/models/network/routers_tests.rb b/tests/openstack/models/network/routers_tests.rb index 9aca47d2c..f21014a1d 100644 --- a/tests/openstack/models/network/routers_tests.rb +++ b/tests/openstack/models/network/routers_tests.rb @@ -1,7 +1,7 @@ Shindo.tests("Fog::Network[:openstack] | routers", ['openstack']) do @router = Fog::Network[:openstack].routers.create( :name => 'router_name', - :admin_state_up => true, + :admin_state_up => true ) @routers = Fog::Network[:openstack].routers