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:
parent
7908f6d3da
commit
54306215d2
2 changed files with 23 additions and 36 deletions
|
@ -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. \
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue