fog 1.6.0 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +1 -0
- data/README.md +1 -0
- data/Rakefile +2 -1
- data/changelog.txt +184 -0
- data/docs/cdn/index.markdown +69 -3
- data/fog.gemspec +2 -2
- data/lib/fog.rb +2 -1
- data/lib/fog/atmos/models/storage/file.rb +16 -14
- data/lib/fog/aws/auto_scaling.rb +55 -13
- data/lib/fog/aws/cdn.rb +69 -9
- data/lib/fog/aws/cloud_watch.rb +15 -1
- data/lib/fog/aws/compute.rb +2 -0
- data/lib/fog/aws/models/auto_scaling/group.rb +10 -4
- data/lib/fog/aws/models/cdn/distribution.rb +93 -0
- data/lib/fog/aws/models/cdn/distribution_helper.rb +64 -0
- data/lib/fog/aws/models/cdn/distributions.rb +32 -0
- data/lib/fog/aws/models/cdn/distributions_helper.rb +47 -0
- data/lib/fog/aws/models/cdn/invalidation.rb +64 -0
- data/lib/fog/aws/models/cdn/invalidations.rb +54 -0
- data/lib/fog/aws/models/cdn/streaming_distribution.rb +77 -0
- data/lib/fog/aws/models/cdn/streaming_distributions.rb +32 -0
- data/lib/fog/aws/models/compute/server.rb +0 -23
- data/lib/fog/aws/models/compute/spot_request.rb +2 -24
- data/lib/fog/aws/models/rds/server.rb +18 -0
- data/lib/fog/aws/models/rds/subnet_group.rb +20 -0
- data/lib/fog/aws/models/rds/subnet_groups.rb +27 -0
- data/lib/fog/aws/models/storage/file.rb +1 -1
- data/lib/fog/aws/parsers/auto_scaling/describe_adjustment_types.rb +15 -2
- data/lib/fog/aws/parsers/auto_scaling/describe_auto_scaling_groups.rb +39 -13
- data/lib/fog/aws/parsers/auto_scaling/describe_auto_scaling_notification_types.rb +43 -0
- data/lib/fog/aws/parsers/auto_scaling/describe_metric_collection_types.rb +3 -3
- data/lib/fog/aws/parsers/auto_scaling/describe_notification_configurations.rb +42 -0
- data/lib/fog/aws/parsers/auto_scaling/describe_scaling_process_types.rb +15 -2
- data/lib/fog/aws/parsers/auto_scaling/describe_tags.rb +46 -0
- data/lib/fog/aws/parsers/auto_scaling/describe_termination_policy_types.rb +44 -0
- data/lib/fog/aws/parsers/cdn/get_invalidation.rb +32 -0
- data/lib/fog/aws/parsers/cloud_formation/describe_stacks.rb +1 -1
- data/lib/fog/aws/parsers/cloud_watch/list_metrics.rb +1 -1
- data/lib/fog/aws/parsers/compute/describe_availability_zones.rb +13 -2
- data/lib/fog/aws/parsers/compute/describe_reserved_instances.rb +1 -1
- data/lib/fog/aws/parsers/elasticache/base.rb +0 -2
- data/lib/fog/aws/parsers/elasticache/engine_defaults_parser.rb +1 -1
- data/lib/fog/aws/parsers/elasticache/event_list.rb +2 -0
- data/lib/fog/aws/parsers/rds/base.rb +32 -0
- data/lib/fog/aws/parsers/rds/create_db_subnet_group.rb +38 -0
- data/lib/fog/aws/parsers/rds/describe_db_subnet_groups.rb +38 -0
- data/lib/fog/aws/parsers/rds/event_list.rb +40 -0
- data/lib/fog/aws/parsers/rds/subnet_group_parser.rb +38 -0
- data/lib/fog/aws/parsers/rds/tag_list_parser.rb +35 -0
- data/lib/fog/aws/rds.rb +24 -7
- data/lib/fog/aws/requests/auto_scaling/create_auto_scaling_group.rb +36 -16
- data/lib/fog/aws/requests/auto_scaling/create_launch_configuration.rb +19 -12
- data/lib/fog/aws/requests/auto_scaling/create_or_update_tags.rb +63 -0
- data/lib/fog/aws/requests/auto_scaling/delete_auto_scaling_group.rb +10 -3
- data/lib/fog/aws/requests/auto_scaling/delete_notification_configuration.rb +21 -5
- data/lib/fog/aws/requests/auto_scaling/delete_policy.rb +2 -2
- data/lib/fog/aws/requests/auto_scaling/delete_tags.rb +63 -0
- data/lib/fog/aws/requests/auto_scaling/describe_adjustment_types.rb +4 -3
- data/lib/fog/aws/requests/auto_scaling/describe_auto_scaling_groups.rb +17 -13
- data/lib/fog/aws/requests/auto_scaling/describe_auto_scaling_instances.rb +1 -1
- data/lib/fog/aws/requests/auto_scaling/describe_auto_scaling_notification_types.rb +55 -0
- data/lib/fog/aws/requests/auto_scaling/describe_metric_collection_types.rb +6 -5
- data/lib/fog/aws/requests/auto_scaling/describe_notification_configurations.rb +79 -0
- data/lib/fog/aws/requests/auto_scaling/describe_policies.rb +1 -1
- data/lib/fog/aws/requests/auto_scaling/describe_scaling_process_types.rb +4 -3
- data/lib/fog/aws/requests/auto_scaling/describe_tags.rb +74 -0
- data/lib/fog/aws/requests/auto_scaling/describe_termination_policy_types.rb +53 -0
- data/lib/fog/aws/requests/auto_scaling/disable_metrics_collection.rb +1 -1
- data/lib/fog/aws/requests/auto_scaling/enable_metrics_collection.rb +2 -2
- data/lib/fog/aws/requests/auto_scaling/put_notification_configuration.rb +30 -11
- data/lib/fog/aws/requests/auto_scaling/put_scaling_policy.rb +4 -4
- data/lib/fog/aws/requests/auto_scaling/put_scheduled_update_group_action.rb +8 -5
- data/lib/fog/aws/requests/auto_scaling/set_desired_capacity.rb +2 -2
- data/lib/fog/aws/requests/auto_scaling/set_instance_health.rb +2 -2
- data/lib/fog/aws/requests/auto_scaling/suspend_processes.rb +1 -1
- data/lib/fog/aws/requests/auto_scaling/update_auto_scaling_group.rb +30 -18
- data/lib/fog/aws/requests/cdn/delete_distribution.rb +31 -0
- data/lib/fog/aws/requests/cdn/delete_streaming_distribution.rb +30 -0
- data/lib/fog/aws/requests/cdn/get_distribution.rb +28 -0
- data/lib/fog/aws/requests/cdn/get_distribution_list.rb +29 -0
- data/lib/fog/aws/requests/cdn/get_invalidation.rb +60 -0
- data/lib/fog/aws/requests/cdn/get_invalidation_list.rb +41 -0
- data/lib/fog/aws/requests/cdn/get_streaming_distribution.rb +26 -0
- data/lib/fog/aws/requests/cdn/get_streaming_distribution_list.rb +30 -0
- data/lib/fog/aws/requests/cdn/post_distribution.rb +44 -0
- data/lib/fog/aws/requests/cdn/post_invalidation.rb +33 -0
- data/lib/fog/aws/requests/cdn/post_streaming_distribution.rb +44 -0
- data/lib/fog/aws/requests/cdn/put_distribution_config.rb +28 -0
- data/lib/fog/aws/requests/cdn/put_streaming_distribution_config.rb +28 -0
- data/lib/fog/aws/requests/compute/create_image.rb +32 -5
- data/lib/fog/aws/requests/compute/create_subnet.rb +3 -3
- data/lib/fog/aws/requests/compute/create_volume.rb +2 -2
- data/lib/fog/aws/requests/compute/register_image.rb +1 -1
- data/lib/fog/aws/requests/elasticache/describe_events.rb +7 -4
- data/lib/fog/aws/requests/glacier/create_archive.rb +1 -1
- data/lib/fog/aws/requests/glacier/initiate_multipart_upload.rb +1 -1
- data/lib/fog/aws/requests/rds/add_tags_to_resource.rb +46 -0
- data/lib/fog/aws/requests/rds/create_db_instance.rb +2 -0
- data/lib/fog/aws/requests/rds/create_db_subnet_group.rb +58 -0
- data/lib/fog/aws/requests/rds/describe_db_subnet_groups.rb +63 -0
- data/lib/fog/aws/requests/rds/describe_events.rb +52 -0
- data/lib/fog/aws/requests/rds/list_tags_for_resource.rb +44 -0
- data/lib/fog/aws/requests/rds/remove_tags_from_resource.rb +44 -0
- data/lib/fog/aws/sqs.rb +1 -1
- data/lib/fog/aws/storage.rb +1 -1
- data/lib/fog/bin/openstack.rb +5 -0
- data/lib/fog/bluebox/models/compute/server.rb +0 -19
- data/lib/fog/bluebox/requests/compute/create_block.rb +8 -8
- data/lib/fog/brightbox/compute.rb +56 -7
- data/lib/fog/brightbox/models/compute/accounts.rb +29 -0
- data/lib/fog/brightbox/models/compute/api_client.rb +37 -0
- data/lib/fog/brightbox/models/compute/api_clients.rb +24 -0
- data/lib/fog/brightbox/models/compute/application.rb +27 -0
- data/lib/fog/brightbox/models/compute/applications.rb +28 -0
- data/lib/fog/brightbox/models/compute/server.rb +3 -1
- data/lib/fog/brightbox/models/compute/users.rb +1 -3
- data/lib/fog/brightbox/requests/compute/create_application.rb +13 -0
- data/lib/fog/brightbox/requests/compute/create_cloud_ip.rb +2 -2
- data/lib/fog/brightbox/requests/compute/destroy_application.rb +14 -0
- data/lib/fog/brightbox/requests/compute/get_account.rb +28 -4
- data/lib/fog/brightbox/requests/compute/get_application.rb +14 -0
- data/lib/fog/brightbox/requests/compute/get_authenticated_user.rb +19 -0
- data/lib/fog/brightbox/requests/compute/get_scoped_account.rb +19 -0
- data/lib/fog/brightbox/requests/compute/get_user.rb +28 -5
- data/lib/fog/brightbox/requests/compute/list_accounts.rb +13 -0
- data/lib/fog/brightbox/requests/compute/list_applications.rb +13 -0
- data/lib/fog/brightbox/requests/compute/reset_secret_application.rb +14 -0
- data/lib/fog/brightbox/requests/compute/update_account.rb +51 -3
- data/lib/fog/brightbox/requests/compute/update_application.rb +15 -0
- data/lib/fog/brightbox/requests/compute/update_firewall_rule.rb +4 -2
- data/lib/fog/brightbox/requests/compute/update_scoped_account.rb +37 -0
- data/lib/fog/clodo/models/compute/server.rb +7 -44
- data/lib/fog/compute/models/server.rb +23 -2
- data/lib/fog/core/time.rb +2 -0
- data/lib/fog/core/wait_for.rb +0 -2
- data/lib/fog/ecloud/models/compute/servers.rb +3 -1
- data/lib/fog/ecloud/requests/compute/get_servers.rb +1 -1
- data/lib/fog/ecloud/requests/compute/get_tasks.rb +1 -1
- data/lib/fog/go_grid/models/compute/server.rb +0 -4
- data/lib/fog/google/storage.rb +1 -1
- data/lib/fog/hp/models/compute/server.rb +1 -23
- data/lib/fog/hp/storage.rb +0 -1
- data/lib/fog/joyent/models/compute/server.rb +4 -0
- data/lib/fog/joyent/models/compute/servers.rb +4 -3
- data/lib/fog/libvirt/models/compute/server.rb +1 -27
- data/lib/fog/linode/models/compute/server.rb +0 -1
- data/lib/fog/local/models/storage/directory.rb +1 -1
- data/lib/fog/network.rb +26 -0
- data/lib/fog/ninefold/compute.rb +8 -0
- data/lib/fog/ninefold/requests/compute/assign_to_load_balancer_rule.rb +13 -0
- data/lib/fog/ninefold/requests/compute/create_load_balancer_rule.rb +11 -0
- data/lib/fog/ninefold/requests/compute/delete_load_balancer_rule.rb +11 -0
- data/lib/fog/ninefold/requests/compute/list_load_balancer_rule_instances.rb +15 -0
- data/lib/fog/ninefold/requests/compute/list_load_balancer_rules.rb +14 -0
- data/lib/fog/ninefold/requests/compute/remove_from_load_balancer_rule.rb +12 -0
- data/lib/fog/ninefold/requests/compute/update_load_balancer_rule.rb +15 -0
- data/lib/fog/ninefold/storage.rb +14 -112
- data/lib/fog/openstack.rb +4 -1
- data/lib/fog/openstack/compute.rb +20 -1
- data/lib/fog/openstack/identity.rb +67 -18
- data/lib/fog/openstack/image.rb +12 -4
- data/lib/fog/openstack/models/compute/security_group.rb +1 -1
- data/lib/fog/openstack/models/compute/server.rb +5 -23
- data/lib/fog/openstack/models/identity/tenants.rb +5 -3
- data/lib/fog/openstack/models/identity/users.rb +4 -1
- data/lib/fog/openstack/models/image/image.rb +6 -1
- data/lib/fog/openstack/models/network/network.rb +46 -0
- data/lib/fog/openstack/models/network/networks.rb +34 -0
- data/lib/fog/openstack/models/network/port.rb +52 -0
- data/lib/fog/openstack/models/network/ports.rb +34 -0
- data/lib/fog/openstack/models/network/subnet.rb +55 -0
- data/lib/fog/openstack/models/network/subnets.rb +34 -0
- data/lib/fog/openstack/network.rb +234 -0
- data/lib/fog/openstack/requests/compute/attach_volume.rb +10 -0
- data/lib/fog/openstack/requests/compute/create_security_group.rb +15 -11
- data/lib/fog/openstack/requests/compute/create_security_group_rule.rb +17 -15
- data/lib/fog/openstack/requests/compute/create_server.rb +7 -1
- data/lib/fog/openstack/requests/compute/create_volume.rb +10 -10
- data/lib/fog/openstack/requests/compute/create_volume_snapshot.rb +16 -1
- data/lib/fog/openstack/requests/compute/detach_volume.rb +5 -0
- data/lib/fog/openstack/requests/compute/get_snapshot_details.rb +4 -4
- data/lib/fog/openstack/requests/compute/get_volume_details.rb +9 -9
- data/lib/fog/openstack/requests/compute/list_security_groups.rb +3 -3
- data/lib/fog/openstack/requests/compute/list_volumes.rb +14 -14
- data/lib/fog/openstack/requests/identity/create_tenant.rb +3 -3
- data/lib/fog/openstack/requests/identity/create_user.rb +1 -1
- data/lib/fog/openstack/requests/identity/delete_role.rb +1 -1
- data/lib/fog/openstack/requests/identity/get_tenant.rb +1 -1
- data/lib/fog/openstack/requests/identity/list_roles.rb +7 -0
- data/lib/fog/openstack/requests/image/create_image.rb +36 -38
- data/lib/fog/openstack/requests/image/delete_image.rb +0 -2
- data/lib/fog/openstack/requests/image/list_public_images.rb +7 -25
- data/lib/fog/openstack/requests/image/list_public_images_detailed.rb +2 -41
- data/lib/fog/openstack/requests/image/update_image.rb +26 -21
- data/lib/fog/openstack/requests/image/update_image_members.rb +37 -0
- data/lib/fog/openstack/requests/network/create_network.rb +44 -0
- data/lib/fog/openstack/requests/network/create_port.rb +52 -0
- data/lib/fog/openstack/requests/network/create_subnet.rb +56 -0
- data/lib/fog/openstack/requests/network/delete_network.rb +30 -0
- data/lib/fog/openstack/requests/network/delete_port.rb +30 -0
- data/lib/fog/openstack/requests/network/delete_subnet.rb +30 -0
- data/lib/fog/openstack/requests/network/get_network.rb +42 -0
- data/lib/fog/openstack/requests/network/get_port.rb +48 -0
- data/lib/fog/openstack/requests/network/get_subnet.rb +49 -0
- data/lib/fog/openstack/requests/network/list_networks.rb +27 -0
- data/lib/fog/openstack/requests/network/list_ports.rb +27 -0
- data/lib/fog/openstack/requests/network/list_subnets.rb +27 -0
- data/lib/fog/openstack/requests/network/set_tenant.rb +21 -0
- data/lib/fog/openstack/requests/network/update_network.rb +41 -0
- data/lib/fog/openstack/requests/network/update_port.rb +44 -0
- data/lib/fog/openstack/requests/network/update_subnet.rb +44 -0
- data/lib/fog/openstack/requests/volume/create_volume.rb +10 -10
- data/lib/fog/openstack/requests/volume/create_volume_snapshot.rb +16 -1
- data/lib/fog/openstack/requests/volume/get_snapshot_details.rb +6 -6
- data/lib/fog/openstack/requests/volume/get_volume_details.rb +10 -10
- data/lib/fog/openstack/requests/volume/list_volumes.rb +14 -14
- data/lib/fog/openstack/volume.rb +10 -0
- data/lib/fog/rackspace/models/compute/server.rb +1 -24
- data/lib/fog/rackspace/models/compute_v2/server.rb +4 -2
- data/lib/fog/rackspace/requests/compute_v2/create_server.rb +1 -1
- data/lib/fog/rackspace/requests/compute_v2/list_servers.rb +1 -1
- data/lib/fog/storm_on_demand/models/compute/server.rb +1 -5
- data/lib/fog/virtual_box/models/compute/server.rb +2 -44
- data/lib/fog/vmfusion/models/compute/server.rb +3 -36
- data/lib/fog/vsphere/models/compute/server.rb +1 -1
- data/lib/fog/vsphere/requests/compute/list_virtual_machines.rb +2 -31
- data/lib/fog/vsphere/requests/compute/vm_clone.rb +35 -7
- data/tests/aws/models/cdn/distribution_tests.rb +15 -0
- data/tests/aws/models/cdn/distributions_tests.rb +15 -0
- data/tests/aws/models/cdn/invalidation_tests.rb +32 -0
- data/tests/aws/models/cdn/invalidations_tests.rb +15 -0
- data/tests/aws/models/cdn/streaming_distribution_tests.rb +15 -0
- data/tests/aws/models/cdn/streaming_distributions_tests.rb +15 -0
- data/tests/aws/models/rds/tagging_tests.rb +20 -0
- data/tests/aws/requests/auto_scaling/auto_scaling_tests.rb +1 -11
- data/tests/aws/requests/auto_scaling/describe_types_tests.rb +102 -0
- data/tests/aws/requests/auto_scaling/helper.rb +47 -3
- data/tests/aws/requests/auto_scaling/notification_configuration_tests.rb +123 -0
- data/tests/aws/requests/auto_scaling/tag_tests.rb +62 -0
- data/tests/aws/requests/cdn/cdn_tests.rb +252 -0
- data/tests/aws/requests/compute/image_tests.rb +32 -1
- data/tests/aws/requests/compute/volume_tests.rb +3 -3
- data/tests/aws/requests/rds/describe_events.rb +16 -0
- data/tests/aws/requests/rds/helper.rb +26 -0
- data/tests/aws/requests/rds/subnet_groups_test.rb +48 -0
- data/tests/aws/requests/rds/tagging_tests.rb +78 -0
- data/tests/brightbox/requests/compute/account_tests.rb +24 -4
- data/tests/brightbox/requests/compute/application_test.rb +63 -0
- data/tests/brightbox/requests/compute/helper.rb +49 -1
- data/tests/helper.rb +4 -1
- data/tests/local/models/directory_tests.rb +16 -0
- data/tests/ninefold/requests/compute/helper.rb +53 -0
- data/tests/ninefold/requests/compute/load_balancer_tests.rb +66 -0
- data/tests/openstack/models/image/image_tests.rb +1 -0
- data/tests/openstack/models/network/network_tests.rb +24 -0
- data/tests/openstack/models/network/networks_tests.rb +21 -0
- data/tests/openstack/models/network/port_tests.rb +28 -0
- data/tests/openstack/models/network/ports_tests.rb +25 -0
- data/tests/openstack/models/network/subnet_tests.rb +30 -0
- data/tests/openstack/models/network/subnets_tests.rb +27 -0
- data/tests/openstack/requests/compute/image_tests.rb +3 -4
- data/tests/openstack/requests/compute/quota_tests.rb +2 -0
- data/tests/openstack/requests/compute/security_group_tests.rb +10 -10
- data/tests/openstack/requests/compute/server_tests.rb +3 -1
- data/tests/openstack/requests/compute/volume_tests.rb +11 -12
- data/tests/openstack/requests/identity/tenant_tests.rb +2 -1
- data/tests/openstack/requests/image/image_tests.rb +66 -45
- data/tests/openstack/requests/network/network_tests.rb +56 -0
- data/tests/openstack/requests/network/port_tests.rb +63 -0
- data/tests/openstack/requests/network/subnet_tests.rb +66 -0
- data/tests/rackspace/models/identity/user_tests.rb +1 -1
- data/tests/rackspace/models/identity/users_tests.rb +1 -1
- metadata +137 -13
- data/lib/fog/ninefold/models/storage/directories.rb +0 -48
- data/lib/fog/ninefold/models/storage/directory.rb +0 -53
- data/lib/fog/ninefold/models/storage/file.rb +0 -108
- data/lib/fog/ninefold/models/storage/files.rb +0 -73
- data/lib/fog/ninefold/requests/storage/delete_namespace.rb +0 -19
- data/lib/fog/ninefold/requests/storage/get_namespace.rb +0 -20
- data/lib/fog/ninefold/requests/storage/head_namespace.rb +0 -20
- data/lib/fog/ninefold/requests/storage/post_namespace.rb +0 -20
- data/lib/fog/ninefold/requests/storage/put_namespace.rb +0 -20
@@ -0,0 +1,40 @@
|
|
1
|
+
module Fog
|
2
|
+
module Parsers
|
3
|
+
module AWS
|
4
|
+
module RDS
|
5
|
+
require 'fog/aws/parsers/rds/base'
|
6
|
+
|
7
|
+
class EventListParser < Base
|
8
|
+
|
9
|
+
def reset
|
10
|
+
super
|
11
|
+
@response['Events'] = []
|
12
|
+
end
|
13
|
+
|
14
|
+
def start_element(name, attrs = [])
|
15
|
+
super
|
16
|
+
case name
|
17
|
+
when 'Event'; then @event = {}
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
def end_element(name)
|
23
|
+
case name
|
24
|
+
when 'Date'
|
25
|
+
@event[name] = DateTime.parse(value.strip)
|
26
|
+
when 'Message', 'SourceIdentifier', 'SourceType'
|
27
|
+
@event[name] = value ? value.strip : name
|
28
|
+
when 'Event'
|
29
|
+
@response['Events'] << @event unless @event.empty?
|
30
|
+
when 'IsTruncated', 'Marker', 'NextMarker'
|
31
|
+
@response[name] = value
|
32
|
+
else
|
33
|
+
super
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module Fog
|
2
|
+
module Parsers
|
3
|
+
module AWS
|
4
|
+
module RDS
|
5
|
+
|
6
|
+
class SubnetGroupParser < Fog::Parsers::Base
|
7
|
+
|
8
|
+
def reset
|
9
|
+
@db_subnet_group = fresh_subnet_group
|
10
|
+
end
|
11
|
+
|
12
|
+
def start_element(name, attrs = [])
|
13
|
+
super
|
14
|
+
end
|
15
|
+
|
16
|
+
def end_element(name)
|
17
|
+
case name
|
18
|
+
when 'VpcId' then @db_subnet_group['VpcId'] = value
|
19
|
+
when 'SubnetGroupStatus' then @db_subnet_group['SubnetGroupStatus'] = value
|
20
|
+
when 'DBSubnetGroupDescription' then @db_subnet_group['DBSubnetGroupDescription'] = value
|
21
|
+
when 'DBSubnetGroupName' then @db_subnet_group['DBSubnetGroupName'] = value
|
22
|
+
when 'SubnetIdentifier' then @db_subnet_group['Subnets'] << value
|
23
|
+
when 'Marker'
|
24
|
+
@response['DescribeDBSubnetGroupsResult']['Marker'] = value
|
25
|
+
when 'RequestId'
|
26
|
+
@response['ResponseMetadata'][name] = value
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def fresh_subnet_group
|
31
|
+
{'Subnets' => []}
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module Fog
|
2
|
+
module Parsers
|
3
|
+
module AWS
|
4
|
+
module RDS
|
5
|
+
# parses an XML-formatted list of resource tags from AWS
|
6
|
+
class TagListParser < Fog::Parsers::Base
|
7
|
+
|
8
|
+
# each tag is modeled as a String pair (2-element Array)
|
9
|
+
def reset
|
10
|
+
@this_key = nil
|
11
|
+
@this_value = nil
|
12
|
+
@tags = Hash.new
|
13
|
+
@response = {'ListTagsForResourceResult' => {'TagList' => {}}}
|
14
|
+
end
|
15
|
+
|
16
|
+
def end_element(name)
|
17
|
+
super
|
18
|
+
case name
|
19
|
+
when 'Tag'
|
20
|
+
@tags[@this_key] = @this_value
|
21
|
+
@this_key, @this_value = nil, nil
|
22
|
+
when 'Key'
|
23
|
+
@this_key = value
|
24
|
+
when 'Value'
|
25
|
+
@this_value = value
|
26
|
+
when 'TagList'
|
27
|
+
@response['ListTagsForResourceResult']['TagList'] = @tags
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
data/lib/fog/aws/rds.rb
CHANGED
@@ -6,14 +6,14 @@ module Fog
|
|
6
6
|
extend Fog::AWS::CredentialFetcher::ServiceMethods
|
7
7
|
|
8
8
|
class IdentifierTaken < Fog::Errors::Error; end
|
9
|
-
|
9
|
+
|
10
10
|
class AuthorizationAlreadyExists < Fog::Errors::Error; end
|
11
11
|
|
12
12
|
requires :aws_access_key_id, :aws_secret_access_key
|
13
13
|
recognizes :region, :host, :path, :port, :scheme, :persistent, :use_iam_profile, :aws_session_token, :aws_credentials_expire_at
|
14
14
|
|
15
15
|
request_path 'fog/aws/requests/rds'
|
16
|
-
|
16
|
+
request :describe_events
|
17
17
|
request :create_db_instance
|
18
18
|
request :modify_db_instance
|
19
19
|
request :describe_db_instances
|
@@ -23,11 +23,14 @@ module Fog
|
|
23
23
|
request :describe_db_engine_versions
|
24
24
|
request :describe_db_reserved_instances
|
25
25
|
|
26
|
+
request :add_tags_to_resource
|
27
|
+
request :list_tags_for_resource
|
28
|
+
request :remove_tags_from_resource
|
29
|
+
|
26
30
|
request :describe_db_snapshots
|
27
31
|
request :create_db_snapshot
|
28
32
|
request :delete_db_snapshot
|
29
33
|
|
30
|
-
|
31
34
|
request :create_db_parameter_group
|
32
35
|
request :delete_db_parameter_group
|
33
36
|
request :modify_db_parameter_group
|
@@ -44,6 +47,10 @@ module Fog
|
|
44
47
|
request :restore_db_instance_from_db_snapshot
|
45
48
|
request :restore_db_instance_to_point_in_time
|
46
49
|
|
50
|
+
request :create_db_subnet_group
|
51
|
+
request :describe_db_subnet_groups
|
52
|
+
# TODO: :delete_db_subnet_group, :modify_db_subnet_group
|
53
|
+
|
47
54
|
model_path 'fog/aws/models/rds'
|
48
55
|
model :server
|
49
56
|
collection :servers
|
@@ -58,6 +65,9 @@ module Fog
|
|
58
65
|
model :security_group
|
59
66
|
collection :security_groups
|
60
67
|
|
68
|
+
model :subnet_group
|
69
|
+
collection :subnet_groups
|
70
|
+
|
61
71
|
class Mock
|
62
72
|
|
63
73
|
def self.data
|
@@ -66,6 +76,7 @@ module Fog
|
|
66
76
|
region_hash[key] = {
|
67
77
|
:servers => {},
|
68
78
|
:security_groups => {},
|
79
|
+
:subnet_groups => {},
|
69
80
|
:snapshots => {},
|
70
81
|
:parameter_groups => {"default.mysql5.1" => { "DBParameterGroupFamily"=>"mysql5.1",
|
71
82
|
"Description"=>"Default parameter group for mysql5.1",
|
@@ -111,6 +122,8 @@ module Fog
|
|
111
122
|
end
|
112
123
|
|
113
124
|
class Real
|
125
|
+
attr_reader :region
|
126
|
+
|
114
127
|
include Fog::AWS::CredentialFetcher::ConnectionMethods
|
115
128
|
# Initialize connection to ELB
|
116
129
|
#
|
@@ -135,8 +148,8 @@ module Fog
|
|
135
148
|
setup_credentials(options)
|
136
149
|
@connection_options = options[:connection_options] || {}
|
137
150
|
|
138
|
-
options[:region]
|
139
|
-
@host
|
151
|
+
@region = options[:region] || 'us-east-1'
|
152
|
+
@host = options[:host] || "rds.#{@region}.amazonaws.com"
|
140
153
|
@path = options[:path] || '/'
|
141
154
|
@persistent = options[:persistent] || false
|
142
155
|
@port = options[:port] || 443
|
@@ -144,6 +157,10 @@ module Fog
|
|
144
157
|
@connection = Fog::Connection.new("#{@scheme}://#{@host}:#{@port}#{@path}", @persistent, @connection_options)
|
145
158
|
end
|
146
159
|
|
160
|
+
def owner_id
|
161
|
+
@owner_id ||= Fog::AWS[:rds].security_groups.get('default').owner_id
|
162
|
+
end
|
163
|
+
|
147
164
|
def reload
|
148
165
|
@connection.reset
|
149
166
|
end
|
@@ -156,7 +173,7 @@ module Fog
|
|
156
173
|
@aws_session_token = options[:aws_session_token]
|
157
174
|
@aws_credentials_expire_at = options[:aws_credentials_expire_at]
|
158
175
|
|
159
|
-
@hmac = Fog::HMAC.new('sha256', @aws_secret_access_key)
|
176
|
+
@hmac = Fog::HMAC.new('sha256', @aws_secret_access_key)
|
160
177
|
end
|
161
178
|
|
162
179
|
def request(params)
|
@@ -174,7 +191,7 @@ module Fog
|
|
174
191
|
:host => @host,
|
175
192
|
:path => @path,
|
176
193
|
:port => @port,
|
177
|
-
:version => '2012-
|
194
|
+
:version => '2012-09-17' #'2011-04-01'
|
178
195
|
}
|
179
196
|
)
|
180
197
|
|
@@ -23,20 +23,36 @@ module Fog
|
|
23
23
|
# * 'DefaultCooldown'<~Integer> - The amount of time, in seconds,
|
24
24
|
# after a scaling activity completes before any further trigger-
|
25
25
|
# related scaling activities can start.
|
26
|
-
# * 'DesiredCapacity'<~Integer> - The number of EC2 instances
|
27
|
-
# should be running in the group.
|
28
|
-
# set_desired_capacity.
|
26
|
+
# * 'DesiredCapacity'<~Integer> - The number of Amazon EC2 instances
|
27
|
+
# that should be running in the group.
|
29
28
|
# * 'HealthCheckGracePeriod'<~Integer> - Length of time in seconds
|
30
|
-
# after a new EC2 instance comes into service that Auto
|
31
|
-
# starts checking its health.
|
29
|
+
# after a new Amazon EC2 instance comes into service that Auto
|
30
|
+
# Scaling starts checking its health.
|
32
31
|
# * 'HealthCheckType'<~String> - The service you want the health
|
33
32
|
# status from, Amazon EC2 or Elastic Load Balancer. Valid values
|
34
33
|
# are "EC2" or "ELB".
|
35
34
|
# * 'LoadBalancerNames'<~Array> - A list of LoadBalancers to use.
|
36
35
|
# * 'PlacementGroup'<~String> - Physical location of your cluster
|
37
36
|
# placement group created in Amazon EC2.
|
38
|
-
# * '
|
39
|
-
#
|
37
|
+
# * 'Tags'<~Array>:
|
38
|
+
# * tag<~Hash>:
|
39
|
+
# * 'Key'<~String> - The key of the tag.
|
40
|
+
# * 'PropagateAtLaunch'<~Boolean> - Specifies whether the new tag
|
41
|
+
# will be applied to instances launched after the tag is
|
42
|
+
# created. The same behavior applies to updates: If you change
|
43
|
+
# a tag, the changed tag will be applied to all instances
|
44
|
+
# launched after you made the change.
|
45
|
+
# * 'ResourceId'<~String>: The name of the AutoScaling group.
|
46
|
+
# * 'ResourceType'<~String>: The kind of resource to which the
|
47
|
+
# tag is applied. Currently, Auto Scaling supports the
|
48
|
+
# auto-scaling-group resource type.
|
49
|
+
# * 'Value'<~String>: The value of the tag.
|
50
|
+
# * 'TerminationPolicies'<~Array> - A standalone termination policy
|
51
|
+
# or a list of termination policies used to select the instance to
|
52
|
+
# terminate. The policies are executed in the order that they are
|
53
|
+
# listed.
|
54
|
+
# * 'VPCZoneIdentifier'<~String> - A comma-separated list of subnet
|
55
|
+
# identifiers of Amazon Virtual Private Clouds (Amazon VPCs).
|
40
56
|
#
|
41
57
|
# ==== Returns
|
42
58
|
# * response<~Excon::Response>:
|
@@ -56,10 +72,13 @@ module Fog
|
|
56
72
|
if tags = options.delete('Tags')
|
57
73
|
tags.each_with_index do |tag, i|
|
58
74
|
tag.each do |key, value|
|
59
|
-
options["Tags.member.#{i
|
75
|
+
options["Tags.member.#{i+1}.#{key}"] = value unless value.nil?
|
60
76
|
end
|
61
77
|
end
|
62
78
|
end
|
79
|
+
if termination_policies = options.delete('TerminationPolicies')
|
80
|
+
options.merge!(AWS.indexed_param('TerminationPolicies.member.%d', [*termination_policies]))
|
81
|
+
end
|
63
82
|
request({
|
64
83
|
'Action' => 'CreateAutoScalingGroup',
|
65
84
|
'AutoScalingGroupName' => auto_scaling_group_name,
|
@@ -75,18 +94,18 @@ module Fog
|
|
75
94
|
class Mock
|
76
95
|
|
77
96
|
def create_auto_scaling_group(auto_scaling_group_name, availability_zones, launch_configuration_name, max_size, min_size, options = {})
|
78
|
-
if data[:auto_scaling_groups].has_key?(auto_scaling_group_name)
|
97
|
+
if self.data[:auto_scaling_groups].has_key?(auto_scaling_group_name)
|
79
98
|
raise Fog::AWS::AutoScaling::IdentifierTaken.new("AutoScalingGroup by this name already exists - A group with the name #{auto_scaling_group_name} already exists")
|
80
99
|
end
|
81
|
-
unless data[:launch_configurations].has_key?(launch_configuration_name)
|
100
|
+
unless self.data[:launch_configurations].has_key?(launch_configuration_name)
|
82
101
|
raise Fog::AWS::AutoScaling::ValidationError.new('Launch configuration name not found - null')
|
83
102
|
end
|
84
|
-
data[:auto_scaling_groups][auto_scaling_group_name] = {
|
85
|
-
'AutoScalingGroupARN' =>
|
86
|
-
'AutoScalingGroupName' =>
|
87
|
-
'AvailabilityZones' => availability_zones
|
103
|
+
self.data[:auto_scaling_groups][auto_scaling_group_name] = {
|
104
|
+
'AutoScalingGroupARN' => Fog::AWS::Mock.arn('autoscaling', self.data[:owner_id], "autoScalingGroup:00000000-0000-0000-0000-000000000000:autoScalingGroupName/#{auto_scaling_group_name}", @region),
|
105
|
+
'AutoScalingGroupName' => auto_scaling_group_name,
|
106
|
+
'AvailabilityZones' => [*availability_zones],
|
88
107
|
'CreatedTime' => Time.now.utc,
|
89
|
-
'DefaultCooldown' =>
|
108
|
+
'DefaultCooldown' => 300,
|
90
109
|
'DesiredCapacity' => 0,
|
91
110
|
'EnabledMetrics' => [],
|
92
111
|
'HealthCheckGracePeriod' => 0,
|
@@ -98,7 +117,8 @@ module Fog
|
|
98
117
|
'MinSize' => min_size,
|
99
118
|
'PlacementGroup' => nil,
|
100
119
|
'SuspendedProcesses' => [],
|
101
|
-
'
|
120
|
+
'Tags' => [],
|
121
|
+
'TerminationPolicies' => ['Default'],
|
102
122
|
'VPCZoneIdentifier' => nil
|
103
123
|
}.merge!(options)
|
104
124
|
|
@@ -6,7 +6,7 @@ module Fog
|
|
6
6
|
|
7
7
|
require 'fog/aws/parsers/auto_scaling/basic'
|
8
8
|
|
9
|
-
# Creates a new launch configuration.
|
9
|
+
# Creates a new launch configuration. When created, the new launch
|
10
10
|
# configuration is available for immediate use.
|
11
11
|
#
|
12
12
|
# ==== Parameters
|
@@ -23,17 +23,24 @@ module Fog
|
|
23
23
|
# * 'Ebs.VolumeSize'<~Integer> - The volume size, in GigaBytes.
|
24
24
|
# * 'VirtualName'<~String> - The virtual name associated with the
|
25
25
|
# device.
|
26
|
-
# * 'IamInstanceProfile'<~String> The name or the Amazon Resource
|
27
|
-
#
|
26
|
+
# * 'IamInstanceProfile'<~String> The name or the Amazon Resource
|
27
|
+
# Name (ARN) of the instance profile associated with the IAM role
|
28
|
+
# for the instance.
|
29
|
+
# * 'InstanceMonitoring.Enabled'<~Boolean> - Enables detailed
|
30
|
+
# monitoring, which is enabled by default.
|
28
31
|
# * 'KernelId'<~String> - The ID of the kernel associated with the
|
29
|
-
# EC2 AMI.
|
30
|
-
# * 'KeyName'<~String> - The name of the EC2 key pair.
|
32
|
+
# Amazon EC2 AMI.
|
33
|
+
# * 'KeyName'<~String> - The name of the Amazon EC2 key pair.
|
31
34
|
# * 'RamdiskId'<~String> - The ID of the RAM disk associated with the
|
32
|
-
# EC2 AMI.
|
35
|
+
# Amazon EC2 AMI.
|
33
36
|
# * 'SecurityGroups'<~Array> - The names of the security groups with
|
34
|
-
# which to associate EC2 instances.
|
35
|
-
# * '
|
36
|
-
#
|
37
|
+
# which to associate Amazon EC2 or Amazon VPC instances.
|
38
|
+
# * 'SpotPrice'<~String> - The maximum hourly price to be paid for
|
39
|
+
# any Spot Instance launched to fulfill the request. Spot Instances
|
40
|
+
# are launched when the price you specify exceeds the current Spot
|
41
|
+
# market price.
|
42
|
+
# * 'UserData'<~String> - The user data available to the launched
|
43
|
+
# Amazon EC2 instances.
|
37
44
|
#
|
38
45
|
# ==== Returns
|
39
46
|
# * response<~Excon::Response>:
|
@@ -72,10 +79,10 @@ module Fog
|
|
72
79
|
class Mock
|
73
80
|
|
74
81
|
def create_launch_configuration(image_id, instance_type, launch_configuration_name, options = {})
|
75
|
-
if data[:launch_configurations].has_key?(launch_configuration_name)
|
82
|
+
if self.data[:launch_configurations].has_key?(launch_configuration_name)
|
76
83
|
raise Fog::AWS::AutoScaling::IdentifierTaken.new("Launch Configuration by this name already exists - A launch configuration already exists with the name #{launch_configuration_name}")
|
77
84
|
end
|
78
|
-
data[:launch_configurations][launch_configuration_name] = {
|
85
|
+
self.data[:launch_configurations][launch_configuration_name] = {
|
79
86
|
'BlockDeviceMappings' => [],
|
80
87
|
'CreatedTime' => Time.now.utc,
|
81
88
|
'ImageId' => image_id,
|
@@ -83,7 +90,7 @@ module Fog
|
|
83
90
|
'InstanceType' => instance_type,
|
84
91
|
'KernelId' => nil,
|
85
92
|
'KeyName' => nil,
|
86
|
-
'LaunchConfigurationARN' =>
|
93
|
+
'LaunchConfigurationARN' => Fog::AWS::Mock.arn('autoscaling', self.data[:owner_id], "launchConfiguration:00000000-0000-0000-0000-000000000000:launchConfigurationName/#{launch_configuration_name}", @region),
|
87
94
|
'LaunchConfigurationName' => launch_configuration_name,
|
88
95
|
'RamdiskId' => nil,
|
89
96
|
'SecurityGroups' => [],
|
@@ -0,0 +1,63 @@
|
|
1
|
+
module Fog
|
2
|
+
module AWS
|
3
|
+
class AutoScaling
|
4
|
+
|
5
|
+
class Real
|
6
|
+
|
7
|
+
require 'fog/aws/parsers/auto_scaling/basic'
|
8
|
+
|
9
|
+
# Creates new tags or updates existing tags for an Auto Scaling group.
|
10
|
+
#
|
11
|
+
# ==== Parameters
|
12
|
+
# * tags<~Array>:
|
13
|
+
# * tag<~Hash>:
|
14
|
+
# * Key<~String> - The key of the tag.
|
15
|
+
# * PropagateAtLaunch<~Boolean> - Specifies whether the new tag
|
16
|
+
# will be applied to instances launched after the tag is created.
|
17
|
+
# The same behavior applies to updates: If you change a tag, the
|
18
|
+
# changed tag will be applied to all instances launched after you
|
19
|
+
# made the change.
|
20
|
+
# * ResourceId<~String> - The name of the Auto Scaling group.
|
21
|
+
# * ResourceType<~String> - The kind of resource to which the tag
|
22
|
+
# is applied. Currently, Auto Scaling supports the
|
23
|
+
# auto-scaling-group resource type.
|
24
|
+
# * Value<~String> - The value of the tag.
|
25
|
+
#
|
26
|
+
# ==== Returns
|
27
|
+
# * response<~Excon::Response>:
|
28
|
+
# * body<~Hash>:
|
29
|
+
# * 'ResponseMetadata'<~Hash>:
|
30
|
+
# * 'RequestId'<~String> - Id of request
|
31
|
+
#
|
32
|
+
# ==== See Also
|
33
|
+
# http://docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_CreateOrUpdateTags.html
|
34
|
+
#
|
35
|
+
def create_or_update_tags(tags)
|
36
|
+
params = {}
|
37
|
+
tags.each_with_index do |tag, i|
|
38
|
+
tag.each do |key, value|
|
39
|
+
params["Tags.member.#{i+1}.#{key}"] = value unless value.nil?
|
40
|
+
end
|
41
|
+
end
|
42
|
+
request({
|
43
|
+
'Action' => 'CreateOrUpdateTags',
|
44
|
+
:parser => Fog::Parsers::AWS::AutoScaling::Basic.new
|
45
|
+
}.merge!(params))
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
|
50
|
+
class Mock
|
51
|
+
|
52
|
+
def create_or_update_tags(tags)
|
53
|
+
if tags.to_a.empty?
|
54
|
+
raise Fog::AWS::AutoScaling::ValidationError.new("1 validation error detected: Value null at 'tags' failed to satisfy constraint: Member must not be null")
|
55
|
+
end
|
56
|
+
raise Fog::Mock::NotImplementedError
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
@@ -12,6 +12,11 @@ module Fog
|
|
12
12
|
# ==== Parameters
|
13
13
|
# * auto_scaling_group_name<~String> - The name of the Auto Scaling
|
14
14
|
# group.
|
15
|
+
# * options<~Hash>:
|
16
|
+
# * 'ForceDelete'<~Boolean> - Starting with API version 2011-01-01,
|
17
|
+
# specifies that the Auto Scaling group will be deleted along with
|
18
|
+
# all instances associated with the group, without waiting for all
|
19
|
+
# instances to be terminated.
|
15
20
|
#
|
16
21
|
# ==== Returns
|
17
22
|
# * response<~Excon::Response>:
|
@@ -22,23 +27,25 @@ module Fog
|
|
22
27
|
# ==== See Also
|
23
28
|
# http://docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_DeleteAutoScalingGroup.html
|
24
29
|
#
|
25
|
-
def delete_auto_scaling_group(auto_scaling_group_name)
|
30
|
+
def delete_auto_scaling_group(auto_scaling_group_name, options = {})
|
26
31
|
request({
|
27
32
|
'Action' => 'DeleteAutoScalingGroup',
|
28
33
|
'AutoScalingGroupName' => auto_scaling_group_name,
|
29
34
|
:parser => Fog::Parsers::AWS::AutoScaling::Basic.new
|
30
|
-
})
|
35
|
+
}.merge!(options))
|
31
36
|
end
|
32
37
|
|
33
38
|
end
|
34
39
|
|
35
40
|
class Mock
|
36
41
|
|
37
|
-
def delete_auto_scaling_group(auto_scaling_group_name)
|
42
|
+
def delete_auto_scaling_group(auto_scaling_group_name, options = {})
|
38
43
|
unless self.data[:auto_scaling_groups].delete(auto_scaling_group_name)
|
39
44
|
raise Fog::AWS::AutoScaling::ValidationError, "The auto scaling group '#{auto_scaling_group_name}' does not exist."
|
40
45
|
end
|
41
46
|
|
47
|
+
self.data[:notification_configurations].delete(auto_scaling_group_name)
|
48
|
+
|
42
49
|
response = Excon::Response.new
|
43
50
|
response.status = 200
|
44
51
|
response.body = {
|