fog 1.1.1 → 1.1.2
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/Rakefile +3 -3
- data/changelog.txt +213 -0
- data/docs/compute/index.markdown +15 -1
- data/fog.gemspec +3 -3
- data/lib/fog.rb +1 -1
- data/lib/fog/aws.rb +9 -0
- data/lib/fog/aws/auto_scaling.rb +3 -1
- data/lib/fog/aws/cloud_formation.rb +2 -0
- data/lib/fog/aws/cloud_watch.rb +2 -0
- data/lib/fog/aws/compute.rb +9 -3
- data/lib/fog/aws/elasticache.rb +8 -1
- data/lib/fog/aws/elb.rb +2 -0
- data/lib/fog/aws/models/cloud_watch/metric_statistic.rb +1 -2
- data/lib/fog/aws/models/compute/security_group.rb +1 -1
- data/lib/fog/aws/models/compute/server.rb +3 -1
- data/lib/fog/aws/models/dns/records.rb +3 -3
- data/lib/fog/aws/models/elb/load_balancer.rb +6 -0
- data/lib/fog/aws/models/storage/file.rb +2 -2
- data/lib/fog/aws/models/storage/files.rb +4 -4
- data/lib/fog/aws/parsers/compute/describe_instance_status.rb +64 -0
- data/lib/fog/aws/parsers/compute/describe_security_groups.rb +1 -1
- data/lib/fog/aws/parsers/sqs/receive_message.rb +1 -1
- data/lib/fog/aws/parsers/sts/get_session_token.rb +31 -0
- data/lib/fog/aws/rds.rb +36 -1
- data/lib/fog/aws/requests/compute/describe_availability_zones.rb +3 -0
- data/lib/fog/aws/requests/compute/describe_instance_status.rb +36 -0
- data/lib/fog/aws/requests/compute/describe_security_groups.rb +2 -0
- data/lib/fog/aws/requests/elb/set_load_balancer_listener_ssl_certificate.rb +27 -0
- data/lib/fog/aws/requests/rds/create_db_instance.rb +64 -1
- data/lib/fog/aws/requests/rds/delete_db_instance.rb +19 -3
- data/lib/fog/aws/requests/rds/describe_db_instances.rb +40 -1
- data/lib/fog/aws/requests/rds/describe_db_reserved_instances.rb +1 -1
- data/lib/fog/aws/requests/rds/modify_db_instance.rb +24 -1
- data/lib/fog/aws/requests/rds/reboot_db_instance.rb +17 -1
- data/lib/fog/aws/requests/storage/{hash_to_acl.rb → acl_utils.rb} +8 -0
- data/lib/fog/aws/requests/storage/copy_object.rb +8 -0
- data/lib/fog/aws/requests/storage/get_bucket_acl.rb +7 -1
- data/lib/fog/aws/requests/storage/get_object_acl.rb +7 -1
- data/lib/fog/aws/requests/storage/get_object_http_url.rb +4 -3
- data/lib/fog/aws/requests/storage/get_object_https_url.rb +4 -3
- data/lib/fog/aws/requests/storage/put_bucket_acl.rb +2 -2
- data/lib/fog/aws/requests/storage/put_object_acl.rb +1 -1
- data/lib/fog/aws/requests/sts/get_federation_token.rb +20 -0
- data/lib/fog/aws/requests/sts/get_session_token.rb +18 -0
- data/lib/fog/aws/simpledb.rb +5 -1
- data/lib/fog/aws/sns.rb +2 -0
- data/lib/fog/aws/sqs.rb +5 -1
- data/lib/fog/aws/storage.rb +6 -0
- data/lib/fog/aws/sts.rb +137 -0
- data/lib/fog/bin.rb +1 -0
- data/lib/fog/bin/aws.rb +2 -0
- data/lib/fog/bin/clodo.rb +31 -0
- data/lib/fog/brightbox/compute.rb +7 -0
- data/lib/fog/brightbox/models/compute/cloud_ip.rb +10 -2
- data/lib/fog/brightbox/models/compute/firewall_policies.rb +29 -0
- data/lib/fog/brightbox/models/compute/firewall_policy.rb +65 -0
- data/lib/fog/brightbox/models/compute/firewall_rule.rb +54 -0
- data/lib/fog/brightbox/models/compute/firewall_rules.rb +24 -0
- data/lib/fog/brightbox/models/compute/image.rb +2 -0
- data/lib/fog/brightbox/models/compute/server.rb +41 -6
- data/lib/fog/brightbox/models/compute/server_group.rb +56 -17
- data/lib/fog/brightbox/requests/compute/remove_firewall_policy.rb +14 -0
- data/lib/fog/clodo.rb +34 -0
- data/lib/fog/clodo/compute.rb +152 -0
- data/lib/fog/clodo/models/compute/image.rb +31 -0
- data/lib/fog/clodo/models/compute/images.rb +28 -0
- data/lib/fog/clodo/models/compute/server.rb +163 -0
- data/lib/fog/clodo/models/compute/servers.rb +36 -0
- data/lib/fog/clodo/requests/compute/add_ip_address.rb +49 -0
- data/lib/fog/clodo/requests/compute/create_server.rb +112 -0
- data/lib/fog/clodo/requests/compute/delete_ip_address.rb +47 -0
- data/lib/fog/clodo/requests/compute/delete_server.rb +44 -0
- data/lib/fog/clodo/requests/compute/get_image_details.rb +20 -0
- data/lib/fog/clodo/requests/compute/get_server_details.rb +49 -0
- data/lib/fog/clodo/requests/compute/list_images.rb +48 -0
- data/lib/fog/clodo/requests/compute/list_images_detail.rb +61 -0
- data/lib/fog/clodo/requests/compute/list_servers.rb +50 -0
- data/lib/fog/clodo/requests/compute/list_servers_detail.rb +51 -0
- data/lib/fog/clodo/requests/compute/move_ip_address.rb +34 -0
- data/lib/fog/clodo/requests/compute/reboot_server.rb +19 -0
- data/lib/fog/clodo/requests/compute/rebuild_server.rb +21 -0
- data/lib/fog/clodo/requests/compute/server_action.rb +25 -0
- data/lib/fog/clodo/requests/compute/start_server.rb +19 -0
- data/lib/fog/clodo/requests/compute/stop_server.rb +19 -0
- data/lib/fog/compute.rb +3 -0
- data/lib/fog/core/credentials.rb +3 -3
- data/lib/fog/core/errors.rb +2 -0
- data/lib/fog/core/wait_for.rb +1 -1
- data/lib/fog/dnsmadeeasy/dns.rb +1 -1
- data/lib/fog/libvirt/compute.rb +2 -0
- data/lib/fog/libvirt/models/compute/nodes.rb +1 -3
- data/lib/fog/libvirt/models/compute/server.rb +8 -1
- data/lib/fog/providers.rb +1 -0
- data/lib/fog/rackspace/dns.rb +10 -2
- data/lib/fog/rackspace/load_balancers.rb +3 -0
- data/lib/fog/rackspace/models/compute/server.rb +2 -2
- data/lib/fog/rackspace/models/dns/callback.rb +3 -1
- data/lib/fog/rackspace/models/dns/record.rb +4 -0
- data/lib/fog/rackspace/models/load_balancers/load_balancer.rb +18 -8
- data/lib/fog/rackspace/requests/load_balancers/delete_nodes.rb +1 -2
- data/lib/fog/rackspace/requests/load_balancers/get_error_page.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/list_load_balancers.rb +8 -2
- data/lib/fog/rackspace/requests/load_balancers/remove_error_page.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/set_error_page.rb +21 -0
- data/lib/fog/vcloud/compute.rb +7 -1
- data/lib/fog/vcloud/models/compute/catalogs.rb +4 -5
- data/lib/fog/vcloud/models/compute/helpers/status.rb +37 -0
- data/lib/fog/vcloud/models/compute/network.rb +13 -49
- data/lib/fog/vcloud/models/compute/networks.rb +12 -3
- data/lib/fog/vcloud/models/compute/organization.rb +44 -0
- data/lib/fog/vcloud/models/compute/organizations.rb +29 -0
- data/lib/fog/vcloud/models/compute/server.rb +35 -56
- data/lib/fog/vcloud/models/compute/servers.rb +11 -13
- data/lib/fog/vcloud/models/compute/vapp.rb +41 -0
- data/lib/fog/vcloud/models/compute/vapps.rb +32 -0
- data/lib/fog/vcloud/models/compute/vdc.rb +11 -26
- data/lib/fog/vcloud/models/compute/vdcs.rb +6 -8
- data/lib/fog/vcloud/requests/compute/get_server.rb +10 -0
- data/lib/fog/vsphere/compute.rb +1 -0
- data/lib/fog/vsphere/models/compute/server.rb +18 -0
- data/lib/fog/vsphere/models/compute/servers.rb +8 -2
- data/lib/fog/vsphere/requests/compute/datacenters.rb +34 -0
- data/lib/fog/vsphere/requests/compute/list_virtual_machines.rb +132 -91
- data/lib/fog/vsphere/requests/compute/vm_clone.rb +76 -37
- data/spec/lib/fog/aws/parsers/sqs/receive_message_spec.rb +58 -0
- data/tests/aws/models/elb/model_tests.rb +5 -0
- data/tests/aws/requests/compute/instance_tests.rb +23 -0
- data/tests/aws/requests/compute/security_group_tests.rb +1 -0
- data/tests/aws/requests/elb/listener_tests.rb +4 -0
- data/tests/aws/requests/storage/{hash_to_acl_tests.rb → acl_utils_tests.rb} +38 -2
- data/tests/aws/requests/storage/bucket_tests.rb +0 -3
- data/tests/aws/requests/storage/object_tests.rb +2 -4
- data/tests/aws/requests/sts/get_federation_token_tests.rb +21 -0
- data/tests/aws/requests/sts/session_token_tests.rb +16 -0
- data/tests/brightbox/requests/compute/account_tests.rb +11 -6
- data/tests/brightbox/requests/compute/api_client_tests.rb +23 -12
- data/tests/brightbox/requests/compute/cloud_ip_tests.rb +32 -17
- data/tests/brightbox/requests/compute/helper.rb +29 -3
- data/tests/brightbox/requests/compute/image_tests.rb +17 -14
- data/tests/brightbox/requests/compute/interface_tests.rb +3 -2
- data/tests/brightbox/requests/compute/load_balancer_tests.rb +57 -11
- data/tests/brightbox/requests/compute/server_group_tests.rb +29 -22
- data/tests/brightbox/requests/compute/server_tests.rb +41 -22
- data/tests/brightbox/requests/compute/server_type_tests.rb +7 -6
- data/tests/brightbox/requests/compute/user_tests.rb +11 -16
- data/tests/brightbox/requests/compute/zone_tests.rb +7 -6
- data/tests/clodo/requests/compute/image_tests.rb +36 -0
- data/tests/clodo/requests/compute/server_tests.rb +152 -0
- data/tests/compute/helper.rb +1 -1
- data/tests/core/credential_tests.rb +2 -2
- data/tests/glesys/requests/compute/helper.rb +91 -66
- data/tests/glesys/requests/compute/ip_tests.rb +1 -1
- data/tests/glesys/requests/compute/server_tests.rb +5 -5
- data/tests/helpers/mock_helper.rb +2 -0
- data/tests/rackspace/models/dns/zone_tests.rb +14 -0
- data/tests/rackspace/models/{access_list_tests.rb → load_balancers/access_list_tests.rb} +0 -0
- data/tests/rackspace/models/{access_lists_tests.rb → load_balancers/access_lists_tests.rb} +0 -0
- data/tests/rackspace/models/{load_balancer_tests.rb → load_balancers/load_balancer_tests.rb} +25 -0
- data/tests/rackspace/models/{load_balancers_tests.rb → load_balancers/load_balancers_tests.rb} +0 -0
- data/tests/rackspace/models/{node_tests.rb → load_balancers/node_tests.rb} +0 -0
- data/tests/rackspace/models/{nodes_tests.rb → load_balancers/nodes_tests.rb} +0 -0
- data/tests/rackspace/models/{virtual_ip_tests.rb → load_balancers/virtual_ip_tests.rb} +0 -0
- data/tests/rackspace/models/{virtual_ips_tests.rb → load_balancers/virtual_ips_tests.rb} +0 -0
- data/tests/rackspace/requests/dns/dns_tests.rb +4 -2
- data/tests/rackspace/requests/load_balancers/error_page_tests.rb +31 -0
- data/tests/rackspace/requests/load_balancers/helper.rb +27 -11
- data/tests/rackspace/requests/load_balancers/load_balancer_tests.rb +4 -1
- data/tests/rackspace/requests/load_balancers/node_tests.rb +24 -25
- data/tests/slicehost/requests/compute/slice_tests.rb +2 -2
- data/tests/storm_on_demand/requests/compute/server_tests.rb +3 -3
- data/tests/vcloud/data/api_+_v1.0_+_admin_+_network_+_2 +110 -0
- data/tests/vcloud/data/api_+_v1.0_+_login +5 -0
- data/tests/vcloud/data/api_+_v1.0_+_network_+_1 +44 -0
- data/tests/vcloud/data/api_+_v1.0_+_network_+_2 +31 -0
- data/tests/vcloud/data/api_+_v1.0_+_org_+_1 +17 -0
- data/tests/vcloud/data/api_+_v1.0_+_vApp_+_vapp-1 +369 -0
- data/tests/vcloud/data/api_+_v1.0_+_vApp_+_vm-1 +139 -0
- data/tests/vcloud/data/api_+_v1.0_+_vApp_+_vm-2 +155 -0
- data/tests/vcloud/data/api_+_v1.0_+_vdc_+_1 +61 -0
- data/tests/vcloud/models/compute/conn_helper.rb +20 -0
- data/tests/vcloud/models/compute/network_tests.rb +65 -0
- data/tests/vcloud/models/compute/networks_tests.rb +42 -0
- data/tests/vcloud/models/compute/organization_tests.rb +13 -0
- data/tests/vcloud/models/compute/organizations_tests.rb +14 -0
- data/tests/vcloud/models/compute/server_tests.rb +136 -0
- data/tests/vcloud/models/compute/servers_tests.rb +10 -89
- data/tests/vcloud/models/compute/vapp_tests.rb +27 -0
- data/tests/vcloud/models/compute/vapps_tests.rb +17 -0
- data/tests/vcloud/models/compute/vdc_tests.rb +42 -0
- data/tests/vcloud/models/compute/vdcs_tests.rb +17 -0
- data/tests/vsphere/requests/compute/vm_clone_tests.rb +2 -6
- metadata +151 -55
@@ -10,7 +10,7 @@ Shindo.tests('Fog::Compute[:glesys] | ip requests', ['glesys']) do
|
|
10
10
|
Fog::Compute[:glesys].ip_list_own.body['response']
|
11
11
|
end
|
12
12
|
|
13
|
-
tests("#ip_list_free(:
|
13
|
+
tests("#ip_list_free(:datacenter => 'Falkenberg, :platform => 'Xen', :ipversion => 4)"
|
14
14
|
).formats(Glesys::Compute::Formats::Ips::IPLIST_ALL) do
|
15
15
|
pending if Fog.mocking?
|
16
16
|
ips = Fog::Compute[:glesys].ip_list_free(
|
@@ -1,7 +1,7 @@
|
|
1
1
|
Shindo.tests('Fog::Compute[:glesys] | server requests', ['glesys']) do
|
2
|
-
|
2
|
+
|
3
3
|
@serverid = nil
|
4
|
-
@hostname = "fog
|
4
|
+
@hostname = "fog-#{Time.now.to_i}"
|
5
5
|
|
6
6
|
@create = ":hostname => #@hostname, :rootpw => 'pw#{Time.now.to_i}', "+
|
7
7
|
":datacenter => 'Falkenberg', :platform => 'Xen', :template => 'Debian-6 x64', "+
|
@@ -27,7 +27,7 @@ Shindo.tests('Fog::Compute[:glesys] | server requests', ['glesys']) do
|
|
27
27
|
:cpucores => "1",
|
28
28
|
:transfer => "500"
|
29
29
|
)
|
30
|
-
|
30
|
+
|
31
31
|
@serverid = vm.body['response']['server']['serverid']
|
32
32
|
vm.body['response']
|
33
33
|
end
|
@@ -35,7 +35,7 @@ Shindo.tests('Fog::Compute[:glesys] | server requests', ['glesys']) do
|
|
35
35
|
unless Fog.mocking?
|
36
36
|
Fog::Compute[:glesys].servers.get(@serverid).wait_for { ready? }
|
37
37
|
end
|
38
|
-
|
38
|
+
|
39
39
|
tests("#server_details(#{@serverid})").formats(Glesys::Compute::Formats::Servers::DETAILS) do
|
40
40
|
pending if Fog.mocking?
|
41
41
|
Fog::Compute[:glesys].server_details(@serverid).body['response']
|
@@ -55,7 +55,7 @@ Shindo.tests('Fog::Compute[:glesys] | server requests', ['glesys']) do
|
|
55
55
|
unless Fog.mocking?
|
56
56
|
pending if Fog.mocking?
|
57
57
|
s = Fog::Compute[:glesys].servers.get(@serverid)
|
58
|
-
s.wait_for { s.state == 'stopped' }
|
58
|
+
s.wait_for { s.state == 'stopped' }
|
59
59
|
end
|
60
60
|
|
61
61
|
tests("#start(:serverid => #{@serverid})").formats(Glesys::Compute::Formats::Servers::START) do
|
@@ -15,6 +15,8 @@ if Fog.mock?
|
|
15
15
|
:bluebox_customer_id => 'bluebox_customer_id',
|
16
16
|
:brightbox_client_id => 'brightbox_client_id',
|
17
17
|
:brightbox_secret => 'brightbox_secret',
|
18
|
+
:clodo_api_key => 'clodo_api_key',
|
19
|
+
:clodo_username => 'clodo_username',
|
18
20
|
:dnsimple_email => 'dnsimple_email',
|
19
21
|
:dnsimple_password => 'dnsimple_password',
|
20
22
|
:dnsmadeeasy_api_key => 'dnsmadeeasy_api_key',
|
@@ -0,0 +1,14 @@
|
|
1
|
+
Shindo.tests('Fog::Rackspace::DNS | zone', ['rackspace']) do
|
2
|
+
pending if Fog.mocking?
|
3
|
+
|
4
|
+
provider = Fog::DNS[:rackspace]
|
5
|
+
domain_name = uniq_id + '.com'
|
6
|
+
|
7
|
+
zone = provider.zones.create({:domain => domain_name, :email => 'hostmaster@' + domain_name})
|
8
|
+
|
9
|
+
tests('adding same domain twice throws error').raises(Fog::DNS::Rackspace::CallbackError) do
|
10
|
+
provider.zones.create({:domain => domain_name, :email => 'hostmaster@' + domain_name})
|
11
|
+
end
|
12
|
+
|
13
|
+
zone.destroy
|
14
|
+
end
|
File without changes
|
File without changes
|
data/tests/rackspace/models/{load_balancer_tests.rb → load_balancers/load_balancer_tests.rb}
RENAMED
@@ -25,6 +25,11 @@ Shindo.tests('Fog::Rackspace::LoadBalancers | load_balancer', ['rackspace']) do
|
|
25
25
|
returns(true) { @instance.connection_logging }
|
26
26
|
end
|
27
27
|
|
28
|
+
tests('#enable_connection_logging after reload').succeeds do
|
29
|
+
@instance.reload
|
30
|
+
returns(true) { @instance.connection_logging }
|
31
|
+
end
|
32
|
+
|
28
33
|
@instance.wait_for { ready? }
|
29
34
|
tests('#disable_connection_logging').succeeds do
|
30
35
|
@instance.disable_connection_logging
|
@@ -54,6 +59,11 @@ Shindo.tests('Fog::Rackspace::LoadBalancers | load_balancer', ['rackspace']) do
|
|
54
59
|
returns('CONNECT') { monitor['type'] }
|
55
60
|
end
|
56
61
|
|
62
|
+
@instance.wait_for { ready? }
|
63
|
+
tests("#enable_health_monitor('HTTP', 10, 5, 2, {:status_regex => '^[234][0-9][0-9]$', :path=>'/', :body_regex=>' '})").succeeds do
|
64
|
+
@instance.enable_health_monitor('HTTP', 10, 5, 2, {:status_regex => '^[234][0-9][0-9]$', :path=>'/', :body_regex=>' '})
|
65
|
+
end
|
66
|
+
|
57
67
|
@instance.wait_for { ready? }
|
58
68
|
tests("#disable_health_monitor").succeeds do
|
59
69
|
@instance.disable_health_monitor
|
@@ -99,6 +109,21 @@ Shindo.tests('Fog::Rackspace::LoadBalancers | load_balancer', ['rackspace']) do
|
|
99
109
|
@instance.disable_session_persistence
|
100
110
|
end
|
101
111
|
|
112
|
+
@instance.wait_for { ready? }
|
113
|
+
tests("#error_page").succeeds do
|
114
|
+
@instance.error_page
|
115
|
+
end
|
116
|
+
|
117
|
+
@instance.wait_for { ready? }
|
118
|
+
tests("#error_page = 'asdf'").succeeds do
|
119
|
+
@instance.error_page = 'asdf'
|
120
|
+
end
|
121
|
+
|
122
|
+
@instance.wait_for { ready? }
|
123
|
+
tests("#reset_error_page").succeeds do
|
124
|
+
@instance.reset_error_page
|
125
|
+
end
|
126
|
+
|
102
127
|
@instance.wait_for { ready? }
|
103
128
|
end
|
104
129
|
|
data/tests/rackspace/models/{load_balancers_tests.rb → load_balancers/load_balancers_tests.rb}
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -101,8 +101,10 @@ Shindo.tests('Fog::DNS[:rackspace] | DNS requests', ['rackspace', 'dns']) do
|
|
101
101
|
|
102
102
|
tests( 'failure') do
|
103
103
|
|
104
|
-
tests('create_domain(invalid)').
|
105
|
-
wait_for Fog::DNS[:rackspace], Fog::DNS[:rackspace].create_domains([{:name => 'badtestdomain.com', :email => '', :records => [{:ttl => 300, :name => 'badtestdomain.com', :type => 'A', :data => '192.168.1.1'}]}])
|
104
|
+
tests('create_domain(invalid)').returns('ERROR') do
|
105
|
+
response = wait_for Fog::DNS[:rackspace], Fog::DNS[:rackspace].create_domains([{:name => 'badtestdomain.com', :email => '', :records => [{:ttl => 300, :name => 'badtestdomain.com', :type => 'A', :data => '192.168.1.1'}]}])
|
106
|
+
|
107
|
+
response.body['status']
|
106
108
|
end
|
107
109
|
|
108
110
|
tests('list_domains :limit => 5, :offset => 8').raises(Fog::Rackspace::Errors::BadRequest) do
|
@@ -0,0 +1,31 @@
|
|
1
|
+
Shindo.tests('Fog::Rackspace::LoadBalancers | error_page', ['rackspace', 'loadbalancers']) do
|
2
|
+
|
3
|
+
pending if Fog.mocking?
|
4
|
+
|
5
|
+
given_a_load_balancer_service do
|
6
|
+
given_a_load_balancer do
|
7
|
+
tests('success') do
|
8
|
+
|
9
|
+
@lb.wait_for { ready? }
|
10
|
+
tests("#get_error_page(#{@lb.id})").formats(ERROR_PAGE_FORMAT) do
|
11
|
+
@service.get_error_page(@lb.id).body
|
12
|
+
end
|
13
|
+
|
14
|
+
@lb.wait_for { ready? }
|
15
|
+
tests("#set_error_page(#{@lb.id}, '<html><body>hi!</body></html>')").succeeds do
|
16
|
+
@service.set_error_page(@lb.id, '<html><body>hi!</body></html>')
|
17
|
+
end
|
18
|
+
|
19
|
+
@lb.wait_for { ready? }
|
20
|
+
tests("#get_error_page(#{@lb.id})").formats(ERROR_PAGE_FORMAT) do
|
21
|
+
@service.get_error_page(@lb.id).body
|
22
|
+
end
|
23
|
+
|
24
|
+
@lb.wait_for { ready? }
|
25
|
+
tests("#remove_error_page()").succeeds do
|
26
|
+
@service.remove_error_page(@lb.id)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -3,6 +3,11 @@ NODE_FORMAT = {'node' => SINGLE_NODE_FORMAT}
|
|
3
3
|
NODES_FORMAT = {'nodes' => [SINGLE_NODE_FORMAT]}
|
4
4
|
VIRTUAL_IP_FORMAT = {'type' => String, 'id' => Integer, 'type' => String, 'ipVersion' => String, 'address' => String}
|
5
5
|
VIRTUAL_IPS_FORMAT = { 'virtualIps' => [VIRTUAL_IP_FORMAT] }
|
6
|
+
SOURCE_ADDRESSES = {
|
7
|
+
'ipv4Servicenet' => String,
|
8
|
+
'ipv4Public' => String,
|
9
|
+
'ipv6Public' => String,
|
10
|
+
}
|
6
11
|
LOAD_BALANCER_USAGE_FORMAT = {
|
7
12
|
'loadBalancerUsageRecords' => [
|
8
13
|
{
|
@@ -87,11 +92,22 @@ LOAD_BALANCERS_FORMAT = {
|
|
87
92
|
'port' => Integer,
|
88
93
|
'protocol' => String,
|
89
94
|
'algorithm' => String,
|
90
|
-
'
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
+
'status' => String,
|
96
|
+
'virtualIps' => [VIRTUAL_IP_FORMAT],
|
97
|
+
'created' => { 'time' => String },
|
98
|
+
'updated' => { 'time' => String }
|
99
|
+
}]
|
100
|
+
}
|
101
|
+
|
102
|
+
LOAD_BALANCERS_DETAIL_FORMAT = {
|
103
|
+
'loadBalancers' => [
|
104
|
+
{
|
105
|
+
'name' => String,
|
106
|
+
'id' => Integer,
|
107
|
+
'port' => Integer,
|
108
|
+
'protocol' => String,
|
109
|
+
'algorithm' => String,
|
110
|
+
'sourceAddresses' => SOURCE_ADDRESSES,
|
95
111
|
'status' => String,
|
96
112
|
'virtualIps' => [VIRTUAL_IP_FORMAT],
|
97
113
|
'nodes' => [SINGLE_NODE_FORMAT],
|
@@ -106,11 +122,7 @@ LOAD_BALANCER_FORMAT = {
|
|
106
122
|
'port' => Integer,
|
107
123
|
'protocol' => String,
|
108
124
|
'algorithm' => String,
|
109
|
-
'sourceAddresses' =>
|
110
|
-
'ipv4Servicenet' => String,
|
111
|
-
'ipv4Public' => String,
|
112
|
-
'ipv6Public' => String,
|
113
|
-
},
|
125
|
+
'sourceAddresses' => SOURCE_ADDRESSES,
|
114
126
|
'status' => String,
|
115
127
|
'cluster' => { 'name' => String },
|
116
128
|
'virtualIps' => [VIRTUAL_IP_FORMAT],
|
@@ -120,4 +132,8 @@ LOAD_BALANCER_FORMAT = {
|
|
120
132
|
}.merge(CONNECTION_LOGGING_FORMAT)
|
121
133
|
}
|
122
134
|
|
123
|
-
|
135
|
+
ERROR_PAGE_FORMAT = {
|
136
|
+
'errorpage' => {
|
137
|
+
'content' => String
|
138
|
+
}
|
139
|
+
}
|
@@ -8,7 +8,7 @@ Shindo.tests('Fog::Rackspace::LoadBalancers | load_balancer_tests', ['rackspace'
|
|
8
8
|
@lb_id = nil
|
9
9
|
@lb_name = 'fog' + Time.now.to_i.to_s
|
10
10
|
|
11
|
-
tests(
|
11
|
+
tests("#create_load_balancer(#{@lb_name}, 'HTTP', 80,...)").formats(LOAD_BALANCER_FORMAT) do
|
12
12
|
data = @service.create_load_balancer(@lb_name, 'HTTP', 80, [{ :type => 'PUBLIC'}], [{ :address => '10.0.0.1', :port => 80, :condition => 'ENABLED'}]).body
|
13
13
|
@lb_id = data['loadBalancer']['id']
|
14
14
|
data
|
@@ -30,6 +30,9 @@ Shindo.tests('Fog::Rackspace::LoadBalancers | load_balancer_tests', ['rackspace'
|
|
30
30
|
sleep 10
|
31
31
|
end
|
32
32
|
|
33
|
+
tests("#list_load_balancers({:node_address => '10.0.0.1'})").formats(LOAD_BALANCERS_FORMAT) do
|
34
|
+
@service.list_load_balancers({:node_address => '10.0.0.1'}).body
|
35
|
+
end
|
33
36
|
|
34
37
|
tests("#update_load_balancer(#{@lb_id}, { :port => 80 })").succeeds do
|
35
38
|
@service.update_load_balancer(@lb_id, { :port => 80 }).body
|
@@ -1,4 +1,4 @@
|
|
1
|
-
Shindo.tests('Fog::Rackspace::LoadBalancers |
|
1
|
+
Shindo.tests('Fog::Rackspace::LoadBalancers | node_tests', ['rackspace']) do
|
2
2
|
|
3
3
|
pending if Fog.mocking?
|
4
4
|
|
@@ -9,7 +9,7 @@ Shindo.tests('Fog::Rackspace::LoadBalancers | load_balancer_tests', ['rackspace'
|
|
9
9
|
tests('success') do
|
10
10
|
|
11
11
|
@lb.wait_for { ready? }
|
12
|
-
tests(
|
12
|
+
tests("#create_node(#{@lb.id}, '10.10.10.10', 80, 'ENABLED')").formats(NODES_FORMAT) do
|
13
13
|
data = @service.create_node(@lb.id, '10.10.10.10', 80, 'ENABLED').body
|
14
14
|
@nodes_created << data['nodes'][0]['id']
|
15
15
|
data
|
@@ -23,48 +23,48 @@ Shindo.tests('Fog::Rackspace::LoadBalancers | load_balancer_tests', ['rackspace'
|
|
23
23
|
end
|
24
24
|
|
25
25
|
@lb.wait_for { ready? }
|
26
|
-
tests("list_nodes").formats(NODES_FORMAT) do
|
26
|
+
tests("#list_nodes(#{@lb.id})").formats(NODES_FORMAT) do
|
27
27
|
@service.list_nodes(@lb.id).body
|
28
28
|
end
|
29
29
|
|
30
30
|
@lb.wait_for { ready? }
|
31
|
-
tests("get_node(#{@
|
31
|
+
tests("#get_node(#{@lb.id})").formats(NODE_FORMAT) do
|
32
32
|
@service.get_node(@lb.id, @nodes_created[0]).body
|
33
33
|
end
|
34
34
|
|
35
|
-
|
36
|
-
|
37
|
-
@lb.
|
38
|
-
|
39
|
-
@service.update_node(@lb.id, @nodes_created[0], { :condition => 'DISABLED' })
|
40
|
-
end
|
35
|
+
@lb.wait_for { ready? }
|
36
|
+
tests("#update_node(#{@lb.id}, #{@nodes_created[0]}, { :condition => 'DISABLED' })").succeeds do
|
37
|
+
@service.update_node(@lb.id, @nodes_created[0], { :condition => 'DISABLED' })
|
38
|
+
end
|
41
39
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
40
|
+
@lb.wait_for { ready? }
|
41
|
+
tests("#update_node(#{@lb.id}, #{@nodes_created[0]}, { :weight => 20})").succeeds do
|
42
|
+
@service.update_node(@lb.id, @nodes_created[0], { :weight => 20 })
|
43
|
+
end
|
46
44
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
end
|
45
|
+
@lb.wait_for { ready? }
|
46
|
+
tests("#update_node(#{@lb.id}, #{@nodes_created[0]}, { :condition => 'DISABLED', :weight => 20 })").succeeds do
|
47
|
+
@service.update_node(@lb.id, @nodes_created[0], { :condition => 'DISABLED', :weight => 20 })
|
51
48
|
end
|
52
49
|
end
|
53
50
|
|
54
51
|
tests('failure') do
|
55
|
-
tests('create_node(invalid ip)').raises(Fog::Rackspace::LoadBalancers::BadRequest) do
|
52
|
+
tests('#create_node(invalid ip)').raises(Fog::Rackspace::LoadBalancers::BadRequest) do
|
56
53
|
@service.create_node(@lb.id, '', 80, 'ENABLED')
|
57
54
|
end
|
58
|
-
tests('create_node(invalid condition)').raises(Fog::Rackspace::LoadBalancers::BadRequest) do
|
55
|
+
tests('#create_node(invalid condition)').raises(Fog::Rackspace::LoadBalancers::BadRequest) do
|
59
56
|
@service.create_node(@lb.id, '10.10.10.10', 80, 'EABLED')
|
60
57
|
end
|
61
|
-
tests(
|
58
|
+
tests("#get_node(#{@lb.id}, 0)").raises(Fog::Rackspace::LoadBalancers::NotFound) do
|
62
59
|
@service.get_node(@lb.id, 0)
|
63
60
|
end
|
64
|
-
tests(
|
65
|
-
@service.
|
61
|
+
tests("#delete_node(#{@lb.id}, 0)").raises(Fog::Rackspace::LoadBalancers::NotFound) do
|
62
|
+
@service.delete_node(@lb.id, 0)
|
63
|
+
end
|
64
|
+
tests("#delete_nodes('a', 'b')").raises(Fog::Rackspace::LoadBalancers::NotFound) do
|
65
|
+
@service.delete_nodes(@lb.id, 'a', 'b')
|
66
66
|
end
|
67
|
-
tests(
|
67
|
+
tests("#update_node(#{@lb.id}, 0, { :weight => 20 })").raises(Fog::Rackspace::LoadBalancers::NotFound) do
|
68
68
|
@service.update_node(@lb.id, 0, { :weight => 20 })
|
69
69
|
end
|
70
70
|
end
|
@@ -72,7 +72,6 @@ Shindo.tests('Fog::Rackspace::LoadBalancers | load_balancer_tests', ['rackspace'
|
|
72
72
|
tests('success') do
|
73
73
|
@lb.wait_for { ready? }
|
74
74
|
tests("#delete_nodes(multiple node)").succeeds do
|
75
|
-
pending
|
76
75
|
@service.delete_nodes(@lb.id, *@nodes_created)
|
77
76
|
end
|
78
77
|
@lb.wait_for { ready? }
|
@@ -16,9 +16,9 @@ Shindo.tests('Fog::Compute[:slicehost] | slice requests', ['slicehost']) do
|
|
16
16
|
|
17
17
|
@slice_id = nil
|
18
18
|
|
19
|
-
tests("#create_slice(1,
|
19
|
+
tests("#create_slice(1, 305, 'fogcreateslice')").formats(@slice_format.merge('root-password' => String)) do
|
20
20
|
pending if Fog.mocking?
|
21
|
-
data = Fog::Compute[:slicehost].create_slice(1,
|
21
|
+
data = Fog::Compute[:slicehost].create_slice(1, 305, 'fogcreateslice').body
|
22
22
|
@slice_id = data['id']
|
23
23
|
data
|
24
24
|
end
|
@@ -14,16 +14,16 @@ Shindo.tests('Fog::Compute[:stormondemand] | server requests', ['stormondemand']
|
|
14
14
|
'ip' => String,
|
15
15
|
'ip_count' => String,
|
16
16
|
'subaccnt' => String,
|
17
|
-
'template' =>
|
17
|
+
'template' => String,
|
18
18
|
'template_description' => String,
|
19
|
-
'manage_level' =>
|
19
|
+
'manage_level' => String,
|
20
20
|
'zone' => Hash,
|
21
21
|
'active' => Integer,
|
22
22
|
'create_date' => String
|
23
23
|
}
|
24
24
|
|
25
25
|
@servers_format = {
|
26
|
-
'
|
26
|
+
'items' => [@server_format]
|
27
27
|
}
|
28
28
|
|
29
29
|
tests('success') do
|
@@ -0,0 +1,110 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<ExternalNetwork xmlns="http://www.vmware.com/vcloud/v1" name="ParentNetwork1" type="application/vnd.vmware.admin.network+xml" href="https://vcloud.example.com/api/v1.0/admin/network/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.vmware.com/vcloud/v1 http://vcloud.example.com/api/v1.0/schema/master.xsd">
|
3
|
+
<Description>Internet Connection</Description>
|
4
|
+
<Configuration>
|
5
|
+
<IpScope>
|
6
|
+
<IsInherited>false</IsInherited>
|
7
|
+
<Gateway>172.0.0.1</Gateway>
|
8
|
+
<Netmask>255.255.255.0</Netmask>
|
9
|
+
<Dns1>172.0.0.2</Dns1>
|
10
|
+
<Dns2>172.0.0.190</Dns2>
|
11
|
+
<IpRanges>
|
12
|
+
<IpRange>
|
13
|
+
<StartAddress>172.0.0.142</StartAddress>
|
14
|
+
<EndAddress>172.0.0.156</EndAddress>
|
15
|
+
</IpRange>
|
16
|
+
<IpRange>
|
17
|
+
<StartAddress>172.0.0.160</StartAddress>
|
18
|
+
<EndAddress>172.0.0.184</EndAddress>
|
19
|
+
</IpRange>
|
20
|
+
<IpRange>
|
21
|
+
<StartAddress>172.0.0.195</StartAddress>
|
22
|
+
<EndAddress>172.0.0.235</EndAddress>
|
23
|
+
</IpRange>
|
24
|
+
</IpRanges>
|
25
|
+
<AllocatedIpAddresses>
|
26
|
+
<IpAddress>172.0.0.153</IpAddress>
|
27
|
+
<IpAddress>172.0.0.147</IpAddress>
|
28
|
+
<IpAddress>172.0.0.221</IpAddress>
|
29
|
+
<IpAddress>172.0.0.226</IpAddress>
|
30
|
+
<IpAddress>172.0.0.151</IpAddress>
|
31
|
+
<IpAddress>172.0.0.161</IpAddress>
|
32
|
+
<IpAddress>172.0.0.164</IpAddress>
|
33
|
+
<IpAddress>172.0.0.163</IpAddress>
|
34
|
+
<IpAddress>172.0.0.218</IpAddress>
|
35
|
+
<IpAddress>172.0.0.173</IpAddress>
|
36
|
+
<IpAddress>172.0.0.172</IpAddress>
|
37
|
+
<IpAddress>172.0.0.175</IpAddress>
|
38
|
+
<IpAddress>172.0.0.178</IpAddress>
|
39
|
+
<IpAddress>172.0.0.197</IpAddress>
|
40
|
+
<IpAddress>172.0.0.180</IpAddress>
|
41
|
+
<IpAddress>172.0.0.201</IpAddress>
|
42
|
+
<IpAddress>172.0.0.156</IpAddress>
|
43
|
+
<IpAddress>172.0.0.202</IpAddress>
|
44
|
+
<IpAddress>172.0.0.183</IpAddress>
|
45
|
+
<IpAddress>172.0.0.149</IpAddress>
|
46
|
+
<IpAddress>172.0.0.214</IpAddress>
|
47
|
+
<IpAddress>172.0.0.171</IpAddress>
|
48
|
+
<IpAddress>172.0.0.162</IpAddress>
|
49
|
+
<IpAddress>172.0.0.198</IpAddress>
|
50
|
+
<IpAddress>172.0.0.224</IpAddress>
|
51
|
+
<IpAddress>172.0.0.195</IpAddress>
|
52
|
+
<IpAddress>172.0.0.196</IpAddress>
|
53
|
+
<IpAddress>172.0.0.150</IpAddress>
|
54
|
+
<IpAddress>172.0.0.169</IpAddress>
|
55
|
+
<IpAddress>172.0.0.170</IpAddress>
|
56
|
+
<IpAddress>172.0.0.176</IpAddress>
|
57
|
+
<IpAddress>172.0.0.200</IpAddress>
|
58
|
+
<IpAddress>172.0.0.179</IpAddress>
|
59
|
+
<IpAddress>172.0.0.205</IpAddress>
|
60
|
+
<IpAddress>172.0.0.213</IpAddress>
|
61
|
+
<IpAddress>172.0.0.210</IpAddress>
|
62
|
+
<IpAddress>172.0.0.215</IpAddress>
|
63
|
+
<IpAddress>172.0.0.219</IpAddress>
|
64
|
+
<IpAddress>172.0.0.208</IpAddress>
|
65
|
+
<IpAddress>172.0.0.216</IpAddress>
|
66
|
+
<IpAddress>172.0.0.217</IpAddress>
|
67
|
+
<IpAddress>172.0.0.204</IpAddress>
|
68
|
+
<IpAddress>172.0.0.232</IpAddress>
|
69
|
+
<IpAddress>172.0.0.154</IpAddress>
|
70
|
+
<IpAddress>172.0.0.235</IpAddress>
|
71
|
+
<IpAddress>172.0.0.146</IpAddress>
|
72
|
+
<IpAddress>172.0.0.209</IpAddress>
|
73
|
+
<IpAddress>172.0.0.211</IpAddress>
|
74
|
+
<IpAddress>172.0.0.199</IpAddress>
|
75
|
+
<IpAddress>172.0.0.155</IpAddress>
|
76
|
+
<IpAddress>172.0.0.142</IpAddress>
|
77
|
+
<IpAddress>172.0.0.160</IpAddress>
|
78
|
+
<IpAddress>172.0.0.212</IpAddress>
|
79
|
+
<IpAddress>172.0.0.177</IpAddress>
|
80
|
+
<IpAddress>172.0.0.167</IpAddress>
|
81
|
+
<IpAddress>172.0.0.166</IpAddress>
|
82
|
+
<IpAddress>172.0.0.168</IpAddress>
|
83
|
+
<IpAddress>172.0.0.165</IpAddress>
|
84
|
+
<IpAddress>172.0.0.181</IpAddress>
|
85
|
+
<IpAddress>172.0.0.184</IpAddress>
|
86
|
+
<IpAddress>172.0.0.143</IpAddress>
|
87
|
+
<IpAddress>172.0.0.230</IpAddress>
|
88
|
+
<IpAddress>172.0.0.206</IpAddress>
|
89
|
+
<IpAddress>172.0.0.233</IpAddress>
|
90
|
+
<IpAddress>172.0.0.222</IpAddress>
|
91
|
+
<IpAddress>172.0.0.225</IpAddress>
|
92
|
+
<IpAddress>172.0.0.220</IpAddress>
|
93
|
+
<IpAddress>172.0.0.227</IpAddress>
|
94
|
+
<IpAddress>172.0.0.148</IpAddress>
|
95
|
+
<IpAddress>172.0.0.228</IpAddress>
|
96
|
+
<IpAddress>172.0.0.229</IpAddress>
|
97
|
+
<IpAddress>172.0.0.231</IpAddress>
|
98
|
+
<IpAddress>172.0.0.152</IpAddress>
|
99
|
+
<IpAddress>172.0.0.145</IpAddress>
|
100
|
+
<IpAddress>172.0.0.174</IpAddress>
|
101
|
+
<IpAddress>172.0.0.182</IpAddress>
|
102
|
+
<IpAddress>172.0.0.203</IpAddress>
|
103
|
+
<IpAddress>172.0.0.207</IpAddress>
|
104
|
+
<IpAddress>172.0.0.144</IpAddress>
|
105
|
+
</AllocatedIpAddresses>
|
106
|
+
</IpScope>
|
107
|
+
<FenceMode>isolated</FenceMode>
|
108
|
+
</Configuration>
|
109
|
+
<ProviderInfo>NETWORK:dvportgroup-230 on com.vmware.vcloud.entity.vimserver:35935555</ProviderInfo>
|
110
|
+
</ExternalNetwork>
|