1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00

[openstack|network] taking another shot at repairing a broken test

This commit is contained in:
Kyle Rames 2014-04-02 13:36:55 -05:00
parent 7908f6d3da
commit 54306215d2
2 changed files with 23 additions and 36 deletions

View file

@ -21,6 +21,7 @@ module Fog
data['router'][key] = options[key]
end
# remove this in a future
egi = options[:external_gateway_info]
if egi
if egi.is_a?(Fog::Network::OpenStack::Network)
@ -48,6 +49,7 @@ module Fog
response = Excon::Response.new
response.status = 201
# remove this in a future
egi = options[:external_gateway_info]
if egi && egi.is_a?(Fog::Network::OpenStack::Network)
Fog::Logger.deprecation "Passing a model objects into options[:external_gateway_info] is deprecated. \

View file

@ -9,24 +9,15 @@ module Fog
# Beyond the name and the administrative state, the only
# parameter which can be updated with this operation is
# the external gateway.
#
# router = Fog::Network[:openstack].routers.first
# net = Fog::Network[:openstack].networks.first
#
# # :external_gateway_info can be either a
# # Fog::Network::OpenStack::Network or a Hash
# # like { 'network_id' => network.id }
# Fog::Network[:openstack].update_router router.id,
# :name => 'foo',
# :external_gateway_info => net,
# :admin_state_up => true
#
# @see http://docs.openstack.org/api/openstack-network/2.0/content/router_update.html
def update_router(router_id, options = {})
data = { 'router' => {} }
vanilla_options = [:name, :admin_state_up]
[:name, :admin_state_up].each do |key|
data['router'][key] = options[key] if options[key]
end
# remove this in a future
egi = options[:external_gateway_info]
if egi
if egi.is_a?(Fog::Network::OpenStack::Network)
@ -40,10 +31,6 @@ module Fog
end
end
vanilla_options.reject{ |o| options[o].nil? }.each do |key|
data['router'][key] = options[key]
end
request(
:body => Fog::JSON.encode(data),
:expects => 200,
@ -58,27 +45,25 @@ module Fog
response = Excon::Response.new
router = list_routers.body['routers'].find {|r| r[:id] == router_id}
if router
egi = options[:external_gateway_info]
if egi
if egi.is_a?(Fog::Network::OpenStack::Network)
Fog::Logger.deprecation "Passing a model objects into options[:external_gateway_info] is deprecated. \
Please pass external external gateway as follows options[:external_gateway_info] = { :network_id => NETWORK_ID }]"
router[:external_gateway_info] = { :network_id => egi.id }
else egi.is_a?(Hash) and egi[:network_id]
router[:external_gateway_info] = egi
end
end
options.keys.each do |k|
router[k] = options[k]
end
raise Fog::Network::OpenStack::NotFound unless router
response.body = { 'router' => router }
response.status = 200
response
else
raise Fog::Network::OpenStack::NotFound
options.keys.each {|k| router[k] = options[k] }
# remove this in a future
egi = options[:external_gateway_info]
if egi
if egi.is_a?(Fog::Network::OpenStack::Network)
Fog::Logger.deprecation "Passing a model objects into options[:external_gateway_info] is deprecated. \
Please pass external external gateway as follows options[:external_gateway_info] = { :network_id => NETWORK_ID }]"
router[:external_gateway_info] = { :network_id => egi.id }
else egi.is_a?(Hash) && egi[:network_id]
router[:external_gateway_info] = egi
end
end
response.body = { 'router' => router }
response.status = 200
response
end
end