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

[openstack|network] mock fixes in some OpenStack Network requests

Updated mocks in some network request fixing some issues and keeping
the mocking style used in other requests.
This commit is contained in:
Sergio Rubio 2013-03-26 19:49:10 +01:00
parent 33ad60352f
commit 963817d439
4 changed files with 33 additions and 43 deletions

View file

@ -38,16 +38,15 @@ module Fog
response.status = 201
data = {
'router' => {
'status' => 'ACTIVE',
'external_gateway_info' => nil,
'name' => 'another_router',
'admin_state_up' => true,
'tenant_id' => '6b96ff0cb17a4b859e1e575d221683d3',
'id' => '8604a0de-7f6b-409a-a47c-a1cc7bc77b2e'
'id' => Fog::Mock.random_numbers(6).to_s,
'status' => options[:status] || 'ACTIVE',
'external_gateway_info' => options[:external_gateway_info],
'name' => name,
'admin_state_up' => options[:admin_state_up],
'tenant_id' => '6b96ff0cb17a4b859e1e575d221683d3'
}
}
self.data['routers'] ||= []
self.data['routers'] << data['router']
self.data[:routers][data['router']['id']] = data['router']
response.body = data
response
end

View file

@ -15,19 +15,10 @@ module Fog
class Mock
def get_router(router_id)
response = Excon::Response.new
if data = (self.data['routers'].find { |r| r['id'] == router_id })
if data = (self.data[:routers].find { |id,value| id == router_id })
response.status = 200
response.body = {
'router' => {
'status' => 'ACTIVE',
'external_gateway_info' => {
'network_id' => '3c5bcddd-6af9-4e6b-9c3e-c153e521cab8'
},
'name' => 'router1',
'admin_state_up' => true,
'tenant_id' => '33a40233088643acb66ff6eb0ebea679',
'id' => 'a9254bdb-2613-4a13-ac4c-adc581fba50d'
}
'router' => data[1],
}
response
else

View file

@ -16,7 +16,7 @@ module Fog
class Mock
def list_routers(filters = {})
Excon::Response.new(
:body => { 'routers' => self.data['routers'] },
:body => { 'routers' => self.data[:routers].values },
:status => 200
)
end

View file

@ -53,30 +53,30 @@ module Fog
class Mock
def update_router(router_id, options = {})
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
response.body = data
response
router = list_routers.body['routers'].detect do |_|
_['id'] == router_id
end
if router
egi = options[:external_gateway_info]
if egi
if egi.is_a?(Fog::Network::OpenStack::Network)
router['external_gateway_info'] = { 'network_id' => egi.id }
elsif egi.is_a?(Hash) and egi['network_id']
router['external_gateway_info'] = egi
else
raise ArgumentError.new('Invalid external_gateway_info attribute')
end
end
options.keys.each do |k|
router[k.to_s] = options[k]
end
response.body = { 'router' => router }
response.status = 200
response
else
raise Fog::Network::OpenStack::NotFound
end
end
end