fog 1.7.0 → 1.8.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +2 -2
- data/README.md +9 -10
- data/Rakefile +15 -299
- data/changelog.txt +153 -0
- data/docs/about/contributing.markdown +1 -0
- data/docs/dns/index.markdown +1 -1
- data/docs/index.markdown +8 -3
- data/fog.gemspec +3 -3
- data/lib/fog.rb +0 -5
- data/lib/fog/aws/auto_scaling.rb +1 -1
- data/lib/fog/aws/cloud_watch.rb +1 -1
- data/lib/fog/aws/compute.rb +2 -1
- data/lib/fog/aws/dynamodb.rb +30 -64
- data/lib/fog/aws/elb.rb +1 -1
- data/lib/fog/aws/glacier.rb +1 -1
- data/lib/fog/aws/iam.rb +1 -0
- data/lib/fog/aws/models/auto_scaling/group.rb +1 -1
- data/lib/fog/aws/models/compute/server.rb +2 -0
- data/lib/fog/aws/models/compute/volume.rb +0 -1
- data/lib/fog/aws/models/iam/user.rb +1 -1
- data/lib/fog/aws/parsers/compute/describe_instances.rb +3 -1
- data/lib/fog/aws/parsers/compute/describe_reserved_instances_offerings.rb +1 -1
- data/lib/fog/aws/parsers/storage/delete_multiple_objects.rb +50 -0
- data/lib/fog/aws/rds.rb +2 -2
- data/lib/fog/aws/requests/compute/describe_availability_zones.rb +3 -0
- data/lib/fog/aws/requests/compute/describe_reserved_instances_offerings.rb +11 -8
- data/lib/fog/aws/requests/compute/modify_volume_attribute.rb +51 -0
- data/lib/fog/aws/requests/dns/change_resource_record_sets.rb +1 -0
- data/lib/fog/aws/requests/storage/delete_multiple_objects.rb +172 -0
- data/lib/fog/aws/signaturev4.rb +1 -1
- data/lib/fog/aws/sqs.rb +1 -1
- data/lib/fog/aws/storage.rb +2 -0
- data/lib/fog/bluebox/requests/compute/create_block.rb +1 -3
- data/lib/fog/brightbox/compute.rb +239 -84
- data/lib/fog/brightbox/models/compute/account.rb +9 -3
- data/lib/fog/brightbox/models/compute/server.rb +2 -1
- data/lib/fog/brightbox/models/compute/servers.rb +33 -1
- data/lib/fog/brightbox/oauth2.rb +164 -0
- data/lib/fog/brightbox/requests/compute/activate_console_server.rb +9 -2
- data/lib/fog/brightbox/requests/compute/add_listeners_load_balancer.rb +11 -2
- data/lib/fog/brightbox/requests/compute/add_nodes_load_balancer.rb +11 -2
- data/lib/fog/brightbox/requests/compute/add_servers_server_group.rb +9 -11
- data/lib/fog/brightbox/requests/compute/apply_to_firewall_policy.rb +11 -2
- data/lib/fog/brightbox/requests/compute/create_api_client.rb +11 -2
- data/lib/fog/brightbox/requests/compute/create_application.rb +11 -2
- data/lib/fog/brightbox/requests/compute/create_cloud_ip.rb +11 -1
- data/lib/fog/brightbox/requests/compute/create_firewall_policy.rb +13 -2
- data/lib/fog/brightbox/requests/compute/create_firewall_rule.rb +17 -2
- data/lib/fog/brightbox/requests/compute/create_image.rb +18 -2
- data/lib/fog/brightbox/requests/compute/create_load_balancer.rb +14 -2
- data/lib/fog/brightbox/requests/compute/create_server.rb +17 -2
- data/lib/fog/brightbox/requests/compute/create_server_group.rb +11 -2
- data/lib/fog/brightbox/requests/compute/destroy_api_client.rb +9 -2
- data/lib/fog/brightbox/requests/compute/destroy_application.rb +9 -2
- data/lib/fog/brightbox/requests/compute/destroy_cloud_ip.rb +9 -2
- data/lib/fog/brightbox/requests/compute/destroy_firewall_policy.rb +9 -2
- data/lib/fog/brightbox/requests/compute/destroy_firewall_rule.rb +9 -2
- data/lib/fog/brightbox/requests/compute/destroy_image.rb +9 -2
- data/lib/fog/brightbox/requests/compute/destroy_load_balancer.rb +9 -2
- data/lib/fog/brightbox/requests/compute/destroy_server.rb +9 -2
- data/lib/fog/brightbox/requests/compute/destroy_server_group.rb +9 -2
- data/lib/fog/brightbox/requests/compute/get_account.rb +7 -15
- data/lib/fog/brightbox/requests/compute/get_api_client.rb +9 -2
- data/lib/fog/brightbox/requests/compute/get_application.rb +9 -2
- data/lib/fog/brightbox/requests/compute/get_authenticated_user.rb +1 -3
- data/lib/fog/brightbox/requests/compute/get_cloud_ip.rb +9 -2
- data/lib/fog/brightbox/requests/compute/get_firewall_policy.rb +9 -2
- data/lib/fog/brightbox/requests/compute/get_firewall_rule.rb +9 -2
- data/lib/fog/brightbox/requests/compute/get_image.rb +9 -2
- data/lib/fog/brightbox/requests/compute/get_interface.rb +9 -2
- data/lib/fog/brightbox/requests/compute/get_load_balancer.rb +9 -2
- data/lib/fog/brightbox/requests/compute/get_scoped_account.rb +1 -5
- data/lib/fog/brightbox/requests/compute/get_server.rb +9 -2
- data/lib/fog/brightbox/requests/compute/get_server_group.rb +9 -2
- data/lib/fog/brightbox/requests/compute/get_server_type.rb +9 -2
- data/lib/fog/brightbox/requests/compute/get_user.rb +7 -15
- data/lib/fog/brightbox/requests/compute/get_zone.rb +9 -2
- data/lib/fog/brightbox/requests/compute/list_accounts.rb +6 -2
- data/lib/fog/brightbox/requests/compute/list_api_clients.rb +8 -2
- data/lib/fog/brightbox/requests/compute/list_applications.rb +8 -2
- data/lib/fog/brightbox/requests/compute/list_cloud_ips.rb +8 -2
- data/lib/fog/brightbox/requests/compute/list_firewall_policies.rb +8 -2
- data/lib/fog/brightbox/requests/compute/list_images.rb +8 -2
- data/lib/fog/brightbox/requests/compute/list_load_balancers.rb +8 -2
- data/lib/fog/brightbox/requests/compute/list_server_groups.rb +8 -2
- data/lib/fog/brightbox/requests/compute/list_server_types.rb +8 -2
- data/lib/fog/brightbox/requests/compute/list_servers.rb +8 -2
- data/lib/fog/brightbox/requests/compute/list_users.rb +8 -2
- data/lib/fog/brightbox/requests/compute/list_zones.rb +8 -2
- data/lib/fog/brightbox/requests/compute/map_cloud_ip.rb +11 -2
- data/lib/fog/brightbox/requests/compute/move_servers_server_group.rb +10 -12
- data/lib/fog/brightbox/requests/compute/remove_firewall_policy.rb +11 -2
- data/lib/fog/brightbox/requests/compute/remove_listeners_load_balancer.rb +11 -2
- data/lib/fog/brightbox/requests/compute/remove_nodes_load_balancer.rb +11 -2
- data/lib/fog/brightbox/requests/compute/remove_servers_server_group.rb +9 -10
- data/lib/fog/brightbox/requests/compute/reset_ftp_password_account.rb +22 -3
- data/lib/fog/brightbox/requests/compute/reset_ftp_password_scoped_account.rb +18 -0
- data/lib/fog/brightbox/requests/compute/reset_secret_api_client.rb +13 -1
- data/lib/fog/brightbox/requests/compute/reset_secret_application.rb +9 -2
- data/lib/fog/brightbox/requests/compute/shutdown_server.rb +9 -2
- data/lib/fog/brightbox/requests/compute/snapshot_server.rb +9 -2
- data/lib/fog/brightbox/requests/compute/start_server.rb +9 -2
- data/lib/fog/brightbox/requests/compute/stop_server.rb +9 -2
- data/lib/fog/brightbox/requests/compute/unmap_cloud_ip.rb +9 -2
- data/lib/fog/brightbox/requests/compute/update_account.rb +32 -34
- data/lib/fog/brightbox/requests/compute/update_api_client.rb +12 -2
- data/lib/fog/brightbox/requests/compute/update_application.rb +12 -2
- data/lib/fog/brightbox/requests/compute/update_cloud_ip.rb +13 -2
- data/lib/fog/brightbox/requests/compute/update_firewall_rule.rb +16 -1
- data/lib/fog/brightbox/requests/compute/update_image.rb +17 -2
- data/lib/fog/brightbox/requests/compute/update_load_balancer.rb +15 -2
- data/lib/fog/brightbox/requests/compute/update_scoped_account.rb +12 -19
- data/lib/fog/brightbox/requests/compute/update_server.rb +12 -2
- data/lib/fog/brightbox/requests/compute/update_server_group.rb +12 -2
- data/lib/fog/brightbox/requests/compute/update_user.rb +15 -2
- data/lib/fog/cloudstack/models/compute/server.rb +3 -1
- data/lib/fog/core.rb +1 -0
- data/lib/fog/core/connection.rb +1 -0
- data/lib/fog/google/storage.rb +13 -2
- data/lib/fog/libvirt/models/compute/server.rb +1 -0
- data/lib/fog/libvirt/requests/compute/list_domains.rb +2 -2
- data/lib/fog/openstack.rb +57 -58
- data/lib/fog/openstack/compute.rb +15 -14
- data/lib/fog/openstack/identity.rb +10 -2
- data/lib/fog/openstack/image.rb +1 -1
- data/lib/fog/openstack/models/compute/flavor.rb +5 -1
- data/lib/fog/openstack/models/compute/security_group.rb +1 -1
- data/lib/fog/openstack/models/compute/server.rb +5 -0
- data/lib/fog/openstack/models/identity/users.rb +1 -2
- data/lib/fog/openstack/requests/compute/create_flavor.rb +4 -1
- data/lib/fog/openstack/requests/compute/create_security_group.rb +1 -1
- data/lib/fog/openstack/requests/compute/get_limits.rb +93 -0
- data/lib/fog/openstack/requests/compute/list_tenants.rb +1 -0
- data/lib/fog/openstack/requests/compute/release_address.rb +13 -1
- data/lib/fog/openstack/requests/compute/reset_server_state.rb +24 -0
- data/lib/fog/openstack/requests/identity/create_role.rb +1 -1
- data/lib/fog/openstack/requests/identity/set_tenant.rb +21 -0
- data/lib/fog/openstack/volume.rb +2 -1
- data/lib/fog/rackspace/models/compute_v2/server.rb +27 -0
- data/lib/fog/rackspace/models/compute_v2/servers.rb +8 -0
- data/lib/fog/rackspace/models/dns/record.rb +14 -1
- data/lib/fog/rackspace/models/storage/file.rb +68 -2
- data/lib/fog/rackspace/requests/compute_v2/create_server.rb +3 -0
- data/lib/fog/version.rb +5 -0
- data/lib/fog/vsphere/compute.rb +74 -8
- data/lib/fog/vsphere/models/compute/cluster.rb +31 -0
- data/lib/fog/vsphere/models/compute/clusters.rb +26 -0
- data/lib/fog/vsphere/models/compute/datacenter.rb +35 -0
- data/lib/fog/vsphere/models/compute/datacenters.rb +23 -0
- data/lib/fog/vsphere/models/compute/datastore.rb +24 -0
- data/lib/fog/vsphere/models/compute/datastores.rb +25 -0
- data/lib/fog/vsphere/models/compute/folder.rb +28 -0
- data/lib/fog/vsphere/models/compute/folders.rb +27 -0
- data/lib/fog/vsphere/models/compute/interface.rb +39 -0
- data/lib/fog/vsphere/models/compute/interfaces.rb +33 -0
- data/lib/fog/vsphere/models/compute/network.rb +21 -0
- data/lib/fog/vsphere/models/compute/networks.rb +25 -0
- data/lib/fog/vsphere/models/compute/resource_pool.rb +23 -0
- data/lib/fog/vsphere/models/compute/resource_pools.rb +26 -0
- data/lib/fog/vsphere/models/compute/server.rb +78 -12
- data/lib/fog/vsphere/models/compute/servers.rb +16 -20
- data/lib/fog/vsphere/models/compute/template.rb +13 -0
- data/lib/fog/vsphere/models/compute/templates.rb +23 -0
- data/lib/fog/vsphere/models/compute/volume.rb +45 -0
- data/lib/fog/vsphere/models/compute/volumes.rb +33 -0
- data/lib/fog/vsphere/requests/compute/create_vm.rb +114 -0
- data/lib/fog/vsphere/requests/compute/get_cluster.rb +25 -0
- data/lib/fog/vsphere/requests/compute/get_datacenter.rb +29 -0
- data/lib/fog/vsphere/requests/compute/get_datastore.rb +25 -0
- data/lib/fog/vsphere/requests/compute/get_folder.rb +73 -0
- data/lib/fog/vsphere/requests/compute/get_network.rb +25 -0
- data/lib/fog/vsphere/requests/compute/get_resource_pool.rb +26 -0
- data/lib/fog/vsphere/requests/compute/get_virtual_machine.rb +62 -0
- data/lib/fog/vsphere/requests/compute/list_clusters.rb +37 -0
- data/lib/fog/vsphere/requests/compute/list_datacenters.rb +34 -0
- data/lib/fog/vsphere/requests/compute/list_datastores.rb +40 -0
- data/lib/fog/vsphere/requests/compute/list_folders.rb +45 -0
- data/lib/fog/vsphere/requests/compute/list_networks.rb +38 -0
- data/lib/fog/vsphere/requests/compute/list_resource_pools.rb +39 -0
- data/lib/fog/vsphere/requests/compute/list_virtual_machines.rb +132 -166
- data/lib/fog/vsphere/requests/compute/list_vm_interfaces.rb +52 -0
- data/lib/fog/vsphere/requests/compute/list_vm_volumes.rb +51 -0
- data/lib/fog/vsphere/requests/compute/vm_clone.rb +6 -8
- data/lib/fog/vsphere/requests/compute/vm_destroy.rb +1 -8
- data/lib/fog/vsphere/requests/compute/vm_reconfig_hardware.rb +1 -2
- data/lib/tasks/changelog_task.rb +98 -0
- data/lib/tasks/documentation_task.rb +155 -0
- data/lib/tasks/test_task.rb +46 -0
- data/tests/aws/models/iam/users_tests.rb +16 -2
- data/tests/aws/requests/auto_scaling/notification_configuration_tests.rb +1 -0
- data/tests/aws/requests/auto_scaling/tag_tests.rb +1 -0
- data/tests/aws/requests/compute/instance_tests.rb +2 -0
- data/tests/aws/requests/compute/volume_tests.rb +8 -0
- data/tests/aws/requests/storage/object_tests.rb +18 -1
- data/tests/aws/requests/storage/versioning_tests.rb +70 -0
- data/tests/brightbox/compute_tests.rb +96 -4
- data/tests/brightbox/models/compute/account_tests.rb +15 -0
- data/tests/brightbox/oauth2_tests.rb +103 -0
- data/tests/brightbox/requests/compute/account_tests.rb +9 -2
- data/tests/brightbox/requests/compute/interface_tests.rb +18 -4
- data/tests/dns/models/record_tests.rb +17 -3
- data/tests/openstack/requests/compute/address_tests.rb +22 -19
- data/tests/openstack/requests/compute/flavor_tests.rb +4 -2
- data/tests/openstack/requests/compute/limit_tests.rb +60 -0
- data/tests/openstack/requests/compute/quota_tests.rb +16 -3
- data/tests/openstack/requests/compute/security_group_tests.rb +1 -1
- data/tests/rackspace/models/compute_v2/servers_tests.rb +6 -0
- data/tests/rackspace/models/storage/file_tests.rb +172 -0
- data/tests/rackspace/requests/dns/helper.rb +12 -26
- data/tests/vsphere/compute_tests.rb +3 -3
- data/tests/vsphere/models/compute/server_tests.rb +1 -2
- data/tests/vsphere/requests/compute/list_virtual_machines_tests.rb +5 -13
- data/tests/vsphere/requests/compute/vm_clone_tests.rb +2 -2
- metadata +59 -11
- data/lib/fog/vsphere/requests/compute/datacenters.rb +0 -34
- data/lib/fog/vsphere/requests/compute/find_vm_by_ref.rb +0 -41
- data/lib/fog/vsphere/requests/compute/vm_create.rb +0 -97
- data/tests/vsphere/requests/compute/find_vm_by_ref_tests.rb +0 -26
- data/tests/vsphere/requests/compute/vm_create_tests.rb +0 -20
@@ -1,30 +1,44 @@
|
|
1
1
|
Shindo.tests('Fog::Compute[:brightbox] | interface requests', ['brightbox']) do
|
2
2
|
|
3
|
+
@test_service = Fog::Compute[:brightbox]
|
4
|
+
|
3
5
|
tests('success') do
|
4
6
|
|
5
7
|
unless Fog.mocking?
|
6
|
-
server =
|
8
|
+
server = @test_service.servers.first
|
9
|
+
|
10
|
+
# If no server is available, create one just for the test
|
11
|
+
unless server
|
12
|
+
@test_server = Brightbox::Compute::TestSupport.get_test_server
|
13
|
+
server = @test_server
|
14
|
+
end
|
15
|
+
|
7
16
|
@interface_id = server.interfaces.first["id"]
|
8
17
|
end
|
9
18
|
|
10
19
|
tests("#get_interface('#{@interface_id}')") do
|
11
20
|
pending if Fog.mocking?
|
12
|
-
result =
|
21
|
+
result = @test_service.get_interface(@interface_id)
|
13
22
|
formats(Brightbox::Compute::Formats::Full::INTERFACE, false) { result }
|
14
23
|
end
|
15
24
|
|
25
|
+
unless Fog.mocking?
|
26
|
+
# If we created a server just for this test, clean it up
|
27
|
+
@test_server.destroy if @test_server
|
28
|
+
end
|
29
|
+
|
16
30
|
end
|
17
31
|
|
18
32
|
tests('failure') do
|
19
33
|
|
20
34
|
tests("#get_interface('int-00000')").raises(Excon::Errors::NotFound) do
|
21
35
|
pending if Fog.mocking?
|
22
|
-
|
36
|
+
@test_service.get_interface('int-00000')
|
23
37
|
end
|
24
38
|
|
25
39
|
tests("#get_interface()").raises(ArgumentError) do
|
26
40
|
pending if Fog.mocking?
|
27
|
-
|
41
|
+
@test_service.get_interface()
|
28
42
|
end
|
29
43
|
end
|
30
44
|
|
@@ -7,12 +7,24 @@ for provider, config in dns_providers
|
|
7
7
|
|
8
8
|
Shindo.tests("Fog::DNS[:#{provider}] | record", [provider.to_s]) do
|
9
9
|
|
10
|
-
|
11
|
-
:name => '
|
10
|
+
a_record_attributes = {
|
11
|
+
:name => 'a.' + domain_name,
|
12
12
|
:type => 'A',
|
13
13
|
:value => '1.2.3.4'
|
14
14
|
}.merge!(config[:record_attributes] || {})
|
15
15
|
|
16
|
+
aaaa_record_attributes = {
|
17
|
+
:name => 'aaaa.' + domain_name,
|
18
|
+
:type => 'AAAA',
|
19
|
+
:value => '2001:0db8:0000:0000:0000:ff00:0042:8329'
|
20
|
+
}.merge!(config[:record_attributes] || {})
|
21
|
+
|
22
|
+
cname_record_attributes = {
|
23
|
+
:name => 'cname.' + domain_name,
|
24
|
+
:type => 'CNAME',
|
25
|
+
:value => 'real.' + domain_name
|
26
|
+
}.merge!(config[:record_attributes] || {})
|
27
|
+
|
16
28
|
if !Fog.mocking? || config[:mocked]
|
17
29
|
zone_attributes = {
|
18
30
|
:domain => domain_name
|
@@ -20,7 +32,9 @@ for provider, config in dns_providers
|
|
20
32
|
|
21
33
|
@zone = Fog::DNS[provider].zones.create(zone_attributes)
|
22
34
|
|
23
|
-
model_tests(@zone.records,
|
35
|
+
model_tests(@zone.records, a_record_attributes, config[:mocked])
|
36
|
+
model_tests(@zone.records, aaaa_record_attributes, config[:mocked])
|
37
|
+
model_tests(@zone.records, cname_record_attributes, config[:mocked])
|
24
38
|
|
25
39
|
@zone.destroy
|
26
40
|
end
|
@@ -1,16 +1,10 @@
|
|
1
1
|
Shindo.tests('Fog::Compute[:openstack] | address requests', ['openstack']) do
|
2
|
-
# clean the servers
|
3
|
-
=begin
|
4
|
-
@servers = Fog::Compute[:openstack].servers.each do |server|
|
5
|
-
Fog::Compute[:openstack].list_all_addresses(server.id).body['floating_ips'].each do |ip_add|
|
6
|
-
Fog::Compute[:openstack].release_address(ip_add['id'])
|
7
|
-
end
|
8
2
|
|
9
|
-
|
10
|
-
|
11
|
-
=
|
3
|
+
compute = Fog::Compute[:openstack]
|
4
|
+
flavor_ref = ENV['OPENSTACK_FLAVOR_REF'] || compute.list_flavors.body['flavors'].first['links'].first['href']
|
5
|
+
image_ref = ENV['OPENSTACK_IMAGE_REF'] || compute.list_images.body['images'].first['links'].first['href']
|
12
6
|
|
13
|
-
@
|
7
|
+
@server_id = compute.create_server("shindo_test_server", image_ref, flavor_ref).body['server']['id']
|
14
8
|
|
15
9
|
@address_format = {
|
16
10
|
"instance_id" => NilClass,
|
@@ -21,29 +15,38 @@ Shindo.tests('Fog::Compute[:openstack] | address requests', ['openstack']) do
|
|
21
15
|
}
|
22
16
|
|
23
17
|
tests('success') do
|
18
|
+
|
24
19
|
tests('#allocate_address').formats({"floating_ip" => @address_format}) do
|
25
|
-
|
20
|
+
data = compute.allocate_address.body
|
21
|
+
@address_id = data['floating_ip']['id']
|
22
|
+
@address_ip = data['floating_ip']['ip']
|
23
|
+
data
|
26
24
|
end
|
27
25
|
|
28
26
|
tests('#list_all_addresses').formats({"floating_ips" => [@address_format]}) do
|
29
|
-
|
27
|
+
compute.list_all_addresses.body
|
30
28
|
end
|
31
29
|
|
32
30
|
tests('#get_address(address_id)').formats({"floating_ip" => @address_format}) do
|
33
|
-
address_id
|
34
|
-
Fog::Compute[:openstack].get_address(address_id).body
|
31
|
+
compute.get_address(@address_id).body
|
35
32
|
end
|
36
33
|
|
37
|
-
|
34
|
+
compute.servers.get(@server_id).wait_for { ready? }
|
38
35
|
|
39
36
|
tests('#associate_address(server_id, ip_address)').succeeds do
|
40
|
-
address_ip
|
41
|
-
Fog::Compute[:openstack].associate_address(@server.body['server']['id'], address_ip).body
|
37
|
+
compute.associate_address(@server_id, @address_ip).body
|
42
38
|
end
|
43
39
|
|
44
40
|
tests('#disassociate_address(server_id, ip_address)').succeeds do
|
45
|
-
address_ip
|
46
|
-
|
41
|
+
compute.disassociate_address(@server_id, @address_ip).body
|
42
|
+
end
|
43
|
+
|
44
|
+
tests('#release_address(ip_address)').succeeds do
|
45
|
+
compute.release_address(@address_id)
|
47
46
|
end
|
47
|
+
|
48
48
|
end
|
49
|
+
|
50
|
+
compute.delete_server(@server_id)
|
51
|
+
|
49
52
|
end
|
@@ -6,9 +6,11 @@ Shindo.tests('Fog::Compute[:openstack] | flavor requests', ['openstack']) do
|
|
6
6
|
'disk' => Integer,
|
7
7
|
'ram' => Integer,
|
8
8
|
'links' => Array,
|
9
|
-
'swap' => String,
|
9
|
+
'swap' => Fog::Nullable::String,
|
10
10
|
'rxtx_factor' => Fog::Nullable::Float,
|
11
11
|
'OS-FLV-EXT-DATA:ephemeral' => Integer,
|
12
|
+
'os-flavor-access:is_public' => Fog::Nullable::Boolean,
|
13
|
+
'OS-FLV-DISABLED:disabled' => Fog::Nullable::Boolean,
|
12
14
|
'vcpus' => Integer
|
13
15
|
}
|
14
16
|
|
@@ -27,7 +29,7 @@ Shindo.tests('Fog::Compute[:openstack] | flavor requests', ['openstack']) do
|
|
27
29
|
end
|
28
30
|
|
29
31
|
tests('#create_flavor(attributes)').formats({'flavor' => @flavor_format}) do
|
30
|
-
attributes = {:flavor_id => '100', :name => 'shindo test flavor', :disk => 10, :ram => 10, :vcpus => 10, :swap => "0", :rxtx_factor =>
|
32
|
+
attributes = {:flavor_id => '100', :name => 'shindo test flavor', :disk => 10, :ram => 10, :vcpus => 10, :swap => "0", :rxtx_factor => 2.4, :ephemeral => 0, :is_public => false}
|
31
33
|
Fog::Compute[:openstack].create_flavor(attributes).body
|
32
34
|
end
|
33
35
|
|
@@ -0,0 +1,60 @@
|
|
1
|
+
Shindo.tests('Fog::Compute[:openstack] | limits requests', ['openstack']) do
|
2
|
+
@rate_limit_format = {
|
3
|
+
'regex' => String,
|
4
|
+
'uri' => String,
|
5
|
+
'limit' => Array
|
6
|
+
}
|
7
|
+
|
8
|
+
@rate_limit_usage_format = {
|
9
|
+
'next-available' => String,
|
10
|
+
'unit' => String,
|
11
|
+
'verb' => String,
|
12
|
+
'remaining' => Fixnum,
|
13
|
+
'value' => Fixnum
|
14
|
+
}
|
15
|
+
|
16
|
+
@absolute_limits_format = {
|
17
|
+
'maxServerMeta' => Fixnum,
|
18
|
+
'maxTotalInstances' => Fixnum,
|
19
|
+
'maxPersonality' => Fixnum,
|
20
|
+
'maxImageMeta' => Fixnum,
|
21
|
+
'maxPersonalitySize' => Fixnum,
|
22
|
+
'maxSecurityGroupRules' => Fixnum,
|
23
|
+
'maxTotalKeypairs' => Fixnum,
|
24
|
+
'maxSecurityGroups' => Fixnum,
|
25
|
+
'maxTotalCores' => Fixnum,
|
26
|
+
'maxTotalFloatingIps' => Fixnum,
|
27
|
+
'maxTotalRAMSize' => Fixnum,
|
28
|
+
'totalCoresUsed' => Fixnum,
|
29
|
+
'totalRAMUsed' => Fixnum,
|
30
|
+
'totalInstancesUsed' => Fixnum,
|
31
|
+
'totalSecurityGroupsUsed' => Fixnum,
|
32
|
+
'totalKeyPairsUsed' => Fixnum
|
33
|
+
}
|
34
|
+
|
35
|
+
@limits_format = {
|
36
|
+
'rate' => Array,
|
37
|
+
'absolute' => Hash
|
38
|
+
}
|
39
|
+
|
40
|
+
tests('success') do
|
41
|
+
tests('#get_limits') do
|
42
|
+
tests('format').formats(@limits_format) do
|
43
|
+
Fog::Compute[:openstack].get_limits.body['limits']
|
44
|
+
end
|
45
|
+
|
46
|
+
tests('rate limit format').formats(@rate_limit_format) do
|
47
|
+
Fog::Compute[:openstack].get_limits.body['limits']['rate'].first
|
48
|
+
end
|
49
|
+
|
50
|
+
tests('rate limit usage format').formats(@rate_limit_usage_format) do
|
51
|
+
Fog::Compute[:openstack].get_limits.body['limits']['rate'].first['limit'].first
|
52
|
+
end
|
53
|
+
|
54
|
+
tests('absolute limits format').formats(@absolute_limits_format) do
|
55
|
+
Fog::Compute[:openstack].get_limits.body['limits']['absolute']
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
@@ -2,14 +2,14 @@ Shindo.tests('Fog::Compute[:openstack] | quota requests', ['openstack']) do
|
|
2
2
|
|
3
3
|
@tenant_id = Fog::Compute[:openstack].list_tenants.body['tenants'].first['id']
|
4
4
|
@quota_set_format = {
|
5
|
+
'key_pairs' => Fixnum,
|
5
6
|
'metadata_items' => Fixnum,
|
6
7
|
'injected_file_content_bytes' => Fixnum,
|
8
|
+
'injected_file_path_bytes' => Fixnum,
|
7
9
|
'injected_files' => Fixnum,
|
8
|
-
'gigabytes' => Fixnum,
|
9
10
|
'ram' => Fixnum,
|
10
11
|
'floating_ips' => Fixnum,
|
11
12
|
'instances' => Fixnum,
|
12
|
-
'volumes' => Fixnum,
|
13
13
|
'cores' => Fixnum,
|
14
14
|
'security_groups' => Fog::Nullable::Integer,
|
15
15
|
'security_group_rules' => Fog::Nullable::Integer,
|
@@ -17,6 +17,7 @@ Shindo.tests('Fog::Compute[:openstack] | quota requests', ['openstack']) do
|
|
17
17
|
}
|
18
18
|
|
19
19
|
tests('success') do
|
20
|
+
|
20
21
|
tests('#get_quota_defaults').formats({ 'quota_set' => @quota_set_format }) do
|
21
22
|
Fog::Compute[:openstack].get_quota_defaults(@tenant_id).body
|
22
23
|
end
|
@@ -27,8 +28,9 @@ Shindo.tests('Fog::Compute[:openstack] | quota requests', ['openstack']) do
|
|
27
28
|
end
|
28
29
|
|
29
30
|
tests('#update_quota') do
|
31
|
+
|
30
32
|
new_values = @quota.merge({
|
31
|
-
'
|
33
|
+
'floating_ips' => @quota['floating_ips']/2,
|
32
34
|
'cores' => @quota['cores']/2
|
33
35
|
})
|
34
36
|
|
@@ -39,6 +41,17 @@ Shindo.tests('Fog::Compute[:openstack] | quota requests', ['openstack']) do
|
|
39
41
|
returns(new_values, 'returns new values') do
|
40
42
|
Fog::Compute[:openstack].get_quota(@tenant_id).body['quota_set']
|
41
43
|
end
|
44
|
+
|
45
|
+
# set quota back to old values
|
46
|
+
succeeds do
|
47
|
+
Fog::Compute[:openstack].update_quota(@tenant_id, @quota.clone)
|
48
|
+
end
|
49
|
+
|
50
|
+
# ensure old values are restored
|
51
|
+
returns(@quota, 'old values restored') do
|
52
|
+
Fog::Compute[:openstack].get_quota(@tenant_id).body['quota_set']
|
53
|
+
end
|
54
|
+
|
42
55
|
end
|
43
56
|
|
44
57
|
end
|
@@ -20,7 +20,7 @@ Shindo.tests('Fog::Compute[:openstack] | security group requests', ['openstack']
|
|
20
20
|
}
|
21
21
|
|
22
22
|
tests('success') do
|
23
|
-
tests('#create_security_group(name, description)').formats({"security_group" =>
|
23
|
+
tests('#create_security_group(name, description)').formats({"security_group" => @security_group_format}) do
|
24
24
|
Fog::Compute[:openstack].create_security_group('from_shindo_test', 'this is from the shindo test').body
|
25
25
|
end
|
26
26
|
|
@@ -11,4 +11,10 @@ Shindo.tests('Fog::Compute::RackspaceV2 | servers', ['rackspace']) do
|
|
11
11
|
collection_tests(service.servers, options, false) do
|
12
12
|
@instance.wait_for { ready? }
|
13
13
|
end
|
14
|
+
|
15
|
+
tests("#bootstrap").succeeds do
|
16
|
+
@server = service.servers.bootstrap(options)
|
17
|
+
end
|
18
|
+
@server.destroy
|
19
|
+
|
14
20
|
end
|
@@ -0,0 +1,172 @@
|
|
1
|
+
Shindo.tests('Fog::Rackspace::Storage | file', ['rackspace']) do
|
2
|
+
|
3
|
+
pending if Fog.mocking?
|
4
|
+
|
5
|
+
def object_meta_attributes
|
6
|
+
@instance.connection.head_object(@directory.key, @instance.key).headers.reject {|k, v| !(k =~ /X-Object-Meta-/)}
|
7
|
+
end
|
8
|
+
|
9
|
+
def clear_metadata
|
10
|
+
@instance.metadata.tap do |metadata|
|
11
|
+
metadata.each_pair {|k, v| metadata[k] = nil }
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
file_attributes = {
|
16
|
+
:key => 'fog_file_tests',
|
17
|
+
:body => lorem_file
|
18
|
+
}
|
19
|
+
|
20
|
+
directory_attributes = {
|
21
|
+
# Add a random suffix to prevent collision
|
22
|
+
:key => "fogfilestests-#{rand(65536)}"
|
23
|
+
}
|
24
|
+
|
25
|
+
@directory = Fog::Storage[:rackspace].
|
26
|
+
directories.
|
27
|
+
create(directory_attributes)
|
28
|
+
|
29
|
+
model_tests(@directory.files, file_attributes, Fog.mocking?) do
|
30
|
+
|
31
|
+
tests("#metadata should load empty metadata").returns({}) do
|
32
|
+
@instance.metadata
|
33
|
+
end
|
34
|
+
|
35
|
+
tests('#save') do
|
36
|
+
|
37
|
+
tests('#metadata') do
|
38
|
+
|
39
|
+
before do
|
40
|
+
@instance.metadata[:foo] = 'bar'
|
41
|
+
@instance.save
|
42
|
+
end
|
43
|
+
|
44
|
+
after do
|
45
|
+
clear_metadata
|
46
|
+
@instance.save
|
47
|
+
end
|
48
|
+
|
49
|
+
tests("should update metadata").returns('bar') do
|
50
|
+
object_meta_attributes['X-Object-Meta-Foo']
|
51
|
+
end
|
52
|
+
|
53
|
+
tests('should cache metadata').returns('bar') do
|
54
|
+
@instance.metadata[:foo]
|
55
|
+
end
|
56
|
+
|
57
|
+
tests('should remove empty metadata').returns({}) do
|
58
|
+
@instance.metadata[:foo] = nil
|
59
|
+
@instance.save
|
60
|
+
object_meta_attributes
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
64
|
+
|
65
|
+
tests('#metadata keys') do
|
66
|
+
|
67
|
+
after do
|
68
|
+
clear_metadata
|
69
|
+
@instance.save
|
70
|
+
end
|
71
|
+
|
72
|
+
@instance.metadata[:foo_bar] = 'baz'
|
73
|
+
tests("should support compound key names").returns('baz') do
|
74
|
+
@instance.save
|
75
|
+
object_meta_attributes['X-Object-Meta-Foo-Bar']
|
76
|
+
end
|
77
|
+
|
78
|
+
@instance.metadata['foo'] = 'bar'
|
79
|
+
tests("should support string keys").returns('bar') do
|
80
|
+
@instance.save
|
81
|
+
object_meta_attributes['X-Object-Meta-Foo']
|
82
|
+
end
|
83
|
+
|
84
|
+
@instance.metadata['foo_bar'] = 'baz'
|
85
|
+
tests("should support compound string key names").returns('baz') do
|
86
|
+
@instance.save
|
87
|
+
object_meta_attributes['X-Object-Meta-Foo-Bar']
|
88
|
+
end
|
89
|
+
|
90
|
+
@instance.metadata['foo-bar'] = 'baz'
|
91
|
+
tests("should support hyphenated keys").returns('baz') do
|
92
|
+
@instance.save
|
93
|
+
object_meta_attributes['X-Object-Meta-Foo-Bar']
|
94
|
+
end
|
95
|
+
|
96
|
+
@instance.metadata['foo-bar'] = 'baz'
|
97
|
+
@instance.metadata[:'foo_bar'] = 'bref'
|
98
|
+
tests("should only support one value per metadata key").returns('bref') do
|
99
|
+
@instance.save
|
100
|
+
object_meta_attributes['X-Object-Meta-Foo-Bar']
|
101
|
+
end
|
102
|
+
|
103
|
+
end
|
104
|
+
|
105
|
+
end
|
106
|
+
|
107
|
+
tests("#access_control_allow_origin") do
|
108
|
+
|
109
|
+
tests("#access_control_allow_origin should default to nil").returns(nil) do
|
110
|
+
@instance.access_control_allow_origin
|
111
|
+
end
|
112
|
+
|
113
|
+
@instance.access_control_allow_origin = 'http://example.com'
|
114
|
+
@instance.save
|
115
|
+
tests("#access_control_allow_origin should return access control attribute").returns('http://example.com') do
|
116
|
+
@instance.access_control_allow_origin
|
117
|
+
end
|
118
|
+
|
119
|
+
@instance.access_control_allow_origin = 'foo'
|
120
|
+
@instance.save
|
121
|
+
tests("#access_control_allow_origin= should update access_control_allow_origin").returns('bar') do
|
122
|
+
@instance.access_control_allow_origin = 'bar'
|
123
|
+
@instance.save
|
124
|
+
@instance.access_control_allow_origin
|
125
|
+
end
|
126
|
+
|
127
|
+
tests("#access_control_allow_origin= should not blow up on nil") do
|
128
|
+
@instance.access_control_allow_origin = nil
|
129
|
+
@instance.save
|
130
|
+
end
|
131
|
+
|
132
|
+
end
|
133
|
+
|
134
|
+
end
|
135
|
+
|
136
|
+
|
137
|
+
model_tests(@directory.files, file_attributes, Fog.mocking?) do
|
138
|
+
|
139
|
+
tests("#origin") do
|
140
|
+
|
141
|
+
tests("#origin should default to nil").returns(nil) do
|
142
|
+
@instance.save
|
143
|
+
@instance.origin
|
144
|
+
end
|
145
|
+
|
146
|
+
@instance.origin = 'http://example.com'
|
147
|
+
@instance.save
|
148
|
+
tests("#origin should return access control attributes").returns('http://example.com') do
|
149
|
+
@instance.origin
|
150
|
+
end
|
151
|
+
@instance.attributes.delete('Origin')
|
152
|
+
|
153
|
+
@instance.origin = 'foo'
|
154
|
+
@instance.save
|
155
|
+
tests("#origin= should update origin").returns('bar') do
|
156
|
+
@instance.origin = 'bar'
|
157
|
+
@instance.save
|
158
|
+
@instance.origin
|
159
|
+
end
|
160
|
+
|
161
|
+
tests("#origin= should not blow up on nil") do
|
162
|
+
@instance.origin = nil
|
163
|
+
@instance.save
|
164
|
+
end
|
165
|
+
|
166
|
+
end
|
167
|
+
|
168
|
+
end
|
169
|
+
|
170
|
+
@directory.destroy
|
171
|
+
|
172
|
+
end
|