gapinc-fog 1.12.1.2.1 → 1.14.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/.travis.yml +16 -1
- data/Gemfile.1.8.7 +10 -0
- data/README.md +23 -2
- data/Rakefile +2 -2
- data/changelog.txt +276 -0
- data/fog.gemspec +4 -6
- data/lib/fog/atmos/models/storage/file.rb +2 -2
- data/lib/fog/aws/elb.rb +3 -0
- data/lib/fog/aws/elb/policy_types.rb +441 -430
- data/lib/fog/aws/models/auto_scaling/activities.rb +11 -3
- data/lib/fog/aws/models/auto_scaling/groups.rb +6 -3
- data/lib/fog/aws/models/auto_scaling/policies.rb +7 -3
- data/lib/fog/aws/models/compute/volume.rb +1 -1
- data/lib/fog/aws/models/elb/backend_server_description.rb +11 -0
- data/lib/fog/aws/models/elb/backend_server_descriptions.rb +22 -0
- data/lib/fog/aws/models/elb/load_balancer.rb +15 -2
- data/lib/fog/aws/models/elb/policies.rb +28 -13
- data/lib/fog/aws/models/elb/policy.rb +20 -10
- data/lib/fog/aws/models/rds/instance_option.rb +21 -0
- data/lib/fog/aws/models/rds/instance_options.rb +30 -0
- data/lib/fog/aws/models/rds/log_file.rb +26 -0
- data/lib/fog/aws/models/rds/log_files.rb +50 -0
- data/lib/fog/aws/models/rds/server.rb +1 -0
- data/lib/fog/aws/models/rds/snapshots.rb +20 -13
- data/lib/fog/aws/parsers/auto_scaling/describe_policies.rb +5 -5
- data/lib/fog/aws/parsers/elb/describe_load_balancers.rb +44 -13
- data/lib/fog/aws/parsers/rds/db_parser.rb +28 -6
- data/lib/fog/aws/parsers/rds/describe_db_log_files.rb +44 -0
- data/lib/fog/aws/parsers/rds/describe_orderable_db_instance_options.rb +47 -0
- data/lib/fog/aws/parsers/rds/download_db_logfile_portion.rb +26 -0
- data/lib/fog/aws/parsers/storage/complete_multipart_upload.rb +1 -1
- data/lib/fog/aws/parsers/sts/assume_role.rb +30 -0
- data/lib/fog/aws/rds.rb +13 -0
- data/lib/fog/aws/requests/auto_scaling/describe_auto_scaling_groups.rb +9 -1
- data/lib/fog/aws/requests/auto_scaling/describe_policies.rb +15 -1
- data/lib/fog/aws/requests/elb/create_app_cookie_stickiness_policy.rb +0 -2
- data/lib/fog/aws/requests/elb/create_lb_cookie_stickiness_policy.rb +0 -2
- data/lib/fog/aws/requests/elb/create_load_balancer.rb +7 -0
- data/lib/fog/aws/requests/elb/create_load_balancer_policy.rb +11 -8
- data/lib/fog/aws/requests/elb/describe_load_balancers.rb +21 -1
- data/lib/fog/aws/requests/elb/set_load_balancer_policies_for_backend_server.rb +67 -0
- data/lib/fog/aws/requests/rds/describe_db_log_files.rb +67 -0
- data/lib/fog/aws/requests/rds/describe_orderable_db_instance_options.rb +76 -0
- data/lib/fog/aws/requests/rds/download_db_logfile_portion.rb +63 -0
- data/lib/fog/aws/requests/ses/send_raw_email.rb +1 -1
- data/lib/fog/aws/requests/ses/verify_domain_identity.rb +1 -1
- data/lib/fog/aws/requests/storage/complete_multipart_upload.rb +6 -2
- data/lib/fog/aws/requests/storage/get_object.rb +1 -1
- data/lib/fog/aws/requests/sts/assume_role.rb +46 -0
- data/lib/fog/aws/ses.rb +25 -9
- data/lib/fog/aws/sts.rb +22 -6
- data/lib/fog/bin/openstack.rb +5 -0
- data/lib/fog/bin/rackspace.rb +4 -0
- data/lib/fog/brightbox/models/compute/collaboration.rb +10 -2
- data/lib/fog/brightbox/models/compute/collaborations.rb +26 -2
- data/lib/fog/brightbox/models/compute/user_collaboration.rb +16 -1
- data/lib/fog/brightbox/models/compute/user_collaborations.rb +10 -2
- data/lib/fog/cloudstack/models/compute/servers.rb +1 -1
- data/lib/fog/compute/models/server.rb +16 -10
- data/lib/fog/core.rb +1 -0
- data/lib/fog/core/collection.rb +18 -0
- data/lib/fog/core/mock.rb +16 -0
- data/lib/fog/digitalocean/compute.rb +32 -3
- data/lib/fog/digitalocean/models/compute/server.rb +43 -14
- data/lib/fog/digitalocean/models/compute/servers.rb +27 -4
- data/lib/fog/digitalocean/models/compute/ssh_keys.rb +2 -3
- data/lib/fog/digitalocean/requests/compute/create_server.rb +9 -7
- data/lib/fog/digitalocean/requests/compute/destroy_server.rb +3 -0
- data/lib/fog/digitalocean/requests/compute/list_images.rb +6 -6
- data/lib/fog/dnsimple/dns.rb +4 -1
- data/lib/fog/dnsimple/models/dns/record.rb +3 -3
- data/lib/fog/dnsimple/requests/dns/create_domain.rb +36 -0
- data/lib/fog/dnsimple/requests/dns/create_record.rb +27 -0
- data/lib/fog/dnsimple/requests/dns/delete_domain.rb +12 -0
- data/lib/fog/dnsimple/requests/dns/delete_record.rb +12 -0
- data/lib/fog/dnsimple/requests/dns/get_domain.rb +12 -0
- data/lib/fog/dnsimple/requests/dns/get_record.rb +24 -0
- data/lib/fog/dnsimple/requests/dns/list_domains.rb +12 -0
- data/lib/fog/dnsimple/requests/dns/list_records.rb +12 -0
- data/lib/fog/dnsimple/requests/dns/update_record.rb +20 -0
- data/lib/fog/glesys/models/compute/server.rb +6 -0
- data/lib/fog/google/README.md +28 -0
- data/lib/fog/google/Rakefile +17 -0
- data/lib/fog/google/examples/bootstrap.rb +9 -0
- data/lib/fog/google/examples/create.rb +37 -0
- data/lib/fog/google/examples/eric-fail.rb +19 -0
- data/lib/fog/google/examples/get_list_images.rb +27 -0
- data/lib/fog/google/examples/launch_micro_instance.rb +21 -0
- data/lib/fog/google/examples/metadata.rb +18 -0
- data/lib/fog/google/models/compute/disks.rb +16 -6
- data/lib/fog/google/models/compute/flavors.rb +2 -1
- data/lib/fog/google/models/compute/image.rb +16 -17
- data/lib/fog/google/models/compute/images.rb +38 -5
- data/lib/fog/google/models/compute/server.rb +2 -2
- data/lib/fog/google/models/compute/servers.rb +8 -5
- data/lib/fog/google/models/storage/file.rb +7 -1
- data/lib/fog/google/parsers/storage/access_control_list.rb +2 -2
- data/lib/fog/google/requests/compute/insert_server.rb +1 -2
- data/lib/fog/google/requests/compute/list_images.rb +3 -2
- data/lib/fog/google/requests/storage/get_object.rb +1 -1
- data/lib/fog/hp/requests/storage/get_object.rb +1 -1
- data/lib/fog/ibm/requests/compute/create_instance.rb +20 -15
- data/lib/fog/internet_archive/requests/storage/get_object.rb +1 -1
- data/lib/fog/metering.rb +25 -0
- data/lib/fog/openstack.rb +2 -1
- data/lib/fog/openstack/metering.rb +215 -0
- data/lib/fog/openstack/models/compute/server.rb +5 -2
- data/lib/fog/openstack/models/metering/resource.rb +24 -0
- data/lib/fog/openstack/models/metering/resources.rb +25 -0
- data/lib/fog/openstack/models/volume/volume.rb +3 -1
- data/lib/fog/openstack/models/volume/volumes.rb +2 -1
- data/lib/fog/openstack/network.rb +24 -1
- data/lib/fog/openstack/requests/compute/create_server.rb +19 -1
- data/lib/fog/openstack/requests/compute/get_host_details.rb +2 -1
- data/lib/fog/openstack/requests/metering/get_resource.rb +32 -0
- data/lib/fog/openstack/requests/metering/get_samples.rb +55 -0
- data/lib/fog/openstack/requests/metering/get_statistics.rb +56 -0
- data/lib/fog/openstack/requests/metering/list_meters.rb +50 -0
- data/lib/fog/openstack/requests/metering/list_resources.rb +32 -0
- data/lib/fog/openstack/requests/network/delete_quota.rb +26 -0
- data/lib/fog/openstack/requests/network/get_quota.rb +31 -0
- data/lib/fog/openstack/requests/network/get_quotas.rb +31 -0
- data/lib/fog/openstack/requests/network/update_quota.rb +33 -0
- data/lib/fog/openstack/requests/storage/put_object.rb +8 -5
- data/lib/fog/openstack/requests/volume/create_volume.rb +4 -2
- data/lib/fog/rackspace.rb +24 -4
- data/lib/fog/rackspace/block_storage.rb +8 -4
- data/lib/fog/rackspace/cdn.rb +21 -4
- data/lib/fog/rackspace/compute_v2.rb +15 -4
- data/lib/fog/rackspace/errors.rb +12 -5
- data/lib/fog/rackspace/mock_data.rb +18 -7
- data/lib/fog/rackspace/models/compute_v2/key_pair.rb +56 -0
- data/lib/fog/rackspace/models/compute_v2/key_pairs.rb +43 -0
- data/lib/fog/rackspace/models/compute_v2/server.rb +7 -2
- data/lib/fog/rackspace/models/compute_v2/servers.rb +2 -1
- data/lib/fog/rackspace/models/identity/service_catalog.rb +34 -16
- data/lib/fog/rackspace/models/monitoring/agent_token.rb +40 -0
- data/lib/fog/rackspace/models/monitoring/agent_tokens.rb +28 -0
- data/lib/fog/rackspace/models/monitoring/alarm.rb +51 -0
- data/lib/fog/rackspace/models/monitoring/alarm_example.rb +26 -0
- data/lib/fog/rackspace/models/monitoring/alarm_examples.rb +31 -0
- data/lib/fog/rackspace/models/monitoring/alarms.rb +40 -0
- data/lib/fog/rackspace/models/monitoring/base.rb +36 -0
- data/lib/fog/rackspace/models/monitoring/check.rb +75 -0
- data/lib/fog/rackspace/models/monitoring/check_type.rb +15 -0
- data/lib/fog/rackspace/models/monitoring/check_types.rb +23 -0
- data/lib/fog/rackspace/models/monitoring/checks.rb +40 -0
- data/lib/fog/rackspace/models/monitoring/data_point.rb +18 -0
- data/lib/fog/rackspace/models/monitoring/data_points.rb +49 -0
- data/lib/fog/rackspace/models/monitoring/entities.rb +48 -0
- data/lib/fog/rackspace/models/monitoring/entity.rb +64 -0
- data/lib/fog/rackspace/models/monitoring/metric.rb +25 -0
- data/lib/fog/rackspace/models/monitoring/metrics.rb +27 -0
- data/lib/fog/rackspace/monitoring.rb +149 -0
- data/lib/fog/rackspace/requests/compute_v2/create_keypair.rb +53 -0
- data/lib/fog/rackspace/requests/compute_v2/create_server.rb +10 -8
- data/lib/fog/rackspace/requests/compute_v2/delete_keypair.rb +36 -0
- data/lib/fog/rackspace/requests/compute_v2/get_keypair.rb +41 -0
- data/lib/fog/rackspace/requests/compute_v2/list_keypairs.rb +37 -0
- data/lib/fog/rackspace/requests/monitoring/create_agent_token.rb +19 -0
- data/lib/fog/rackspace/requests/monitoring/create_alarm.rb +19 -0
- data/lib/fog/rackspace/requests/monitoring/create_check.rb +19 -0
- data/lib/fog/rackspace/requests/monitoring/create_entity.rb +19 -0
- data/lib/fog/rackspace/requests/monitoring/delete_agent_token.rb +17 -0
- data/lib/fog/rackspace/requests/monitoring/delete_alarm.rb +18 -0
- data/lib/fog/rackspace/requests/monitoring/delete_check.rb +17 -0
- data/lib/fog/rackspace/requests/monitoring/delete_entity.rb +17 -0
- data/lib/fog/rackspace/requests/monitoring/evaluate_alarm_example.rb +21 -0
- data/lib/fog/rackspace/requests/monitoring/get_agent_token.rb +19 -0
- data/lib/fog/rackspace/requests/monitoring/get_alarm.rb +19 -0
- data/lib/fog/rackspace/requests/monitoring/get_alarm_example.rb +19 -0
- data/lib/fog/rackspace/requests/monitoring/get_check.rb +19 -0
- data/lib/fog/rackspace/requests/monitoring/get_entity.rb +19 -0
- data/lib/fog/rackspace/requests/monitoring/list_agent_tokens.rb +19 -0
- data/lib/fog/rackspace/requests/monitoring/list_alarm_examples.rb +18 -0
- data/lib/fog/rackspace/requests/monitoring/list_alarms.rb +18 -0
- data/lib/fog/rackspace/requests/monitoring/list_check_types.rb +17 -0
- data/lib/fog/rackspace/requests/monitoring/list_checks.rb +18 -0
- data/lib/fog/rackspace/requests/monitoring/list_data_points.rb +18 -0
- data/lib/fog/rackspace/requests/monitoring/list_entities.rb +19 -0
- data/lib/fog/rackspace/requests/monitoring/list_metrics.rb +18 -0
- data/lib/fog/rackspace/requests/monitoring/list_notification_plans.rb +18 -0
- data/lib/fog/rackspace/requests/monitoring/list_overview.rb +19 -0
- data/lib/fog/rackspace/requests/monitoring/update_alarm.rb +18 -0
- data/lib/fog/rackspace/requests/monitoring/update_check.rb +18 -0
- data/lib/fog/rackspace/requests/monitoring/update_entity.rb +18 -0
- data/lib/fog/rackspace/requests/storage/delete_multiple_objects.rb +75 -0
- data/lib/fog/rackspace/requests/storage/delete_static_large_object.rb +50 -0
- data/lib/fog/rackspace/requests/storage/put_dynamic_obj_manifest.rb +44 -0
- data/lib/fog/rackspace/requests/storage/put_object.rb +1 -1
- data/lib/fog/rackspace/requests/storage/put_object_manifest.rb +3 -30
- data/lib/fog/rackspace/requests/storage/put_static_obj_manifest.rb +60 -0
- data/lib/fog/rackspace/storage.rb +24 -16
- data/lib/fog/riakcs/provisioning.rb +2 -1
- data/lib/fog/riakcs/usage.rb +2 -1
- data/lib/fog/vcloud/compute.rb +1 -1
- data/lib/fog/vcloud/requests/compute/configure_vm.rb +2 -2
- data/lib/fog/version.rb +1 -1
- data/lib/fog/vsphere/compute.rb +131 -0
- data/lib/fog/vsphere/models/compute/server.rb +5 -1
- data/lib/fog/vsphere/requests/compute/get_datacenter.rb +3 -1
- data/lib/fog/vsphere/requests/compute/get_virtual_machine.rb +20 -38
- data/lib/fog/vsphere/requests/compute/list_datacenters.rb +1 -0
- data/lib/fog/vsphere/requests/compute/list_virtual_machines.rb +8 -114
- data/lib/fog/vsphere/requests/compute/vm_clone.rb +18 -9
- data/lib/fog/vsphere/requests/compute/vm_power_off.rb +2 -0
- data/lib/fog/xenserver/compute.rb +14 -12
- data/lib/fog/xenserver/models/compute/console.rb +27 -0
- data/lib/fog/xenserver/models/compute/consoles.rb +25 -0
- data/lib/fog/xenserver/models/compute/server.rb +6 -2
- data/lib/fog/xenserver/models/compute/servers.rb +5 -0
- data/lib/fog/xenserver/requests/compute/create_server.rb +4 -0
- data/lib/fog/xml/sax_parser_connection.rb +3 -0
- data/lib/tasks/changelog_task.rb +2 -0
- data/tests/aws/models/compute/volume_tests.rb +1 -1
- data/tests/aws/models/elb/model_tests.rb +28 -1
- data/tests/aws/models/rds/instance_option_tests.rb +14 -0
- data/tests/aws/parsers/elb/describe_load_balancers.rb +65 -0
- data/tests/aws/requests/elb/helper.rb +2 -1
- data/tests/aws/requests/elb/listener_tests.rb +1 -1
- data/tests/aws/requests/elb/load_balancer_tests.rb +5 -1
- data/tests/aws/requests/elb/policy_tests.rb +85 -6
- data/tests/aws/requests/iam/helper.rb +4 -1
- data/tests/aws/requests/iam/server_certificate_tests.rb +2 -2
- data/tests/aws/requests/rds/helper.rb +35 -0
- data/tests/aws/requests/rds/instance_option_tests.rb +21 -0
- data/tests/aws/requests/rds/log_file_tests.rb +19 -0
- data/tests/aws/requests/sts/assume_role_tests.rb +19 -0
- data/tests/core/mocking_tests.rb +15 -0
- data/tests/digitalocean/helper.rb +23 -16
- data/tests/digitalocean/models/compute/flavor_tests.rb +2 -2
- data/tests/digitalocean/models/compute/image_tests.rb +2 -2
- data/tests/digitalocean/models/compute/region_tests.rb +2 -2
- data/tests/digitalocean/models/compute/server_tests.rb +11 -3
- data/tests/digitalocean/models/compute/servers_tests.rb +14 -28
- data/tests/digitalocean/models/compute/ssh_key_tests.rb +7 -3
- data/tests/digitalocean/models/compute/ssh_keys_tests.rb +5 -1
- data/tests/digitalocean/requests/compute/create_server_tests.rb +3 -6
- data/tests/digitalocean/requests/compute/destroy_server_tests.rb +1 -2
- data/tests/digitalocean/requests/compute/get_server_details_tests.rb +1 -1
- data/tests/digitalocean/requests/compute/get_ssh_key_tests.rb +4 -1
- data/tests/digitalocean/requests/compute/list_ssh_keys_tests.rb +5 -2
- data/tests/dnsimple/requests/dns/dns_tests.rb +30 -26
- data/tests/helper.rb +2 -2
- data/tests/helpers/collection_helper.rb +4 -4
- data/tests/helpers/mock_helper.rb +2 -0
- data/tests/openstack/requests/metering/meter_tests.rb +52 -0
- data/tests/openstack/requests/metering/resource_tests.rb +19 -0
- data/tests/openstack/requests/network/quota_tests.rb +65 -0
- data/tests/openstack/requests/storage/object_tests.rb +27 -2
- data/tests/rackspace/block_storage_tests.rb +2 -1
- data/tests/rackspace/cdn_tests.rb +9 -0
- data/tests/rackspace/compute_v2_tests.rb +16 -15
- data/tests/rackspace/databases_tests.rb +1 -1
- data/tests/rackspace/load_balancer_tests.rb +1 -1
- data/tests/rackspace/models/compute_v2/keypairs_tests.rb +47 -0
- data/tests/rackspace/models/identity/service_catalog_tests.rb +54 -29
- data/tests/rackspace/models/monitoring/agent_token_tests.rb +9 -0
- data/tests/rackspace/models/monitoring/agent_tokens_tests.rb +9 -0
- data/tests/rackspace/models/monitoring/alarm_example_tests.rb +18 -0
- data/tests/rackspace/models/monitoring/alarm_examples_tests.rb +19 -0
- data/tests/rackspace/models/monitoring/alarm_tests.rb +56 -0
- data/tests/rackspace/models/monitoring/alarms_tests.rb +25 -0
- data/tests/rackspace/models/monitoring/check_tests.rb +50 -0
- data/tests/rackspace/models/monitoring/check_types_tests.rb +14 -0
- data/tests/rackspace/models/monitoring/checks_tests.rb +16 -0
- data/tests/rackspace/models/monitoring/data_points_tests.rb +19 -0
- data/tests/rackspace/models/monitoring/entities_tests.rb +14 -0
- data/tests/rackspace/models/monitoring/entity_tests.rb +26 -0
- data/tests/rackspace/models/monitoring/metric_tests.rb +19 -0
- data/tests/rackspace/models/monitoring/metrics_tests.rb +17 -0
- data/tests/rackspace/monitoring_tests.rb +72 -0
- data/tests/rackspace/requests/compute_v2/keypair_tests.rb +55 -0
- data/tests/rackspace/requests/monitoring/agent_tests.rb +34 -0
- data/tests/rackspace/requests/monitoring/alarm_example_tests.rb +30 -0
- data/tests/rackspace/requests/monitoring/alarm_tests.rb +56 -0
- data/tests/rackspace/requests/monitoring/check_tests.rb +40 -0
- data/tests/rackspace/requests/monitoring/entity_tests.rb +37 -0
- data/tests/rackspace/requests/monitoring/helper.rb +78 -0
- data/tests/rackspace/requests/monitoring/list_tests.rb +60 -0
- data/tests/rackspace/requests/storage/large_object_tests.rb +303 -59
- data/tests/rackspace/requests/storage/object_tests.rb +73 -18
- data/tests/vsphere/models/compute/server_tests.rb +1 -1
- data/tests/vsphere/requests/compute/list_virtual_machines_tests.rb +2 -2
- data/tests/vsphere/requests/compute/vm_clone_tests.rb +14 -8
- data/tests/xenserver/compute_tests.rb +5 -5
- data/tests/xenserver/models/compute/console_test.rb +35 -0
- data/tests/xenserver/models/compute/consoles_test.rb +19 -0
- data/tests/xenserver/models/compute/server_tests.rb +25 -18
- data/tests/xenserver/models/compute/servers_tests.rb +1 -0
- metadata +177 -14
@@ -0,0 +1,19 @@
|
|
1
|
+
Shindo.tests('AWS::RDS | log file requests', %w[aws rds]) do
|
2
|
+
tests('success') do
|
3
|
+
pending if Fog.mocking?
|
4
|
+
|
5
|
+
suffix = rand(65536).to_s(16)
|
6
|
+
@db_instance_id = "fog-test-#{suffix}"
|
7
|
+
|
8
|
+
tests('#describe_db_log_files').formats(AWS::RDS::Formats::DESCRIBE_DB_LOG_FILES) do
|
9
|
+
result = Fog::AWS[:rds].describe_db_log_files(@db_instance_id).body['DescribeDBLogFilesResult']
|
10
|
+
returns(true) { result['DBLogFiles'].size > 0 }
|
11
|
+
result
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
|
16
|
+
tests('failures') do
|
17
|
+
raises(Fog::AWS::RDS::NotFound) {Fog::AWS[:rds].describe_db_log_files('doesntexist')}
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
Shindo.tests('AWS::STS | assume role', ['aws']) do
|
2
|
+
|
3
|
+
@policy = {"Statement" => [{"Effect" => "Allow", "Action" => "*", "Resource" => "*"}]}
|
4
|
+
|
5
|
+
@response_format = {
|
6
|
+
'SessionToken' => String,
|
7
|
+
'SecretAccessKey' => String,
|
8
|
+
'Expiration' => String,
|
9
|
+
'AccessKeyId' => String,
|
10
|
+
'Arn' => String,
|
11
|
+
'RequestId' => String
|
12
|
+
}
|
13
|
+
|
14
|
+
tests("#assume_role('rolename', 'assumed_role_session', 'external_id', #{@policy.inspect}, 900)").formats(@response_format) do
|
15
|
+
pending if Fog.mocking?
|
16
|
+
Fog::AWS[:sts].assume_role("rolename","assumed_role_session","external_id", @policy, 900).body
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
data/tests/core/mocking_tests.rb
CHANGED
@@ -52,6 +52,21 @@ Shindo.tests('Fog mocking', 'core') do
|
|
52
52
|
end
|
53
53
|
end
|
54
54
|
|
55
|
+
tests('Fog::Mock.random_ip') do
|
56
|
+
tests('Fog::Mock.random_ip').returns(true, "default to ipv4") do
|
57
|
+
IPAddr.new(Fog::Mock.random_ip).ipv4?
|
58
|
+
end
|
59
|
+
tests('Fog::Mock.random_ip').returns(true, "explicit ipv4") do
|
60
|
+
IPAddr.new(Fog::Mock.random_ip({:version => :v4})).ipv4?
|
61
|
+
end
|
62
|
+
tests('Fog::Mock.random_ip({:version => :v6})').returns(true, "changes to ipv6") do
|
63
|
+
IPAddr.new(Fog::Mock.random_ip({:version => :v6})).ipv6?
|
64
|
+
end
|
65
|
+
tests('Fog::Mock.random_ip({:version => :v5})').raises(ArgumentError) do
|
66
|
+
IPAddr.new(Fog::Mock.random_ip({:version => :v5})).ipv4?
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
55
70
|
tests('Fog::Mock.not_implemented').raises(Fog::Errors::MockNotImplemented) do
|
56
71
|
Fog::Mock.not_implemented
|
57
72
|
end
|
@@ -4,36 +4,43 @@ def service
|
|
4
4
|
Fog::Compute[:digitalocean]
|
5
5
|
end
|
6
6
|
|
7
|
+
def fog_test_server_attributes
|
8
|
+
image = service.images.find { |i| i.name == 'Ubuntu 12.04 x64' }
|
9
|
+
region = service.regions.find { |r| r.name == 'New York 1' }
|
10
|
+
flavor = service.flavors.find { |r| r.name == '512MB' }
|
11
|
+
|
12
|
+
{
|
13
|
+
:image_id => image.id,
|
14
|
+
:region_id => region.id,
|
15
|
+
:flavor_id => flavor.id
|
16
|
+
}
|
17
|
+
end
|
18
|
+
|
19
|
+
def fog_server_name
|
20
|
+
"fog-server-test"
|
21
|
+
end
|
22
|
+
|
7
23
|
# Create a long lived server for the tests
|
8
24
|
def fog_test_server
|
9
|
-
server = service.servers.find { |s| s.name ==
|
25
|
+
server = service.servers.find { |s| s.name == fog_server_name }
|
10
26
|
unless server
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
server
|
15
|
-
:image_id => image.id,
|
16
|
-
:region_id => region.id,
|
17
|
-
:flavor_id => flavor.id
|
18
|
-
# Wait for the server to come up
|
19
|
-
begin
|
20
|
-
server.wait_for(120) { server.reload rescue nil; server.ready? }
|
21
|
-
rescue Fog::Errors::TimeoutError
|
22
|
-
# Server bootstrap took more than 120 secs!
|
23
|
-
end
|
27
|
+
server = service.servers.create({
|
28
|
+
:name => fog_server_name
|
29
|
+
}.merge(fog_test_server_attributes))
|
30
|
+
server.wait_for { ready? }
|
24
31
|
end
|
25
32
|
server
|
26
33
|
end
|
27
34
|
|
28
35
|
# Destroy the long lived server
|
29
36
|
def fog_test_server_destroy
|
30
|
-
server = service.servers.find { |s| s.name ==
|
37
|
+
server = service.servers.find { |s| s.name == fog_server_name }
|
31
38
|
server.destroy if server
|
32
39
|
end
|
33
40
|
|
34
41
|
at_exit do
|
35
42
|
unless Fog.mocking? || Fog.credentials[:digitalocean_api_key].nil?
|
36
|
-
server = service.servers.find { |s| s.name ==
|
43
|
+
server = service.servers.find { |s| s.name == fog_server_name }
|
37
44
|
if server
|
38
45
|
server.wait_for(120) do
|
39
46
|
reload rescue nil; ready?
|
@@ -2,14 +2,14 @@ Shindo.tests("Fog::Compute[:digitalocean] | flavor model", ['digitalocean', 'com
|
|
2
2
|
|
3
3
|
service = Fog::Compute[:digitalocean]
|
4
4
|
flavor = service.flavors.first
|
5
|
-
|
5
|
+
|
6
6
|
tests('The flavor model should') do
|
7
7
|
tests('have the action') do
|
8
8
|
test('reload') { flavor.respond_to? 'reload' }
|
9
9
|
end
|
10
10
|
tests('have attributes') do
|
11
11
|
model_attribute_hash = flavor.attributes
|
12
|
-
attributes = [
|
12
|
+
attributes = [
|
13
13
|
:id,
|
14
14
|
:name,
|
15
15
|
]
|
@@ -2,14 +2,14 @@ Shindo.tests("Fog::Compute[:digitalocean] | image model", ['digitalocean', 'comp
|
|
2
2
|
|
3
3
|
service = Fog::Compute[:digitalocean]
|
4
4
|
image = service.images.first
|
5
|
-
|
5
|
+
|
6
6
|
tests('The image model should') do
|
7
7
|
tests('have the action') do
|
8
8
|
test('reload') { image.respond_to? 'reload' }
|
9
9
|
end
|
10
10
|
tests('have attributes') do
|
11
11
|
model_attribute_hash = image.attributes
|
12
|
-
attributes = [
|
12
|
+
attributes = [
|
13
13
|
:id,
|
14
14
|
:name,
|
15
15
|
:distribution
|
@@ -2,14 +2,14 @@ Shindo.tests("Fog::Compute[:digitalocean] | region model", ['digitalocean', 'com
|
|
2
2
|
|
3
3
|
service = Fog::Compute[:digitalocean]
|
4
4
|
region = service.regions.first
|
5
|
-
|
5
|
+
|
6
6
|
tests('The region model should') do
|
7
7
|
tests('have the action') do
|
8
8
|
test('reload') { region.respond_to? 'reload' }
|
9
9
|
end
|
10
10
|
tests('have attributes') do
|
11
11
|
model_attribute_hash = region.attributes
|
12
|
-
attributes = [
|
12
|
+
attributes = [
|
13
13
|
:id,
|
14
14
|
:name,
|
15
15
|
]
|
@@ -16,6 +16,7 @@ Shindo.tests("Fog::Compute[:digitalocean] | server model", ['digitalocean', 'com
|
|
16
16
|
test(action) { server.respond_to? action }
|
17
17
|
end
|
18
18
|
end
|
19
|
+
|
19
20
|
tests('have attributes') do
|
20
21
|
model_attribute_hash = server.attributes
|
21
22
|
attributes = [
|
@@ -23,10 +24,11 @@ Shindo.tests("Fog::Compute[:digitalocean] | server model", ['digitalocean', 'com
|
|
23
24
|
:name,
|
24
25
|
:state,
|
25
26
|
:backups_active,
|
26
|
-
:
|
27
|
+
:public_ip_address,
|
27
28
|
:flavor_id,
|
28
29
|
:region_id,
|
29
|
-
:image_id
|
30
|
+
:image_id,
|
31
|
+
:ssh_keys=
|
30
32
|
]
|
31
33
|
tests("The server model should respond to") do
|
32
34
|
attributes.each do |attribute|
|
@@ -34,12 +36,14 @@ Shindo.tests("Fog::Compute[:digitalocean] | server model", ['digitalocean', 'com
|
|
34
36
|
end
|
35
37
|
end
|
36
38
|
end
|
39
|
+
|
37
40
|
test('#reboot') do
|
38
41
|
pending if Fog.mocking?
|
39
42
|
server.reboot
|
40
43
|
server.wait_for { server.state == 'off' }
|
41
44
|
server.state == 'off'
|
42
45
|
end
|
46
|
+
|
43
47
|
test('#power_cycle') do
|
44
48
|
pending if Fog.mocking?
|
45
49
|
server.wait_for { server.ready? }
|
@@ -47,16 +51,19 @@ Shindo.tests("Fog::Compute[:digitalocean] | server model", ['digitalocean', 'com
|
|
47
51
|
server.wait_for { server.state == 'off' }
|
48
52
|
server.state == 'off'
|
49
53
|
end
|
54
|
+
|
50
55
|
test('#stop') do
|
51
56
|
server.stop
|
52
57
|
server.wait_for { server.state == 'off' }
|
53
58
|
server.state == 'off'
|
54
59
|
end
|
60
|
+
|
55
61
|
test('#start') do
|
56
62
|
server.start
|
57
63
|
server.wait_for { ready? }
|
58
64
|
server.ready?
|
59
65
|
end
|
66
|
+
|
60
67
|
# DigitalOcean shutdown is unreliable
|
61
68
|
# so disable it in real mode for now
|
62
69
|
test('#shutdown') do
|
@@ -67,6 +74,7 @@ Shindo.tests("Fog::Compute[:digitalocean] | server model", ['digitalocean', 'com
|
|
67
74
|
server.wait_for { server.state == 'off' }
|
68
75
|
server.state == 'off'
|
69
76
|
end
|
77
|
+
|
70
78
|
test('#update') do
|
71
79
|
begin
|
72
80
|
server.update
|
@@ -74,11 +82,11 @@ Shindo.tests("Fog::Compute[:digitalocean] | server model", ['digitalocean', 'com
|
|
74
82
|
true
|
75
83
|
end
|
76
84
|
end
|
77
|
-
|
78
85
|
end
|
79
86
|
|
80
87
|
# restore server state
|
81
88
|
server.start
|
89
|
+
server.wait_for { ready? }
|
82
90
|
|
83
91
|
end
|
84
92
|
|
@@ -1,35 +1,21 @@
|
|
1
1
|
Shindo.tests('Fog::Compute[:digitalocean] | servers collection', ['digitalocean']) do
|
2
|
+
service = Fog::Compute[:digitalocean]
|
2
3
|
|
3
|
-
|
4
|
+
options = {
|
5
|
+
:name => "#{fog_server_name}-#{Time.now.to_i.to_s}"
|
6
|
+
}.merge fog_test_server_attributes
|
4
7
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
server = fog_test_server
|
9
|
-
|
10
|
-
test('should NOT be empty') do
|
11
|
-
servers.reload
|
12
|
-
!servers.empty?
|
13
|
-
end
|
14
|
-
|
15
|
-
test('should be a kind of Fog::Compute::DigitalOcean::Servers') do
|
16
|
-
servers.kind_of? Fog::Compute::DigitalOcean::Servers
|
17
|
-
end
|
18
|
-
|
19
|
-
tests('should have Fog::Compute::DigitalOcean::Servers inside') do
|
20
|
-
servers.each do |s|
|
21
|
-
test { s.kind_of? Fog::Compute::DigitalOcean::Server }
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
tests('should be able to reload itself').succeeds { servers.reload }
|
26
|
-
|
27
|
-
tests('should be able to get a model') do
|
28
|
-
test('by instance id') do
|
29
|
-
servers.get(server.id).kind_of? Fog::Compute::DigitalOcean::Server
|
30
|
-
end
|
31
|
-
end
|
8
|
+
collection_tests(service.servers, options, true) do
|
9
|
+
@instance.wait_for { ready? }
|
10
|
+
end
|
32
11
|
|
12
|
+
tests("#bootstrap").succeeds do
|
13
|
+
pending if Fog.mocking?
|
14
|
+
@server = service.servers.bootstrap({
|
15
|
+
:public_key_path => File.join(File.dirname(__FILE__), '../../fixtures/id_rsa.pub'),
|
16
|
+
:private_key_path => File.join(File.dirname(__FILE__), '../../fixtures/id_rsa')
|
17
|
+
}.merge(options))
|
33
18
|
end
|
34
19
|
|
20
|
+
@server.destroy if @server
|
35
21
|
end
|
@@ -3,33 +3,37 @@ Shindo.tests("Fog::Compute[:digitalocean] | ssh_key model", ['digitalocean', 'co
|
|
3
3
|
service = Fog::Compute[:digitalocean]
|
4
4
|
|
5
5
|
tests('The ssh_key model should') do
|
6
|
-
|
6
|
+
|
7
7
|
test('#save') do
|
8
8
|
@key = service.ssh_keys.create :name => 'fookey',
|
9
9
|
:ssh_pub_key => 'fookey'
|
10
10
|
@key.is_a? Fog::Compute::DigitalOcean::SshKey
|
11
11
|
end
|
12
|
+
|
12
13
|
tests('have the action') do
|
13
14
|
test('reload') { @key.respond_to? 'reload' }
|
14
|
-
%w{
|
15
|
+
%w{
|
15
16
|
save
|
16
17
|
destroy
|
17
18
|
}.each do |action|
|
18
19
|
test(action) { @key.respond_to? action }
|
19
20
|
end
|
20
21
|
end
|
22
|
+
|
21
23
|
tests('have attributes') do
|
22
|
-
attributes = [
|
24
|
+
attributes = [
|
23
25
|
:id,
|
24
26
|
:name,
|
25
27
|
:ssh_pub_key
|
26
28
|
]
|
29
|
+
|
27
30
|
tests("The key model should respond to") do
|
28
31
|
attributes.each do |attribute|
|
29
32
|
test("#{attribute}") { @key.respond_to? attribute }
|
30
33
|
end
|
31
34
|
end
|
32
35
|
end
|
36
|
+
|
33
37
|
test('#destroy') do
|
34
38
|
@key.destroy
|
35
39
|
end
|
@@ -19,10 +19,14 @@ Shindo.tests('Fog::Compute[:digitalocean] | ssh_keys collection', ['digitalocean
|
|
19
19
|
|
20
20
|
tests('should be able to get a model') do
|
21
21
|
test('by instance id') do
|
22
|
-
service.ssh_keys.get(key.id)
|
22
|
+
retrieved_key = service.ssh_keys.get(key.id)
|
23
|
+
test { retrieved_key.kind_of? Fog::Compute::DigitalOcean::SshKey }
|
24
|
+
test { retrieved_key.name == key.name }
|
23
25
|
end
|
24
26
|
end
|
25
27
|
|
28
|
+
key.destroy
|
29
|
+
|
26
30
|
end
|
27
31
|
|
28
32
|
end
|
@@ -5,7 +5,7 @@ Shindo.tests('Fog::Compute[:digitalocean] | create_server request', ['digitaloce
|
|
5
5
|
'name' => String,
|
6
6
|
'image_id' => Integer,
|
7
7
|
'size_id' => Integer,
|
8
|
-
'event_id' => Integer
|
8
|
+
'event_id' => Integer
|
9
9
|
}
|
10
10
|
|
11
11
|
service = Fog::Compute[:digitalocean]
|
@@ -13,16 +13,13 @@ Shindo.tests('Fog::Compute[:digitalocean] | create_server request', ['digitaloce
|
|
13
13
|
tests('success') do
|
14
14
|
|
15
15
|
tests('#create_server').formats({'status' => 'OK', 'droplet' => @server_format}) do
|
16
|
-
image = service.images.find { |img| img.name == 'Ubuntu 12.04 x64
|
16
|
+
image = service.images.find { |img| img.name == 'Ubuntu 12.04 x64' }
|
17
17
|
flavor = service.flavors.find { |f| f.name == '512MB' }
|
18
|
-
data = Fog::Compute[:digitalocean].create_server
|
18
|
+
data = Fog::Compute[:digitalocean].create_server fog_server_name,
|
19
19
|
flavor.id,
|
20
20
|
image.id,
|
21
21
|
service.regions.first.id
|
22
22
|
data.body
|
23
23
|
end
|
24
|
-
|
25
24
|
end
|
26
|
-
|
27
|
-
|
28
25
|
end
|
@@ -5,7 +5,7 @@ Shindo.tests('Fog::Compute[:digitalocean] | get_server_details request', ['digit
|
|
5
5
|
test('#get_server_details') do
|
6
6
|
server = fog_test_server
|
7
7
|
body = Fog::Compute[:digitalocean].get_server_details(server.id).body
|
8
|
-
body['droplet']['name'] ==
|
8
|
+
body['droplet']['name'] == fog_server_name
|
9
9
|
end
|
10
10
|
|
11
11
|
end
|
@@ -5,16 +5,19 @@ Shindo.tests('Fog::Compute[:digitalocean] | get_ssh_keys request', ['digitalocea
|
|
5
5
|
'name' => String,
|
6
6
|
'ssh_pub_key' => String,
|
7
7
|
}
|
8
|
-
|
8
|
+
|
9
9
|
service = Fog::Compute[:digitalocean]
|
10
10
|
|
11
11
|
tests('success') do
|
12
12
|
|
13
13
|
tests('#get_ssh_key') do
|
14
14
|
key = service.create_ssh_key 'fookey', 'ssh-dss FOO'
|
15
|
+
|
15
16
|
tests('format').data_matches_schema(@ssh_key_format) do
|
16
17
|
service.get_ssh_key(key.body['ssh_key']['id']).body['ssh_key']
|
17
18
|
end
|
19
|
+
|
20
|
+
service.destroy_ssh_key(key.body['ssh_key']['id'])
|
18
21
|
end
|
19
22
|
|
20
23
|
end
|
@@ -7,15 +7,18 @@ Shindo.tests('Fog::Compute[:digitalocean] | list_ssh_keys request', ['digitaloce
|
|
7
7
|
|
8
8
|
tests('success') do
|
9
9
|
|
10
|
+
ssh_key = service.create_ssh_key 'fookey', 'ssh-dss FOO'
|
11
|
+
|
10
12
|
tests('#list_ssh_keys') do
|
11
|
-
|
12
|
-
Fog::Compute[:digitalocean].list_ssh_keys.body['ssh_keys'].each do |key|
|
13
|
+
service.list_ssh_keys.body['ssh_keys'].each do |key|
|
13
14
|
tests('format').data_matches_schema(@ssh_key_format) do
|
14
15
|
key
|
15
16
|
end
|
16
17
|
end
|
17
18
|
end
|
18
19
|
|
20
|
+
service.destroy_ssh_key(ssh_key.body['ssh_key']['id'])
|
21
|
+
|
19
22
|
end
|
20
23
|
|
21
24
|
end
|