fog 0.3.16 → 0.3.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile.lock +1 -1
- data/README.rdoc +17 -12
- data/fog.gemspec +10 -5
- data/lib/fog.rb +1 -1
- data/lib/fog/aws/models/storage/directory.rb +22 -0
- data/lib/fog/aws/models/storage/file.rb +15 -0
- data/lib/fog/aws/storage.rb +8 -0
- data/lib/fog/core/collection.rb +9 -8
- data/lib/fog/core/compute.rb +1 -1
- data/lib/fog/google/models/storage/directory.rb +23 -1
- data/lib/fog/google/models/storage/file.rb +16 -1
- data/lib/fog/google/parsers/storage/access_control_list.rb +16 -14
- data/lib/fog/local/models/storage/directory.rb +8 -0
- data/lib/fog/local/models/storage/file.rb +4 -0
- data/lib/fog/rackspace/cdn.rb +3 -3
- data/lib/fog/rackspace/models/storage/directory.rb +18 -0
- data/lib/fog/rackspace/models/storage/file.rb +7 -0
- data/lib/fog/rackspace/requests/cdn/{get_cdn_containers.rb → get_containers.rb} +3 -3
- data/lib/fog/rackspace/requests/cdn/{head_cdn_container.rb → head_container.rb} +3 -3
- data/lib/fog/rackspace/requests/cdn/{put_cdn_container.rb → put_container.rb} +3 -3
- data/lib/fog/rackspace/storage.rb +10 -0
- data/lib/fog/vcloud.rb +32 -153
- data/lib/fog/vcloud/collection.rb +18 -0
- data/lib/fog/vcloud/mock_data_classes.rb +701 -0
- data/lib/fog/vcloud/requests/get_network.rb +8 -8
- data/lib/fog/vcloud/requests/get_organization.rb +10 -10
- data/lib/fog/vcloud/requests/get_vdc.rb +18 -18
- data/lib/fog/vcloud/requests/get_versions.rb +3 -3
- data/lib/fog/vcloud/requests/login.rb +2 -2
- data/lib/fog/vcloud/terremark/ecloud.rb +65 -109
- data/lib/fog/vcloud/terremark/ecloud/models/catalog.rb +1 -0
- data/lib/fog/vcloud/terremark/ecloud/models/firewall_acls.rb +1 -0
- data/lib/fog/vcloud/terremark/ecloud/models/internet_services.rb +1 -0
- data/lib/fog/vcloud/terremark/ecloud/models/ip.rb +1 -1
- data/lib/fog/vcloud/terremark/ecloud/models/ips.rb +1 -0
- data/lib/fog/vcloud/terremark/ecloud/models/network.rb +3 -2
- data/lib/fog/vcloud/terremark/ecloud/models/networks.rb +1 -0
- data/lib/fog/vcloud/terremark/ecloud/models/nodes.rb +1 -0
- data/lib/fog/vcloud/terremark/ecloud/models/public_ips.rb +1 -0
- data/lib/fog/vcloud/terremark/ecloud/models/server.rb +20 -8
- data/lib/fog/vcloud/terremark/ecloud/models/servers.rb +1 -0
- data/lib/fog/vcloud/terremark/ecloud/models/tasks.rb +1 -0
- data/lib/fog/vcloud/terremark/ecloud/models/vdcs.rb +2 -0
- data/lib/fog/vcloud/terremark/ecloud/requests/add_internet_service.rb +4 -8
- data/lib/fog/vcloud/terremark/ecloud/requests/add_node.rb +4 -7
- data/lib/fog/vcloud/terremark/ecloud/requests/configure_internet_service.rb +18 -20
- data/lib/fog/vcloud/terremark/ecloud/requests/configure_node.rb +6 -7
- data/lib/fog/vcloud/terremark/ecloud/requests/configure_vapp.rb +40 -9
- data/lib/fog/vcloud/terremark/ecloud/requests/delete_internet_service.rb +2 -10
- data/lib/fog/vcloud/terremark/ecloud/requests/delete_node.rb +2 -6
- data/lib/fog/vcloud/terremark/ecloud/requests/delete_vapp.rb +13 -1
- data/lib/fog/vcloud/terremark/ecloud/requests/get_catalog.rb +6 -6
- data/lib/fog/vcloud/terremark/ecloud/requests/get_catalog_item.rb +6 -7
- data/lib/fog/vcloud/terremark/ecloud/requests/get_internet_services.rb +34 -33
- data/lib/fog/vcloud/terremark/ecloud/requests/get_network.rb +23 -24
- data/lib/fog/vcloud/terremark/ecloud/requests/get_network_extensions.rb +10 -13
- data/lib/fog/vcloud/terremark/ecloud/requests/get_network_ip.rb +15 -19
- data/lib/fog/vcloud/terremark/ecloud/requests/get_network_ips.rb +20 -22
- data/lib/fog/vcloud/terremark/ecloud/requests/get_node.rb +12 -15
- data/lib/fog/vcloud/terremark/ecloud/requests/get_nodes.rb +11 -12
- data/lib/fog/vcloud/terremark/ecloud/requests/get_public_ip.rb +5 -4
- data/lib/fog/vcloud/terremark/ecloud/requests/get_public_ips.rb +9 -8
- data/lib/fog/vcloud/terremark/ecloud/requests/get_vapp.rb +33 -17
- data/lib/fog/vcloud/terremark/ecloud/requests/get_vdc.rb +54 -53
- data/lib/fog/vcloud/terremark/ecloud/requests/instantiate_vapp_template.rb +13 -19
- data/lib/fog/vcloud/terremark/ecloud/requests/power_off.rb +9 -2
- data/lib/fog/vcloud/terremark/ecloud/requests/power_on.rb +2 -4
- data/spec/vcloud/bin_spec.rb +3 -6
- data/spec/vcloud/models/vdc_spec.rb +8 -8
- data/spec/vcloud/requests/get_network_spec.rb +8 -8
- data/spec/vcloud/requests/get_organization_spec.rb +9 -9
- data/spec/vcloud/requests/get_vdc_spec.rb +7 -7
- data/spec/vcloud/requests/get_versions_spec.rb +1 -1
- data/spec/vcloud/requests/login_spec.rb +2 -2
- data/spec/vcloud/spec_helper.rb +45 -30
- data/spec/vcloud/terremark/ecloud/models/internet_service_spec.rb +10 -14
- data/spec/vcloud/terremark/ecloud/models/ip_spec.rb +5 -8
- data/spec/vcloud/terremark/ecloud/models/ips_spec.rb +2 -2
- data/spec/vcloud/terremark/ecloud/models/network_spec.rb +15 -16
- data/spec/vcloud/terremark/ecloud/models/node_spec.rb +7 -7
- data/spec/vcloud/terremark/ecloud/models/nodes_spec.rb +1 -1
- data/spec/vcloud/terremark/ecloud/models/public_ip_spec.rb +4 -8
- data/spec/vcloud/terremark/ecloud/models/server_spec.rb +42 -0
- data/spec/vcloud/terremark/ecloud/models/vdc_spec.rb +7 -7
- data/spec/vcloud/terremark/ecloud/models/vdcs_spec.rb +1 -1
- data/spec/vcloud/terremark/ecloud/requests/add_internet_service_spec.rb +13 -18
- data/spec/vcloud/terremark/ecloud/requests/add_node_spec.rb +9 -5
- data/spec/vcloud/terremark/ecloud/requests/configure_internet_service_spec.rb +5 -7
- data/spec/vcloud/terremark/ecloud/requests/configure_node_spec.rb +22 -28
- data/spec/vcloud/terremark/ecloud/requests/configure_vapp_spec.rb +71 -0
- data/spec/vcloud/terremark/ecloud/requests/delete_internet_service_spec.rb +7 -9
- data/spec/vcloud/terremark/ecloud/requests/delete_node_spec.rb +3 -7
- data/spec/vcloud/terremark/ecloud/requests/delete_vapp_spec.rb +83 -0
- data/spec/vcloud/terremark/ecloud/requests/get_catalog_item_spec.rb +6 -5
- data/spec/vcloud/terremark/ecloud/requests/get_catalog_spec.rb +2 -2
- data/spec/vcloud/terremark/ecloud/requests/get_internet_services_spec.rb +31 -42
- data/spec/vcloud/terremark/ecloud/requests/get_network_ip_spec.rb +4 -7
- data/spec/vcloud/terremark/ecloud/requests/get_network_ips_spec.rb +1 -1
- data/spec/vcloud/terremark/ecloud/requests/get_network_spec.rb +19 -11
- data/spec/vcloud/terremark/ecloud/requests/get_node_spec.rb +8 -8
- data/spec/vcloud/terremark/ecloud/requests/get_nodes_spec.rb +11 -11
- data/spec/vcloud/terremark/ecloud/requests/get_public_ip_spec.rb +4 -5
- data/spec/vcloud/terremark/ecloud/requests/get_public_ips_spec.rb +6 -6
- data/spec/vcloud/terremark/ecloud/requests/get_vapp_spec.rb +36 -19
- data/spec/vcloud/terremark/ecloud/requests/get_vdc_spec.rb +21 -18
- data/spec/vcloud/terremark/ecloud/requests/instantiate_vapp_template_spec.rb +27 -17
- data/spec/vcloud/terremark/ecloud/requests/power_off_spec.rb +34 -0
- data/spec/vcloud/terremark/ecloud/requests/power_on_spec.rb +3 -4
- data/spec/vcloud/vcloud_spec.rb +2 -2
- data/tests/helpers/storage/directory_tests.rb +8 -0
- data/tests/helpers/storage/file_tests.rb +4 -0
- metadata +11 -6
|
@@ -103,16 +103,17 @@ module Fog
|
|
|
103
103
|
|
|
104
104
|
def instantiate_vapp_template(catalog_item_uri, options = {})
|
|
105
105
|
validate_instantiate_vapp_template_options(catalog_item_uri, options)
|
|
106
|
-
catalog_item
|
|
106
|
+
catalog_item = mock_data.catalog_item_from_href(catalog_item_uri)
|
|
107
107
|
|
|
108
108
|
xml = nil
|
|
109
|
-
if vdc =
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
109
|
+
if vdc = mock_data.vdc_from_href(options[:vdc_uri])
|
|
110
|
+
if network = mock_data.network_from_href(options[:network_uri])
|
|
111
|
+
new_vm = MockVirtualMachine.new({ :name => options[:name], :ip => network.random_ip, :cpus => options[:cpus], :memory => options[:memory] }, vdc)
|
|
112
|
+
new_vm.disks.push(*catalog_item.disks.dup)
|
|
113
|
+
vdc.virtual_machines << new_vm
|
|
114
|
+
|
|
115
|
+
xml = generate_instantiate_vapp_template_response(new_vm)
|
|
116
|
+
end
|
|
116
117
|
end
|
|
117
118
|
|
|
118
119
|
if xml
|
|
@@ -124,23 +125,16 @@ module Fog
|
|
|
124
125
|
|
|
125
126
|
private
|
|
126
127
|
|
|
127
|
-
def
|
|
128
|
-
network = mock_data[:organizations].map { |org| org[:vdcs].map { |vdc| vdc[:networks] } }.flatten.detect { |network| network[:href] == network_uri }
|
|
129
|
-
subnet_ipaddr = IPAddr.new(network[:subnet])
|
|
130
|
-
ips = subnet_ipaddr.to_range.to_a[3..-2]
|
|
131
|
-
ips[rand(ips.size)].to_s
|
|
132
|
-
end
|
|
133
|
-
|
|
134
|
-
def generate_instantiate_vapp_template_response(vdc_uri, vapp_name, vapp_uri)
|
|
128
|
+
def generate_instantiate_vapp_template_response(vapp)
|
|
135
129
|
builder = Builder::XmlMarkup.new
|
|
136
130
|
builder.VApp(xmlns.merge(
|
|
137
|
-
:href =>
|
|
131
|
+
:href => vapp.href,
|
|
138
132
|
:type => "application/vnd.vmware.vcloud.vApp+xml",
|
|
139
|
-
:name =>
|
|
133
|
+
:name => vapp.name,
|
|
140
134
|
:status => 0,
|
|
141
135
|
:size => 4
|
|
142
136
|
)) {
|
|
143
|
-
builder.Link(:rel => "up", :href =>
|
|
137
|
+
builder.Link(:rel => "up", :href => vapp._parent.href, :type => "application/vnd.vmware.vcloud.vdc+xml")
|
|
144
138
|
}
|
|
145
139
|
end
|
|
146
140
|
end
|
|
@@ -8,8 +8,15 @@ module Fog
|
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
class Mock
|
|
11
|
-
def power_off(
|
|
12
|
-
|
|
11
|
+
def power_off(vapp_uri)
|
|
12
|
+
if vapp = mock_data.virtual_machine_from_href(vapp_uri)
|
|
13
|
+
vapp.power_off!
|
|
14
|
+
|
|
15
|
+
builder = Builder::XmlMarkup.new
|
|
16
|
+
mock_it 200, builder.Task(xmlns)
|
|
17
|
+
else
|
|
18
|
+
mock_error 200, "401 Unauthorized"
|
|
19
|
+
end
|
|
13
20
|
end
|
|
14
21
|
end
|
|
15
22
|
end
|
|
@@ -9,10 +9,8 @@ module Fog
|
|
|
9
9
|
|
|
10
10
|
class Mock
|
|
11
11
|
def power_on(vapp_uri)
|
|
12
|
-
vapp
|
|
13
|
-
|
|
14
|
-
if vapp
|
|
15
|
-
vapp[:status] = 4
|
|
12
|
+
if vapp = mock_data.virtual_machine_from_href(vapp_uri)
|
|
13
|
+
vapp.power_on!
|
|
16
14
|
|
|
17
15
|
builder = Builder::XmlMarkup.new
|
|
18
16
|
mock_it 200, builder.Task(xmlns)
|
data/spec/vcloud/bin_spec.rb
CHANGED
|
@@ -1,21 +1,18 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
1
|
+
require 'spec/vcloud/spec_helper'
|
|
2
2
|
|
|
3
3
|
describe Vcloud do
|
|
4
4
|
it { should be_initialized }
|
|
5
5
|
|
|
6
|
-
it { should
|
|
6
|
+
it { should have_at_least(1).services }
|
|
7
7
|
|
|
8
8
|
describe "#registered_services" do
|
|
9
9
|
subject { Vcloud.registered_services }
|
|
10
10
|
|
|
11
|
-
it { should
|
|
11
|
+
it { should have_at_least(1).services }
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
describe "when indexing it like an array" do
|
|
15
15
|
describe "with a service that exists" do
|
|
16
|
-
before do
|
|
17
|
-
Fog::Vcloud.should_receive(:new).and_return(true)
|
|
18
|
-
end
|
|
19
16
|
it "should return something when indexed with a configured service" do
|
|
20
17
|
Vcloud[:ecloud].should_not be_nil
|
|
21
18
|
end
|
|
@@ -21,24 +21,24 @@ if Fog.mocking?
|
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
context "as a collection member" do
|
|
24
|
-
subject { @vcloud.vdcs[0].reload
|
|
24
|
+
subject { @vcloud.vdcs[0].reload }
|
|
25
25
|
|
|
26
26
|
it { should be_an_instance_of Fog::Vcloud::Vdc }
|
|
27
27
|
|
|
28
|
-
its(:href) { should == @mock_vdc
|
|
29
|
-
its(:identity) { should == @mock_vdc
|
|
30
|
-
its(:name) { should == @mock_vdc
|
|
28
|
+
its(:href) { should == @mock_vdc.href }
|
|
29
|
+
its(:identity) { should == @mock_vdc.href }
|
|
30
|
+
its(:name) { should == @mock_vdc.name }
|
|
31
31
|
its(:other_links) { should have(7).items }
|
|
32
32
|
its(:resource_entities) { should have(3).items }
|
|
33
33
|
its(:available_networks) { should have(2).items }
|
|
34
34
|
|
|
35
35
|
its(:compute_capacity) { should be_an_instance_of Hash }
|
|
36
|
-
its(:compute_capacity) { should == {:Cpu =>
|
|
37
|
-
{:Units => "Mhz", :Allocated => @mock_vdc
|
|
36
|
+
its(:compute_capacity) { should == {:Cpu =>
|
|
37
|
+
{:Units => "Mhz", :Allocated => @mock_vdc.cpu_allocated.to_s, :Limit => @mock_vdc.cpu_allocated.to_s},
|
|
38
38
|
:Memory =>
|
|
39
|
-
{:Units => "MB", :Allocated => @mock_vdc
|
|
39
|
+
{:Units => "MB", :Allocated => @mock_vdc.memory_allocated.to_s, :Limit => @mock_vdc.memory_allocated.to_s}} }
|
|
40
40
|
its(:storage_capacity) { should be_an_instance_of Hash }
|
|
41
|
-
its(:storage_capacity) { should == {:Limit => @mock_vdc
|
|
41
|
+
its(:storage_capacity) { should == {:Limit => @mock_vdc.storage_allocated.to_s, :Units=>"MB", :Allocated => @mock_vdc.storage_allocated.to_s} }
|
|
42
42
|
|
|
43
43
|
its(:vm_quota) { should == "0" }
|
|
44
44
|
its(:nic_quota) { should == "0" }
|
|
@@ -8,7 +8,7 @@ if Fog.mocking?
|
|
|
8
8
|
|
|
9
9
|
describe :get_network, :type => :vcloud_request do
|
|
10
10
|
context "with a valid network uri" do
|
|
11
|
-
before { @network = @vcloud.get_network(URI.parse(@mock_network
|
|
11
|
+
before { @network = @vcloud.get_network(URI.parse(@mock_network.href)) }
|
|
12
12
|
subject { @network }
|
|
13
13
|
|
|
14
14
|
it_should_behave_like "all responses"
|
|
@@ -21,13 +21,13 @@ if Fog.mocking?
|
|
|
21
21
|
|
|
22
22
|
it_should_behave_like "it has the standard vcloud v0.8 xmlns attributes" # 3 keys
|
|
23
23
|
it { should have_key_with_value :type, "application/vnd.vmware.vcloud.network+xml" }
|
|
24
|
-
it { should have_key_with_value :Features, "" }
|
|
25
|
-
it { should have_key_with_value :Description, @mock_network
|
|
26
|
-
it { should have_key_with_value :href, @mock_network
|
|
27
|
-
it { should have_key_with_value :name, @mock_network
|
|
28
|
-
it { should have_key_with_value :Configuration, {:Gateway => @mock_network
|
|
29
|
-
:Netmask => @mock_network
|
|
30
|
-
:Dns => @mock_network
|
|
24
|
+
it { should have_key_with_value :Features, {:FenceMode => "isolated"} }
|
|
25
|
+
it { should have_key_with_value :Description, @mock_network.name }
|
|
26
|
+
it { should have_key_with_value :href, @mock_network.href }
|
|
27
|
+
it { should have_key_with_value :name, @mock_network.name }
|
|
28
|
+
it { should have_key_with_value :Configuration, {:Gateway => @mock_network.gateway,
|
|
29
|
+
:Netmask => @mock_network.netmask,
|
|
30
|
+
:Dns => @mock_network.dns } }
|
|
31
31
|
end
|
|
32
32
|
end
|
|
33
33
|
context "with a network uri that doesn't exist" do
|
|
@@ -23,20 +23,20 @@ if Fog.mocking?
|
|
|
23
23
|
it { should have(6).keys }
|
|
24
24
|
|
|
25
25
|
it_should_behave_like "it has the standard vcloud v0.8 xmlns attributes" # 3 keys
|
|
26
|
-
it { should have_key_with_value :href, @mock_organization
|
|
27
|
-
it { should have_key_with_value :name, @mock_organization
|
|
28
|
-
it { should have_key_with_array :Link, @mock_organization
|
|
26
|
+
it { should have_key_with_value :href, @mock_organization.href }
|
|
27
|
+
it { should have_key_with_value :name, @mock_organization.name }
|
|
28
|
+
it { should have_key_with_array :Link, @mock_organization.vdcs.map { |vdc|
|
|
29
29
|
[{ :type => "application/vnd.vmware.vcloud.vdc+xml",
|
|
30
|
-
:href => vdc
|
|
31
|
-
:name => vdc
|
|
30
|
+
:href => vdc.href,
|
|
31
|
+
:name => vdc.name,
|
|
32
32
|
:rel => "down" },
|
|
33
33
|
{ :type => "application/vnd.vmware.vcloud.catalog+xml",
|
|
34
|
-
:href => vdc
|
|
35
|
-
:name => vdc
|
|
34
|
+
:href => vdc.catalog.href,
|
|
35
|
+
:name => vdc.catalog.name,
|
|
36
36
|
:rel => "down" },
|
|
37
37
|
{ :type => "application/vnd.vmware.vcloud.tasksList+xml",
|
|
38
|
-
:href => vdc
|
|
39
|
-
:name => vdc
|
|
38
|
+
:href => vdc.task_list.href,
|
|
39
|
+
:name => vdc.task_list.name,
|
|
40
40
|
:rel => "down" }]
|
|
41
41
|
}.flatten }
|
|
42
42
|
|
|
@@ -12,7 +12,7 @@ if Fog.mocking?
|
|
|
12
12
|
|
|
13
13
|
describe :get_vdc, :type => :vcloud_request do
|
|
14
14
|
context "with a valid vdc uri" do
|
|
15
|
-
before { @vdc = @vcloud.get_vdc(URI.parse(@mock_vdc
|
|
15
|
+
before { @vdc = @vcloud.get_vdc(URI.parse(@mock_vdc.href)) }
|
|
16
16
|
subject { @vdc }
|
|
17
17
|
|
|
18
18
|
it_should_behave_like "all responses"
|
|
@@ -25,10 +25,10 @@ if Fog.mocking?
|
|
|
25
25
|
|
|
26
26
|
it_should_behave_like "it has the standard vcloud v0.8 xmlns attributes" # 3 keys
|
|
27
27
|
|
|
28
|
-
its(:name) { should == @mock_vdc
|
|
29
|
-
its(:href) { should == @mock_vdc
|
|
28
|
+
its(:name) { should == @mock_vdc.name }
|
|
29
|
+
its(:href) { should == @mock_vdc.href }
|
|
30
30
|
its(:VmQuota) { should == "0" }
|
|
31
|
-
its(:Description) { should == @mock_vdc
|
|
31
|
+
its(:Description) { should == @mock_vdc.name + " VDC" }
|
|
32
32
|
its(:NicQuota) { should == "0" }
|
|
33
33
|
its(:IsEnabled) { should == "true" }
|
|
34
34
|
its(:NetworkQuota) { should == "0" }
|
|
@@ -40,10 +40,10 @@ if Fog.mocking?
|
|
|
40
40
|
specify { resource_entities.should have(3).vapps }
|
|
41
41
|
#FIXME: test for the resources
|
|
42
42
|
|
|
43
|
-
its(:ComputeCapacity) { should == {:Memory => { :Units => "MB", :Allocated => @mock_vdc
|
|
44
|
-
:Cpu => { :Units => "Mhz", :Allocated => @mock_vdc
|
|
43
|
+
its(:ComputeCapacity) { should == {:Memory => { :Units => "MB", :Allocated => @mock_vdc.memory_allocated.to_s, :Limit => @mock_vdc.memory_allocated.to_s },
|
|
44
|
+
:Cpu => { :Units => "Mhz", :Allocated => @mock_vdc.cpu_allocated.to_s, :Limit => @mock_vdc.cpu_allocated.to_s } } }
|
|
45
45
|
|
|
46
|
-
its(:StorageCapacity) { should == {:Units => "MB", :Allocated => @mock_vdc
|
|
46
|
+
its(:StorageCapacity) { should == {:Units => "MB", :Allocated => @mock_vdc.storage_allocated.to_s, :Limit => @mock_vdc.storage_allocated.to_s } }
|
|
47
47
|
|
|
48
48
|
let(:available_networks) { subject[:AvailableNetworks][:Network] }
|
|
49
49
|
specify { available_networks.should have(2).networks }
|
|
@@ -44,7 +44,7 @@ if Fog.mocking?
|
|
|
44
44
|
|
|
45
45
|
describe "body" do
|
|
46
46
|
subject { @vcloud.get_versions( @vcloud.versions_uri ).body }
|
|
47
|
-
its(:VersionInfo) { should == { :LoginUrl => @mock_version
|
|
47
|
+
its(:VersionInfo) { should == { :LoginUrl => @mock_version.login_url , :Version => @mock_version.version } }
|
|
48
48
|
end
|
|
49
49
|
end
|
|
50
50
|
else
|
|
@@ -12,8 +12,8 @@ if Fog.mocking?
|
|
|
12
12
|
describe "#body" do
|
|
13
13
|
subject { @vcloud.login.body }
|
|
14
14
|
its(:Org) { should == { :type => "application/vnd.vmware.vcloud.org+xml",
|
|
15
|
-
:href => @mock_organization
|
|
16
|
-
:name => @mock_organization
|
|
15
|
+
:href => @mock_organization.href,
|
|
16
|
+
:name => @mock_organization.name} }
|
|
17
17
|
end
|
|
18
18
|
end
|
|
19
19
|
else
|
data/spec/vcloud/spec_helper.rb
CHANGED
|
@@ -216,16 +216,36 @@ Spec::Example::ExampleGroupFactory.register(:vcloud_request, Class.new(Spec::Exa
|
|
|
216
216
|
Spec::Example::ExampleGroupFactory.register(:tmrk_ecloud_request, Class.new(Spec::Example::ExampleGroup))
|
|
217
217
|
Spec::Example::ExampleGroupFactory.register(:tmrk_vcloud_request, Class.new(Spec::Example::ExampleGroup))
|
|
218
218
|
|
|
219
|
+
def setup_generic_mock_data
|
|
220
|
+
@mock_version = @mock_data.versions.first
|
|
221
|
+
@mock_organization = @mock_data.organizations.first
|
|
222
|
+
@mock_vdc = @mock_organization.vdcs.first
|
|
223
|
+
@mock_vm = @mock_vdc.virtual_machines.first
|
|
224
|
+
@mock_network = @mock_vdc.networks.first
|
|
225
|
+
end
|
|
226
|
+
|
|
219
227
|
def setup_ecloud_mock_data
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
228
|
+
@base_url = Fog::Vcloud::Terremark::Ecloud::Mock.base_url
|
|
229
|
+
@mock_data = Fog::Vcloud::Terremark::Ecloud::Mock.data
|
|
230
|
+
setup_generic_mock_data
|
|
231
|
+
@mock_vdc_service_collection = @mock_vdc.internet_service_collection
|
|
232
|
+
@mock_public_ip_collection = @mock_vdc.public_ip_collection
|
|
233
|
+
@mock_public_ip = @mock_public_ip_collection.items.first
|
|
234
|
+
@mock_service_collection = @mock_public_ip.internet_service_collection
|
|
235
|
+
@mock_service = @mock_service_collection.items.first
|
|
236
|
+
@mock_node_collection = @mock_service.node_collection
|
|
237
|
+
@mock_node = @mock_node_collection.items.first
|
|
238
|
+
@mock_catalog = @mock_vdc.catalog
|
|
239
|
+
@mock_catalog_item = @mock_catalog.items.first
|
|
240
|
+
@mock_network_ip_collection = @mock_network.ip_collection
|
|
241
|
+
@mock_network_ip = @mock_network_ip_collection.items.values.first
|
|
242
|
+
@mock_network_extensions = @mock_network.extensions
|
|
243
|
+
end
|
|
244
|
+
|
|
245
|
+
def setup_vcloud_mock_data
|
|
246
|
+
@base_url = Fog::Vcloud::Mock.base_url
|
|
247
|
+
@mock_data = Fog::Vcloud::Mock.data
|
|
248
|
+
setup_generic_mock_data
|
|
229
249
|
end
|
|
230
250
|
|
|
231
251
|
Spec::Runner.configure do |config|
|
|
@@ -238,27 +258,17 @@ Spec::Runner.configure do |config|
|
|
|
238
258
|
end
|
|
239
259
|
|
|
240
260
|
config.before(:all, :type => :mock_vcloud_model) do
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
@mock_version = @mock_data[:versions][0]
|
|
244
|
-
@mock_organization = @mock_data[:organizations][0]
|
|
245
|
-
@mock_vdc = @mock_organization[:vdcs][0]
|
|
246
|
-
@mock_network = @mock_vdc[:networks][0]
|
|
247
|
-
end
|
|
248
|
-
config.before(:all, :type => :mock_vcloud_request) do
|
|
249
|
-
@mock_data = Fog::Vcloud::Mock.data
|
|
250
|
-
@base_url = Fog::Vcloud::Mock.base_url
|
|
251
|
-
@mock_version = @mock_data[:versions][0]
|
|
252
|
-
@mock_organization = @mock_data[:organizations][0]
|
|
253
|
-
@mock_vdc = @mock_organization[:vdcs][0]
|
|
254
|
-
@mock_network = @mock_vdc[:networks][0]
|
|
255
|
-
end
|
|
256
|
-
config.before(:all, :type => :mock_vcloud_model) do
|
|
261
|
+
Fog::Vcloud::Mock.data_reset
|
|
262
|
+
setup_vcloud_mock_data
|
|
257
263
|
@vcloud = Fog::Vcloud.new(:username => "foo", :password => "bar", :versions_uri => "http://fakey.com/api/versions")
|
|
258
264
|
end
|
|
259
|
-
|
|
265
|
+
|
|
266
|
+
config.before(:all, :type => :mock_vcloud_request) do
|
|
267
|
+
Fog::Vcloud::Mock.data_reset
|
|
268
|
+
setup_vcloud_mock_data
|
|
260
269
|
@vcloud = Fog::Vcloud.new(:username => "foo", :password => "bar", :versions_uri => "http://fakey.com/api/versions")
|
|
261
270
|
end
|
|
271
|
+
|
|
262
272
|
config.before(:each, :type => :mock_tmrk_ecloud_request) do
|
|
263
273
|
Fog::Vcloud::Mock.data_reset
|
|
264
274
|
Fog::Vcloud::Terremark::Ecloud::Mock.data_reset
|
|
@@ -312,6 +322,11 @@ Spec::Matchers.define :have_key_with_array do |expected_key, expected_array|
|
|
|
312
322
|
match do |actual|
|
|
313
323
|
actual[expected_key].all? { |item| expected_array.include?(item) } && actual[expected_key].length == expected_array.length
|
|
314
324
|
end
|
|
325
|
+
failure_message_for_should do |actual|
|
|
326
|
+
"Items not found in array:\n#{expected_array.select { |expected_item| !actual[expected_key].include?(expected_item) }.map { |item| item.inspect }.join("\n")}\n" +
|
|
327
|
+
"Orignal items:\n#{actual[expected_key].map { |item| item.inspect }.join("\n") }\n"+
|
|
328
|
+
"Length Difference: #{expected_array.length - actual[expected_key].length}"
|
|
329
|
+
end
|
|
315
330
|
end
|
|
316
331
|
|
|
317
332
|
Spec::Matchers.define :have_headers_denoting_a_content_type_of do |expected|
|
|
@@ -332,8 +347,8 @@ Spec::Matchers.define :be_a_vapp_link_to do |expected|
|
|
|
332
347
|
match do |actual|
|
|
333
348
|
actual.is_a?(Hash) and
|
|
334
349
|
actual[:type] == "application/vnd.vmware.vcloud.vApp+xml" and
|
|
335
|
-
actual[:href] == expected
|
|
336
|
-
actual[:name] == expected
|
|
350
|
+
actual[:href] == expected.href and
|
|
351
|
+
actual[:name] == expected.name
|
|
337
352
|
end
|
|
338
353
|
end
|
|
339
354
|
|
|
@@ -341,8 +356,8 @@ Spec::Matchers.define :be_a_network_link_to do |expected|
|
|
|
341
356
|
match do |actual|
|
|
342
357
|
actual.is_a?(Hash) and
|
|
343
358
|
actual[:type] == "application/vnd.vmware.vcloud.network+xml" and
|
|
344
|
-
actual[:href] == expected
|
|
345
|
-
actual[:name] == expected
|
|
359
|
+
actual[:href] == expected.href and
|
|
360
|
+
actual[:name] == expected.name
|
|
346
361
|
end
|
|
347
362
|
end
|
|
348
363
|
|
|
@@ -2,10 +2,6 @@ require File.join(File.dirname(__FILE__),'..','..','..','spec_helper')
|
|
|
2
2
|
|
|
3
3
|
if Fog.mocking?
|
|
4
4
|
describe "Fog::Vcloud::Terremark::Ecloud::InternetService", :type => :mock_tmrk_ecloud_model do
|
|
5
|
-
before do
|
|
6
|
-
@mock_service_uri = "#{@base_url}/extensions/internetService/#{@mock_service[:id]}"
|
|
7
|
-
end
|
|
8
|
-
|
|
9
5
|
subject { @vcloud.vdcs[0].public_ips[0].internet_services[0] }
|
|
10
6
|
|
|
11
7
|
describe :class do
|
|
@@ -35,17 +31,17 @@ if Fog.mocking?
|
|
|
35
31
|
|
|
36
32
|
it { should be_an_instance_of Fog::Vcloud::Terremark::Ecloud::InternetService }
|
|
37
33
|
|
|
38
|
-
its(:href) { should == @
|
|
39
|
-
its(:identity) { should == @
|
|
40
|
-
its(:name) { should == @mock_service
|
|
41
|
-
its(:id) { should == @mock_service
|
|
42
|
-
its(:protocol) { should == @mock_service
|
|
43
|
-
its(:port) { should == @mock_service
|
|
44
|
-
its(:enabled) { should == @mock_service
|
|
45
|
-
its(:description) { should == @mock_service
|
|
34
|
+
its(:href) { should == @mock_service.href }
|
|
35
|
+
its(:identity) { should == @mock_service.href }
|
|
36
|
+
its(:name) { should == @mock_service.name }
|
|
37
|
+
its(:id) { should == @mock_service.object_id.to_s }
|
|
38
|
+
its(:protocol) { should == @mock_service.protocol }
|
|
39
|
+
its(:port) { should == @mock_service.port.to_s }
|
|
40
|
+
its(:enabled) { should == @mock_service.enabled.to_s }
|
|
41
|
+
its(:description) { should == @mock_service.description }
|
|
46
42
|
its(:public_ip) { should == public_ip }
|
|
47
|
-
its(:timeout) { should == @mock_service
|
|
48
|
-
its(:redirect_url) { should == @mock_service
|
|
43
|
+
its(:timeout) { should == @mock_service.timeout.to_s }
|
|
44
|
+
its(:redirect_url) { should == @mock_service.redirect_url }
|
|
49
45
|
its(:monitor) { should == nil }
|
|
50
46
|
|
|
51
47
|
specify { composed_public_ip_data[:href].should == public_ip[:Href].to_s }
|
|
@@ -12,22 +12,19 @@ if Fog.mocking?
|
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
context "with no uri" do
|
|
15
|
-
|
|
16
15
|
subject { Fog::Vcloud::Terremark::Ecloud::Ip.new() }
|
|
17
|
-
it { should have_all_attributes_be_nil }
|
|
18
16
|
|
|
17
|
+
it { should have_all_attributes_be_nil }
|
|
19
18
|
end
|
|
20
19
|
|
|
21
20
|
context "as a collection member" do
|
|
22
|
-
subject
|
|
23
|
-
let(:status) { @mock_network[:ips].keys.include?(@vcloud.vdcs[0].networks[0].ips[0].name) ? "Assigned" : nil }
|
|
24
|
-
let(:server) { @mock_network[:ips][@vcloud.vdcs[0].networks[0].ips[0].name] }
|
|
21
|
+
subject { @ip = @vcloud.vdcs[0].networks[0].ips[0] }
|
|
25
22
|
|
|
26
23
|
it { should be_an_instance_of Fog::Vcloud::Terremark::Ecloud::Ip }
|
|
27
24
|
|
|
28
|
-
its(:name)
|
|
29
|
-
its(:status) { should == status }
|
|
30
|
-
its(:server) { should ==
|
|
25
|
+
its(:name) { should == @mock_data.network_ip_from_href(@ip.href).name }
|
|
26
|
+
its(:status) { should == @mock_data.network_ip_from_href(@ip.href).status }
|
|
27
|
+
its(:server) { should == @mock_data.network_ip_from_href(@ip.href).used_by.name }
|
|
31
28
|
|
|
32
29
|
end
|
|
33
30
|
end
|
|
@@ -4,7 +4,7 @@ if Fog.mocking?
|
|
|
4
4
|
describe "Fog::Vcloud::Terremark::Ecloud::Ips", :type => :mock_tmrk_ecloud_model do
|
|
5
5
|
subject { @vcloud }
|
|
6
6
|
|
|
7
|
-
it {
|
|
7
|
+
it { should respond_to :ips }
|
|
8
8
|
|
|
9
9
|
describe :class do
|
|
10
10
|
subject { @vcloud.vdcs[0].networks[0].ips.class }
|
|
@@ -12,7 +12,7 @@ if Fog.mocking?
|
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
describe :ips do
|
|
15
|
-
subject { @vcloud.vdcs[0].networks[0].ips.reload
|
|
15
|
+
subject { @vcloud.vdcs[0].networks[0].ips.reload }
|
|
16
16
|
it { should_not respond_to :create }
|
|
17
17
|
|
|
18
18
|
it { should be_an_instance_of Fog::Vcloud::Terremark::Ecloud::Ips }
|