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
@@ -7,6 +7,10 @@ module Fog
|
|
7
7
|
@connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => 'VM.get_by_name_label' }, label)
|
8
8
|
end
|
9
9
|
|
10
|
+
def get_vm_by_uuid(uuid)
|
11
|
+
@connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => 'VM.get_by_uuid' }, uuid)
|
12
|
+
end
|
13
|
+
|
10
14
|
def create_server_raw(config = {})
|
11
15
|
config[:name_label] = config[:name] if config[:name]
|
12
16
|
config.delete :name
|
@@ -26,12 +26,15 @@ module Fog
|
|
26
26
|
|
27
27
|
# Prepare the SAX parser
|
28
28
|
data_stream = Nokogiri::XML::SAX::PushParser.new(parser)
|
29
|
+
response_string = ""
|
29
30
|
params[:response_block] = lambda do |chunk, remaining, total|
|
31
|
+
response_string << chunk if ENV['DEBUG_RESPONSE']
|
30
32
|
data_stream << chunk
|
31
33
|
end
|
32
34
|
|
33
35
|
# Make request which read chunks into parser
|
34
36
|
response = @excon.request(params)
|
37
|
+
Fog::Logger.debug "\n#{response_string}" if ENV['DEBUG_RESPONSE']
|
35
38
|
|
36
39
|
# Cease parsing and override response.body with parsed data
|
37
40
|
data_stream.finish
|
data/lib/tasks/changelog_task.rb
CHANGED
@@ -83,7 +83,7 @@ Shindo.tests('AWS::ELB | models', ['aws', 'elb']) do
|
|
83
83
|
|
84
84
|
# Need to sleep here for IAM changes to propgate
|
85
85
|
tests('with ListenerDescriptions') do
|
86
|
-
@certificate = Fog::AWS[:iam].upload_server_certificate(AWS::IAM::
|
86
|
+
@certificate = Fog::AWS[:iam].upload_server_certificate(AWS::IAM::SERVER_CERT, AWS::IAM::SERVER_CERT_PRIVATE_KEY, @key_name).body['Certificate']
|
87
87
|
sleep(10) unless Fog.mocking?
|
88
88
|
listeners = [{
|
89
89
|
'Listener' => {
|
@@ -250,6 +250,7 @@ Shindo.tests('AWS::ELB | models', ['aws', 'elb']) do
|
|
250
250
|
tests('create app policy') do
|
251
251
|
elb.policies.create(:id => app_policy_id, :cookie => 'my-app-cookie', :cookie_stickiness => :app)
|
252
252
|
returns(app_policy_id) { elb.policies.first.id }
|
253
|
+
returns("my-app-cookie") { elb.policies.get(app_policy_id).cookie }
|
253
254
|
end
|
254
255
|
|
255
256
|
tests('get policy') do
|
@@ -270,6 +271,7 @@ Shindo.tests('AWS::ELB | models', ['aws', 'elb']) do
|
|
270
271
|
tests('setting a listener policy') do
|
271
272
|
elb.set_listener_policy(80, lb_policy_id)
|
272
273
|
returns([lb_policy_id]) { elb.listeners.get(80).policy_names }
|
274
|
+
returns(600) { elb.policies.get(lb_policy_id).expiration }
|
273
275
|
end
|
274
276
|
|
275
277
|
tests('unsetting a listener policy') do
|
@@ -277,11 +279,36 @@ Shindo.tests('AWS::ELB | models', ['aws', 'elb']) do
|
|
277
279
|
returns([]) { elb.listeners.get(80).policy_names }
|
278
280
|
end
|
279
281
|
|
282
|
+
public_key_policy_id = 'fog-public-key-policy'
|
283
|
+
tests('create public key policy') do
|
284
|
+
elb.policies.create(:id => public_key_policy_id, :type_name => 'PublicKeyPolicyType', :policy_attributes => {'PublicKey' => AWS::IAM::SERVER_CERT_PUBLIC_KEY})
|
285
|
+
policy = elb.policies.get(public_key_policy_id)
|
286
|
+
|
287
|
+
returns(public_key_policy_id) { policy.id }
|
288
|
+
returns("PublicKeyPolicyType") { policy.type_name }
|
289
|
+
returns(AWS::IAM::SERVER_CERT_PUBLIC_KEY) { policy.policy_attributes["PublicKey"] }
|
290
|
+
end
|
291
|
+
|
280
292
|
tests('a malformed policy') do
|
281
293
|
raises(ArgumentError) { elb.policies.create(:id => 'foo', :cookie_stickiness => 'invalid stickiness') }
|
282
294
|
end
|
283
295
|
end
|
284
296
|
|
297
|
+
tests('backend server descriptions') do
|
298
|
+
tests('default') do
|
299
|
+
returns(0) { elb.backend_server_descriptions.size }
|
300
|
+
end
|
301
|
+
|
302
|
+
tests('with a backend policy') do
|
303
|
+
policy = "EnableProxyProtocol"
|
304
|
+
port = 80
|
305
|
+
elb.policies.create(:id => policy, :type_name => 'ProxyProtocolPolicyType', :policy_attributes => { "ProxyProtocol" => true })
|
306
|
+
Fog::AWS[:elb].set_load_balancer_policies_for_backend_server(elb.id, port, [policy]).body
|
307
|
+
elb.reload
|
308
|
+
returns([policy]) { elb.backend_server_descriptions.get(port).policy_names }
|
309
|
+
end
|
310
|
+
end
|
311
|
+
|
285
312
|
tests('setting a new ssl certificate id') do
|
286
313
|
elb.listeners.create(:instance_port => 443, :lb_port => 443, :protocol => 'HTTPS', :instance_protocol => 'HTTPS', :ssl_id => @certificate['Arn'])
|
287
314
|
elb.set_listener_ssl_certificate(443, @certificate['Arn'])
|
@@ -0,0 +1,14 @@
|
|
1
|
+
Shindo.tests("AWS::RDS | db instance options", ['aws', 'rds']) do
|
2
|
+
|
3
|
+
params = {:engine => 'mysql'}
|
4
|
+
|
5
|
+
pending if Fog.mocking?
|
6
|
+
|
7
|
+
tests('#options') do
|
8
|
+
tests 'contains options' do
|
9
|
+
@instance = Fog::AWS[:rds].instance_options.new(params)
|
10
|
+
returns(true) { @instance.engine == 'mysql' }
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
require 'fog/xml'
|
2
|
+
require 'fog/aws/parsers/elb/describe_load_balancers'
|
3
|
+
|
4
|
+
DESCRIBE_LOAD_BALANCERS_RESULT = <<-EOF
|
5
|
+
<DescribeLoadBalancersResponse
|
6
|
+
xmlns="http://elasticloadbalancing.amazonaws.com/doc/2012-06-01/">
|
7
|
+
<DescribeLoadBalancersResult>
|
8
|
+
<LoadBalancerDescriptions>
|
9
|
+
<member>
|
10
|
+
<SecurityGroups/>
|
11
|
+
<CreatedTime>2013-08-01T15:47:20.930Z</CreatedTime>
|
12
|
+
<LoadBalancerName>fog-test-elb</LoadBalancerName>
|
13
|
+
<HealthCheck>
|
14
|
+
<Interval>30</Interval>
|
15
|
+
<Target>TCP:80</Target>
|
16
|
+
<HealthyThreshold>10</HealthyThreshold>
|
17
|
+
<Timeout>5</Timeout>
|
18
|
+
<UnhealthyThreshold>2</UnhealthyThreshold>
|
19
|
+
</HealthCheck>
|
20
|
+
<ListenerDescriptions>
|
21
|
+
<member>
|
22
|
+
<PolicyNames/>
|
23
|
+
<Listener>
|
24
|
+
<Protocol>HTTP</Protocol>
|
25
|
+
<LoadBalancerPort>80</LoadBalancerPort>
|
26
|
+
<InstanceProtocol>HTTP</InstanceProtocol>
|
27
|
+
<InstancePort>80</InstancePort>
|
28
|
+
</Listener>
|
29
|
+
</member>
|
30
|
+
</ListenerDescriptions>
|
31
|
+
<Instances/>
|
32
|
+
<Policies>
|
33
|
+
<AppCookieStickinessPolicies/>
|
34
|
+
<OtherPolicies/>
|
35
|
+
<LBCookieStickinessPolicies/>
|
36
|
+
</Policies>
|
37
|
+
<AvailabilityZones>
|
38
|
+
<member>us-east-1a</member>
|
39
|
+
</AvailabilityZones>
|
40
|
+
<CanonicalHostedZoneName>fog-test-elb-1965660309.us-east-1.elb.amazonaws.com</CanonicalHostedZoneName>
|
41
|
+
<CanonicalHostedZoneNameID>Z3DZXE0Q79N41H</CanonicalHostedZoneNameID>
|
42
|
+
<Scheme>internet-facing</Scheme>
|
43
|
+
<SourceSecurityGroup>
|
44
|
+
<OwnerAlias>amazon-elb</OwnerAlias>
|
45
|
+
<GroupName>amazon-elb-sg</GroupName>
|
46
|
+
</SourceSecurityGroup>
|
47
|
+
<DNSName>fog-test-elb-1965660309.us-east-1.elb.amazonaws.com</DNSName>
|
48
|
+
<BackendServerDescriptions/>
|
49
|
+
<Subnets/>
|
50
|
+
</member>
|
51
|
+
</LoadBalancerDescriptions>
|
52
|
+
</DescribeLoadBalancersResult>
|
53
|
+
<ResponseMetadata>
|
54
|
+
<RequestId>a6ea2117-fac1-11e2-abd3-1740ab4ef14e</RequestId>
|
55
|
+
</ResponseMetadata>
|
56
|
+
</DescribeLoadBalancersResponse>
|
57
|
+
EOF
|
58
|
+
|
59
|
+
Shindo.tests('AWS::ELB | parsers | describe_load_balancers', ['aws', 'elb', 'parser']) do
|
60
|
+
tests('parses the xml').formats(AWS::ELB::Formats::DESCRIBE_LOAD_BALANCERS) do
|
61
|
+
parser = Nokogiri::XML::SAX::Parser.new(Fog::Parsers::AWS::ELB::DescribeLoadBalancers.new)
|
62
|
+
parser.parse(DESCRIBE_LOAD_BALANCERS_RESULT)
|
63
|
+
parser.document.response
|
64
|
+
end
|
65
|
+
end
|
@@ -8,6 +8,7 @@ class AWS
|
|
8
8
|
|
9
9
|
LOAD_BALANCER = {
|
10
10
|
"AvailabilityZones" => Array,
|
11
|
+
"BackendServerDescriptions" => Array,
|
11
12
|
"CanonicalHostedZoneName" => String,
|
12
13
|
"CanonicalHostedZoneNameID" => String,
|
13
14
|
"CreatedTime" => Time,
|
@@ -25,7 +26,7 @@ class AWS
|
|
25
26
|
}
|
26
27
|
}],
|
27
28
|
"LoadBalancerName" => String,
|
28
|
-
"Policies" => {"LBCookieStickinessPolicies" => Array, "AppCookieStickinessPolicies" => Array},
|
29
|
+
"Policies" => {"LBCookieStickinessPolicies" => Array, "AppCookieStickinessPolicies" => Array, "OtherPolicies" => Array},
|
29
30
|
"Scheme" => String,
|
30
31
|
"SecurityGroups" => [Fog::Nullable::String],
|
31
32
|
"SourceSecurityGroup" => {"GroupName" => String, "OwnerAlias" => String},
|
@@ -4,7 +4,7 @@ Shindo.tests('AWS::ELB | listener_tests', ['aws', 'elb']) do
|
|
4
4
|
|
5
5
|
tests('success') do
|
6
6
|
Fog::AWS[:elb].create_load_balancer(['us-east-1a'], @load_balancer_id, [{'LoadBalancerPort' => 80, 'InstancePort' => 80, 'Protocol' => 'HTTP'}])
|
7
|
-
@certificate = Fog::AWS[:iam].upload_server_certificate(AWS::IAM::
|
7
|
+
@certificate = Fog::AWS[:iam].upload_server_certificate(AWS::IAM::SERVER_CERT, AWS::IAM::SERVER_CERT_PRIVATE_KEY, @key_name).body['Certificate']
|
8
8
|
|
9
9
|
tests("#create_load_balancer_listeners").formats(AWS::ELB::Formats::BASIC) do
|
10
10
|
listeners = [
|
@@ -3,7 +3,11 @@ Shindo.tests('AWS::ELB | load_balancer_tests', ['aws', 'elb']) do
|
|
3
3
|
@key_name = 'fog-test'
|
4
4
|
|
5
5
|
tests('success') do
|
6
|
-
|
6
|
+
if (Fog::AWS[:iam].get_server_certificate(@key_name) rescue nil)
|
7
|
+
Fog::AWS[:iam].delete_server_certificate(@key_name)
|
8
|
+
end
|
9
|
+
|
10
|
+
@certificate = Fog::AWS[:iam].upload_server_certificate(AWS::IAM::SERVER_CERT, AWS::IAM::SERVER_CERT_PRIVATE_KEY, @key_name).body['Certificate']
|
7
11
|
|
8
12
|
tests("#create_load_balancer").formats(AWS::ELB::Formats::CREATE_LOAD_BALANCER) do
|
9
13
|
zones = ['us-east-1a']
|
@@ -5,6 +5,10 @@ Shindo.tests('AWS::ELB | policy_tests', ['aws', 'elb']) do
|
|
5
5
|
listeners = [{'LoadBalancerPort' => 80, 'InstancePort' => 80, 'Protocol' => 'HTTP'}]
|
6
6
|
Fog::AWS[:elb].create_load_balancer(['us-east-1a'], @load_balancer_id, listeners)
|
7
7
|
|
8
|
+
tests("#describe_load_balancer_policy_types").formats(AWS::ELB::Formats::DESCRIBE_LOAD_BALANCER_POLICY_TYPES) do
|
9
|
+
@policy_types = Fog::AWS[:elb].describe_load_balancer_policy_types.body
|
10
|
+
end
|
11
|
+
|
8
12
|
tests("#create_app_cookie_stickiness_policy").formats(AWS::ELB::Formats::BASIC) do
|
9
13
|
cookie, policy = 'fog-app-cookie', 'fog-app-policy'
|
10
14
|
Fog::AWS[:elb].create_app_cookie_stickiness_policy(@load_balancer_id, policy, cookie).body
|
@@ -21,17 +25,78 @@ Shindo.tests('AWS::ELB | policy_tests', ['aws', 'elb']) do
|
|
21
25
|
Fog::AWS[:elb].create_lb_cookie_stickiness_policy(@load_balancer_id, policy).body
|
22
26
|
end
|
23
27
|
|
24
|
-
tests("#describe_load_balancer_policy_types").formats(AWS::ELB::Formats::DESCRIBE_LOAD_BALANCER_POLICY_TYPES) do
|
25
|
-
@policy_types = Fog::AWS[:elb].describe_load_balancer_policy_types.body
|
26
|
-
end
|
27
|
-
|
28
28
|
tests("#create_load_balancer_policy").formats(AWS::ELB::Formats::BASIC) do
|
29
29
|
policy = 'fog-policy'
|
30
30
|
Fog::AWS[:elb].create_load_balancer_policy(@load_balancer_id, policy, 'PublicKeyPolicyType', {'PublicKey' => AWS::IAM::SERVER_CERT_PUBLIC_KEY}).body
|
31
31
|
end
|
32
32
|
|
33
|
-
tests("#describe_load_balancer_policies")
|
34
|
-
Fog::AWS[:elb].describe_load_balancer_policies(@load_balancer_id).body
|
33
|
+
tests("#describe_load_balancer_policies") do
|
34
|
+
body = Fog::AWS[:elb].describe_load_balancer_policies(@load_balancer_id).body
|
35
|
+
formats(AWS::ELB::Formats::DESCRIBE_LOAD_BALANCER_POLICIES) { body }
|
36
|
+
|
37
|
+
# Check the result of each policy by name
|
38
|
+
returns({
|
39
|
+
"PolicyAttributeDescriptions"=>[{
|
40
|
+
"AttributeName"=>"CookieName",
|
41
|
+
"AttributeValue"=>"fog-app-cookie"
|
42
|
+
}],
|
43
|
+
"PolicyName"=>"fog-app-policy",
|
44
|
+
"PolicyTypeName"=>"AppCookieStickinessPolicyType"
|
45
|
+
}) do
|
46
|
+
body["DescribeLoadBalancerPoliciesResult"]["PolicyDescriptions"].detect{|e| e['PolicyName'] == 'fog-app-policy' }
|
47
|
+
end
|
48
|
+
|
49
|
+
returns({
|
50
|
+
"PolicyAttributeDescriptions"=>[{
|
51
|
+
"AttributeName"=>"CookieExpirationPeriod",
|
52
|
+
"AttributeValue"=>"300"
|
53
|
+
}],
|
54
|
+
"PolicyName"=>"fog-lb-expiry",
|
55
|
+
"PolicyTypeName"=>"LBCookieStickinessPolicyType"
|
56
|
+
}) do
|
57
|
+
body["DescribeLoadBalancerPoliciesResult"]["PolicyDescriptions"].detect{|e| e['PolicyName'] == 'fog-lb-expiry' }
|
58
|
+
end
|
59
|
+
|
60
|
+
returns({
|
61
|
+
"PolicyAttributeDescriptions"=>[{
|
62
|
+
"AttributeName"=>"CookieExpirationPeriod",
|
63
|
+
"AttributeValue"=>"0"
|
64
|
+
}],
|
65
|
+
"PolicyName"=>"fog-lb-no-expiry",
|
66
|
+
"PolicyTypeName"=>"LBCookieStickinessPolicyType"
|
67
|
+
}) do
|
68
|
+
body["DescribeLoadBalancerPoliciesResult"]["PolicyDescriptions"].detect{|e| e['PolicyName'] == 'fog-lb-no-expiry' }
|
69
|
+
end
|
70
|
+
|
71
|
+
returns({
|
72
|
+
"PolicyAttributeDescriptions"=>[{
|
73
|
+
"AttributeName"=>"PublicKey",
|
74
|
+
"AttributeValue"=> AWS::IAM::SERVER_CERT_PUBLIC_KEY
|
75
|
+
}],
|
76
|
+
"PolicyName"=>"fog-policy",
|
77
|
+
"PolicyTypeName"=>"PublicKeyPolicyType"
|
78
|
+
}) do
|
79
|
+
body["DescribeLoadBalancerPoliciesResult"]["PolicyDescriptions"].detect{|e| e['PolicyName'] == 'fog-policy' }
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
tests("#describe_load_balancer includes all policies") do
|
84
|
+
lb = Fog::AWS[:elb].describe_load_balancers("LoadBalancerNames" => [@load_balancer_id]).body["DescribeLoadBalancersResult"]["LoadBalancerDescriptions"].first
|
85
|
+
returns([
|
86
|
+
{"PolicyName"=>"fog-app-policy", "CookieName"=>"fog-app-cookie"}
|
87
|
+
]) { lb["Policies"]["AppCookieStickinessPolicies"] }
|
88
|
+
|
89
|
+
returns([
|
90
|
+
{"PolicyName"=>"fog-lb-expiry", "CookieExpirationPeriod"=> 300}
|
91
|
+
]) { lb["Policies"]["LBCookieStickinessPolicies"].select{|e| e["PolicyName"] == "fog-lb-expiry"} }
|
92
|
+
|
93
|
+
returns([
|
94
|
+
{"PolicyName" => "fog-lb-no-expiry"}
|
95
|
+
]) { lb["Policies"]["LBCookieStickinessPolicies"].select{|e| e["PolicyName"] == "fog-lb-no-expiry"} }
|
96
|
+
|
97
|
+
returns([
|
98
|
+
"fog-policy"
|
99
|
+
]) { lb["Policies"]["OtherPolicies"] }
|
35
100
|
end
|
36
101
|
|
37
102
|
tests("#delete_load_balancer_policy").formats(AWS::ELB::Formats::BASIC) do
|
@@ -49,6 +114,20 @@ Shindo.tests('AWS::ELB | policy_tests', ['aws', 'elb']) do
|
|
49
114
|
Fog::AWS[:elb].set_load_balancer_policies_of_listener(@load_balancer_id, port, []).body
|
50
115
|
end
|
51
116
|
|
117
|
+
proxy_policy = "EnableProxyProtocol"
|
118
|
+
Fog::AWS[:elb].create_load_balancer_policy(@load_balancer_id, proxy_policy, 'ProxyProtocolPolicyType', { "ProxyProtocol" => true })
|
119
|
+
|
120
|
+
tests("#set_load_balancer_policies_for_backend_server replaces policies on port").formats(AWS::ELB::Formats::BASIC) do
|
121
|
+
Fog::AWS[:elb].set_load_balancer_policies_for_backend_server(@load_balancer_id, 80, [proxy_policy]).body
|
122
|
+
end
|
123
|
+
|
124
|
+
tests("#describe_load_balancers has other policies") do
|
125
|
+
Fog::AWS[:elb].set_load_balancer_policies_for_backend_server(@load_balancer_id, 80, [proxy_policy]).body
|
126
|
+
description = Fog::AWS[:elb].describe_load_balancers("LoadBalancerNames" => [@load_balancer_id]).body["DescribeLoadBalancersResult"]["LoadBalancerDescriptions"].first
|
127
|
+
returns(true) { description["Policies"]["OtherPolicies"].include?(proxy_policy) }
|
128
|
+
end
|
129
|
+
|
52
130
|
Fog::AWS[:elb].delete_load_balancer(@load_balancer_id)
|
53
131
|
end
|
54
132
|
end
|
133
|
+
|
@@ -4,7 +4,7 @@ class AWS
|
|
4
4
|
# A self-signed test keypair. Generated using the command:
|
5
5
|
# openssl req -new -newkey rsa:1024 -days 3650 -nodes -x509 -keyout server-private.key -out server-public.crt
|
6
6
|
# NB: Amazon returns an error on extraneous linebreaks
|
7
|
-
|
7
|
+
SERVER_CERT = %{-----BEGIN CERTIFICATE-----
|
8
8
|
MIIDQzCCAqygAwIBAgIJAJaZ8wH+19AtMA0GCSqGSIb3DQEBBQUAMHUxCzAJBgNV
|
9
9
|
BAYTAlVTMREwDwYDVQQIEwhOZXcgWW9yazERMA8GA1UEBxMITmV3IFlvcmsxHzAd
|
10
10
|
BgNVBAoTFkZvZyBUZXN0IFNuYWtlb2lsIENlcnQxHzAdBgNVBAsTFkZvZyBUZXN0
|
@@ -25,6 +25,9 @@ DF3qnnPyArLFx0HLB7wQdm9xYVIqQuLO+V6GRuOd+uSX//aDLDZhwbERf35hoyto
|
|
25
25
|
Jfk4gX/qwuRFNy0vjQeTzdvhB1igG/w=
|
26
26
|
-----END CERTIFICATE-----
|
27
27
|
}
|
28
|
+
# The public key for SERVER_CERT. Generated using the command:
|
29
|
+
# openssl x509 -inform pem -in server-public.crt -pubkey -noout > server.pubkey
|
30
|
+
SERVER_CERT_PUBLIC_KEY = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC0CR76sovjdmpWRmEaf8XaG+nGe7czhpdLKkau2b16VtSjkPctxPL5U4vaMxQUboLPr+9oL+9fSYN31VzDD4hyaeGoeI5fhnGeqk71kq5uHONBOQUMbZbBQ8PVd9Sdk+y9JJ6E5fC+GhLL5I+y2DK7syBzyymq1Wi6rPp1XXF7AQIDAQAB"
|
28
31
|
|
29
32
|
SERVER_CERT_PRIVATE_KEY = %{-----BEGIN RSA PRIVATE KEY-----
|
30
33
|
MIICXAIBAAKBgQC0CR76sovjdmpWRmEaf8XaG+nGe7czhpdLKkau2b16VtSjkPct
|
@@ -25,7 +25,7 @@ Shindo.tests('AWS::IAM | server certificate requests', ['aws']) do
|
|
25
25
|
}
|
26
26
|
|
27
27
|
tests('#upload_server_certificate') do
|
28
|
-
public_key = AWS::IAM::
|
28
|
+
public_key = AWS::IAM::SERVER_CERT
|
29
29
|
private_key = AWS::IAM::SERVER_CERT_PRIVATE_KEY
|
30
30
|
private_key_pkcs8 = AWS::IAM::SERVER_CERT_PRIVATE_KEY_PKCS8
|
31
31
|
private_key_mismatch = AWS::IAM::SERVER_CERT_PRIVATE_KEY_MISMATCHED
|
@@ -68,7 +68,7 @@ Shindo.tests('AWS::IAM | server certificate requests', ['aws']) do
|
|
68
68
|
end
|
69
69
|
|
70
70
|
tests('#update_server_certificate') do
|
71
|
-
public_key = AWS::IAM::
|
71
|
+
public_key = AWS::IAM::SERVER_CERT
|
72
72
|
private_key = AWS::IAM::SERVER_CERT_PRIVATE_KEY
|
73
73
|
key_name = "update-key"
|
74
74
|
|
@@ -8,6 +8,11 @@ class AWS
|
|
8
8
|
'ResponseMetadata' => {'RequestId' => String}
|
9
9
|
}
|
10
10
|
|
11
|
+
DB_AVAILABILITY_ZONE_OPTION = {
|
12
|
+
'Name' => String,
|
13
|
+
'ProvisionedIopsCapable' => Fog::Boolean
|
14
|
+
}
|
15
|
+
|
11
16
|
DB_PARAMETER_GROUP = {
|
12
17
|
'DBParameterGroupFamily' => String,
|
13
18
|
'DBParameterGroupName'=> String,
|
@@ -79,6 +84,23 @@ class AWS
|
|
79
84
|
}
|
80
85
|
}
|
81
86
|
|
87
|
+
ORDERABLE_DB_INSTANCE_OPTION = {
|
88
|
+
'MultiAZCapable' => Fog::Boolean,
|
89
|
+
'Engine' => String,
|
90
|
+
'LicenseModel' => String,
|
91
|
+
'ReadReplicaCapable' => Fog::Boolean,
|
92
|
+
'EngineVersion' => String,
|
93
|
+
'AvailabilityZones' => [DB_AVAILABILITY_ZONE_OPTION],
|
94
|
+
'DBInstanceClass' => String,
|
95
|
+
'Vpc' => Fog::Boolean
|
96
|
+
}
|
97
|
+
|
98
|
+
DESCRIBE_ORDERABLE_DB_INSTANCE_OPTION = BASIC.merge({
|
99
|
+
'DescribeOrderableDBInstanceOptionsResult' =>{
|
100
|
+
'OrderableDBInstanceOptions' => [ORDERABLE_DB_INSTANCE_OPTION]
|
101
|
+
}
|
102
|
+
})
|
103
|
+
|
82
104
|
MODIFY_PARAMETER_GROUP = BASIC.merge({
|
83
105
|
'ModifyDBParameterGroupResult' => {
|
84
106
|
'DBParameterGroupName' => String
|
@@ -105,6 +127,19 @@ class AWS
|
|
105
127
|
|
106
128
|
})
|
107
129
|
|
130
|
+
DB_LOG_FILE = {
|
131
|
+
'LastWritten' => Time,
|
132
|
+
'Size' => Integer,
|
133
|
+
'LogFileName' => String
|
134
|
+
}
|
135
|
+
|
136
|
+
DESCRIBE_DB_LOG_FILES = BASIC.merge({
|
137
|
+
'DescribeDBLogFilesResult' => {
|
138
|
+
'Marker' => Fog::Nullable::String,
|
139
|
+
'DBLogFiles' => [DB_LOG_FILE]
|
140
|
+
}
|
141
|
+
})
|
142
|
+
|
108
143
|
SNAPSHOT={
|
109
144
|
'AllocatedStorage' => Integer,
|
110
145
|
'AvailabilityZone' => String,
|
@@ -0,0 +1,21 @@
|
|
1
|
+
Shindo.tests('AWS::RDS | db instance option requests', ['aws', 'rds']) do
|
2
|
+
tests('success') do
|
3
|
+
|
4
|
+
tests("#describe_orderable_db_instance_options('mysql)").formats(AWS::RDS::Formats::DESCRIBE_ORDERABLE_DB_INSTANCE_OPTION) do
|
5
|
+
|
6
|
+
body = Fog::AWS[:rds].describe_orderable_db_instance_options('mysql').body
|
7
|
+
|
8
|
+
returns(2) {body['DescribeOrderableDBInstanceOptionsResult']['OrderableDBInstanceOptions'].length}
|
9
|
+
|
10
|
+
group = body['DescribeOrderableDBInstanceOptionsResult']['OrderableDBInstanceOptions'].first
|
11
|
+
returns( true ) { group['MultiAZCapable'] }
|
12
|
+
returns( 'mysql' ) { group['Engine'] }
|
13
|
+
returns( true ) { group['ReadReplicaCapable'] }
|
14
|
+
returns( true ) { group['AvailabilityZones'].length >= 1 }
|
15
|
+
|
16
|
+
body
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|