def update_router(router_id, options = {})
data = {'router' => {}}
[:name, :admin_state_up, :routes].each do |key|
data['router'][key] = options[key] if options[key]
end
egi = options[:external_gateway_info]
if egi
if egi.kind_of?(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 }]"
data['router'][:external_gateway_info] = {:network_id => egi.id}
elsif egi.kind_of?(Hash)
data['router'][:external_gateway_info] = egi
else
raise ArgumentError, 'Invalid external_gateway_info attribute'
end
end
request(
:body => Fog::JSON.encode(data),
:expects => 200,
:method => 'PUT',
:path => "routers/#{router_id}.json"
)
end