From 532d81e63934af9f23b56a77ce3597fb3eac2480 Mon Sep 17 00:00:00 2001 From: Mike Pountney Date: Thu, 12 Dec 2013 15:42:57 +0000 Subject: [PATCH] improve network mock test data, to include vdc & IsShared --- lib/fog/vcloud_director/compute.rb | 85 +++++++++++++++++-- .../requests/compute/get_execute_query.rb | 9 +- 2 files changed, 82 insertions(+), 12 deletions(-) diff --git a/lib/fog/vcloud_director/compute.rb b/lib/fog/vcloud_director/compute.rb index 025bc3360..f1790d575 100644 --- a/lib/fog/vcloud_director/compute.rb +++ b/lib/fog/vcloud_director/compute.rb @@ -468,9 +468,12 @@ module Fog def data @@data ||= Hash.new do |hash, key| - vdc_uuid = uuid + vdc1_uuid = uuid + vdc2_uuid = uuid default_network_uuid = uuid - uplink_network_uuid = uuid + uplink_network_uuid = uuid + isolated_vdc1_network_uuid = uuid + isolated_vdc2_network_uuid = uuid hash[key] = { :catalogs => { @@ -489,7 +492,7 @@ module Fog uuid => { :name => 'MockEdgeGateway', :networks => [uplink_network_uuid, default_network_uuid], - :vdc => vdc_uuid, + :vdc => vdc1_uuid, :Configuration => { :GatewayBackingConfig => "compact", :GatewayInterfaces => { @@ -507,9 +510,15 @@ module Fog } } }, + :medias => {}, + :networks => { + default_network_uuid => { + :IsShared => true, + :vdc => vdc1_uuid, + :FenceMode => 'natRouted', :ApplyRateLimit => "false", :Description => 'Org Network for mocking', :Dns1 => '8.8.8.8', @@ -531,8 +540,61 @@ module Fog }, :UseForDefaultRoute => "false" }, - uplink_network_uuid => { + + isolated_vdc1_network_uuid => { + :IsShared => false, + :vdc => vdc1_uuid, :ApplyRateLimit => "false", + :FenceMode => 'isolated', + :Description => 'Org Network for mocking', + :Dns1 => '8.8.8.8', + :Dns2 => '8.8.4.4', + :DnsSuffix => 'example.com', + :InterfaceType => "internal", + :IpRanges => [{ + :StartAddress=>'10.1.0.100', + :EndAddress=>'10.1.0.200' + }], + :IsInherited => false, + :Netmask => '255.255.255.0', + :name => 'vDC1 backend network', + :SubnetParticipation => { + :Gateway => "192.168.1.0", + :Netmask => "255.255.0.0", + :IpAddress => "192.168.1.0" + }, + :UseForDefaultRoute => "false" + }, + + isolated_vdc2_network_uuid => { + :IsShared => false, + :vdc => vdc2_uuid, + :ApplyRateLimit => "false", + :Description => 'Org Network for mocking', + :Dns1 => '8.8.8.8', + :Dns2 => '8.8.4.4', + :DnsSuffix => 'example.com', + :InterfaceType => "internal", + :IpRanges => [{ + :StartAddress=>'10.2.0.100', + :EndAddress=>'10.2.0.200' + }], + :IsInherited => false, + :Netmask => '255.255.255.0', + :name => 'vDC2 backend network', + :SubnetParticipation => { + :Gateway => "192.168.1.0", + :Netmask => "255.255.0.0", + :IpAddress => "192.168.1.0" + }, + :UseForDefaultRoute => "false" + }, + + uplink_network_uuid => { + :IsShared => false, + :vdc => vdc1_uuid, + :ApplyRateLimit => "false", + :FenceMode => 'bridged', :Description => 'Uplink Network for mocking', :Dns1 => '8.8.8.8', :Dns2 => '8.8.4.4', @@ -559,6 +621,7 @@ module Fog }, :UseForDefaultRoute => "true" } + }, :org => { :description => 'Organization for mocking', @@ -574,14 +637,18 @@ module Fog :limit => 2 * 1024 * 1024, :name => 'DefaultMockStorageClass', :units => 'MB', - :vdc => vdc_uuid, + :vdc => vdc1_uuid, } }, :vdcs => { - vdc_uuid => { - :description => 'vDC for mocking', - :name => 'MockVDC' - } + vdc1_uuid => { + :description => 'vDC1 for mocking', + :name => 'MockVDC 1' + }, + vdc2_uuid => { + :description => 'vDC2 for mocking', + :name => 'MockVDC 2' + }, } } end[@vcloud_director_username] diff --git a/lib/fog/vcloud_director/requests/compute/get_execute_query.rb b/lib/fog/vcloud_director/requests/compute/get_execute_query.rb index 87f13c90a..415e9dece 100644 --- a/lib/fog/vcloud_director/requests/compute/get_execute_query.rb +++ b/lib/fog/vcloud_director/requests/compute/get_execute_query.rb @@ -187,10 +187,13 @@ module Fog data[data_type].each do |id, dr| r = {} if name.nil? || dr[:name] == name - #TODO r[:vdcName] = data[:vdcs]... + vdc_id = dr[:vdc] + if data[:vdcs][vdc_id] && data[:vdcs][vdc_id].key?(:name) + r[:vdcName] = data[:vdcs][vdc_id][:name] + end r[:name] = dr[:name] - r[:vdc] = make_href("vdc/#{v[:vdc_id]}") if dr.key?(:vdc_id) - r[:href] = make_href("networks/#{id}") + r[:vdc] = make_href("vdc/#{vdc_id}") if vdc_id + r[:href] = make_href("admin/network/#{id}") mapping = { :description => :Description, :netmask => :Netmask,