Last active
December 14, 2015 11:58
-
-
Save rubiojr/5082430 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/lib/fog/openstack/requests/network/update_router.rb b/lib/fog/openstack/requests/network/update_router.rb | |
index af25c77..1012030 100644 | |
--- a/lib/fog/openstack/requests/network/update_router.rb | |
+++ b/lib/fog/openstack/requests/network/update_router.rb | |
@@ -53,20 +53,30 @@ 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 faad48a..9390fe8 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 9aca47d..f21014a 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 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment