fog 1.4.0 → 1.5.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +1 -1
- data/.irbrc +5 -10
- data/{README.rdoc → README.md} +66 -61
- data/Rakefile +4 -6
- data/changelog.txt +491 -0
- data/docs/about/users.markdown +1 -0
- data/fog.gemspec +4 -4
- data/lib/fog.rb +1 -1
- data/lib/fog/aws.rb +4 -0
- data/lib/fog/aws/auto_scaling.rb +3 -0
- data/lib/fog/aws/cloud_watch.rb +28 -0
- data/lib/fog/aws/compute.rb +7 -1
- data/lib/fog/aws/elasticache.rb +64 -6
- data/lib/fog/aws/models/auto_scaling/configuration.rb +3 -1
- data/lib/fog/aws/models/auto_scaling/group.rb +10 -9
- data/lib/fog/aws/models/auto_scaling/policies.rb +33 -0
- data/lib/fog/aws/models/auto_scaling/policy.rb +46 -0
- data/lib/fog/aws/models/cloud_watch/alarm.rb +50 -2
- data/lib/fog/aws/models/cloud_watch/alarms.rb +18 -1
- data/lib/fog/aws/models/compute/address.rb +2 -2
- data/lib/fog/aws/models/dns/records.rb +5 -0
- data/lib/fog/aws/models/elasticache/cluster.rb +1 -1
- data/lib/fog/aws/models/iam/users.rb +26 -4
- data/lib/fog/aws/parsers/auto_scaling/describe_policies.rb +7 -5
- data/lib/fog/aws/parsers/elb/describe_load_balancers.rb +1 -1
- data/lib/fog/aws/rds.rb +1 -1
- data/lib/fog/aws/requests/auto_scaling/create_auto_scaling_group.rb +8 -0
- data/lib/fog/aws/requests/auto_scaling/create_launch_configuration.rb +1 -2
- data/lib/fog/aws/requests/auto_scaling/delete_auto_scaling_group.rb +10 -2
- data/lib/fog/aws/requests/auto_scaling/delete_launch_configuration.rb +1 -1
- data/lib/fog/aws/requests/auto_scaling/delete_policy.rb +10 -1
- data/lib/fog/aws/requests/auto_scaling/describe_auto_scaling_instances.rb +0 -1
- data/lib/fog/aws/requests/auto_scaling/describe_policies.rb +13 -1
- data/lib/fog/aws/requests/auto_scaling/put_scaling_policy.rb +20 -1
- data/lib/fog/aws/requests/auto_scaling/update_auto_scaling_group.rb +1 -1
- data/lib/fog/aws/requests/cloud_watch/delete_alarms.rb +19 -1
- data/lib/fog/aws/requests/cloud_watch/describe_alarms.rb +20 -2
- data/lib/fog/aws/requests/cloud_watch/put_metric_alarm.rb +9 -0
- data/lib/fog/aws/requests/compute/allocate_address.rb +4 -5
- data/lib/fog/aws/requests/compute/create_dhcp_options.rb +6 -5
- data/lib/fog/aws/requests/compute/create_internet_gateway.rb +7 -6
- data/lib/fog/aws/requests/compute/create_subnet.rb +11 -10
- data/lib/fog/aws/requests/compute/create_vpc.rb +8 -7
- data/lib/fog/aws/requests/compute/delete_dhcp_options.rb +1 -0
- data/lib/fog/aws/requests/compute/delete_internet_gateway.rb +1 -0
- data/lib/fog/aws/requests/compute/delete_subnet.rb +1 -0
- data/lib/fog/aws/requests/compute/delete_vpc.rb +2 -1
- data/lib/fog/aws/requests/compute/describe_availability_zones.rb +1 -0
- data/lib/fog/aws/requests/compute/describe_dhcp_options.rb +1 -8
- data/lib/fog/aws/requests/compute/describe_instances.rb +3 -1
- data/lib/fog/aws/requests/compute/describe_internet_gateways.rb +1 -8
- data/lib/fog/aws/requests/compute/describe_subnets.rb +1 -9
- data/lib/fog/aws/requests/compute/describe_vpcs.rb +1 -8
- data/lib/fog/aws/requests/compute/release_address.rb +12 -4
- data/lib/fog/aws/requests/compute/start_instances.rb +1 -0
- data/lib/fog/aws/requests/compute/stop_instances.rb +1 -0
- data/lib/fog/aws/requests/elasticache/create_cache_cluster.rb +26 -2
- data/lib/fog/aws/requests/elasticache/delete_cache_cluster.rb +10 -1
- data/lib/fog/aws/requests/elasticache/describe_cache_clusters.rb +16 -1
- data/lib/fog/aws/requests/elasticache/modify_cache_cluster.rb +35 -3
- data/lib/fog/aws/requests/elasticache/reboot_cache_cluster.rb +10 -2
- data/lib/fog/aws/requests/elb/create_load_balancer.rb +1 -1
- data/lib/fog/aws/requests/rds/describe_db_instances.rb +3 -3
- data/lib/fog/aws/sqs.rb +1 -1
- data/lib/fog/aws/storage.rb +1 -1
- data/lib/fog/bin/rackspace.rb +4 -0
- data/lib/fog/cloudstack/compute.rb +25 -18
- data/lib/fog/cloudstack/models/compute/image.rb +34 -34
- data/lib/fog/cloudstack/models/compute/job.rb +14 -1
- data/lib/fog/cloudstack/models/compute/jobs.rb +1 -1
- data/lib/fog/cloudstack/models/compute/security_group.rb +50 -0
- data/lib/fog/cloudstack/models/compute/security_group_rule.rb +62 -0
- data/lib/fog/cloudstack/models/compute/security_group_rules.rb +37 -0
- data/lib/fog/cloudstack/models/compute/security_groups.rb +27 -0
- data/lib/fog/cloudstack/models/compute/server.rb +63 -39
- data/lib/fog/cloudstack/models/compute/volume.rb +3 -7
- data/lib/fog/cloudstack/models/compute/zone.rb +1 -2
- data/lib/fog/cloudstack/requests/compute/assign_virtual_machine.rb +18 -0
- data/lib/fog/cloudstack/requests/compute/authorize_security_group_egress.rb +68 -0
- data/lib/fog/cloudstack/requests/compute/authorize_security_group_ingress.rb +55 -4
- data/lib/fog/cloudstack/requests/compute/create_security_group.rb +12 -4
- data/lib/fog/cloudstack/requests/compute/create_zone.rb +20 -0
- data/lib/fog/cloudstack/requests/compute/delete_security_group.rb +17 -0
- data/lib/fog/cloudstack/requests/compute/destroy_virtual_machine.rb +23 -1
- data/lib/fog/cloudstack/requests/compute/list_firewall_rules.rb +15 -0
- data/lib/fog/cloudstack/requests/compute/list_security_groups.rb +22 -4
- data/lib/fog/cloudstack/requests/compute/query_async_job_result.rb +15 -3
- data/lib/fog/cloudstack/requests/compute/revoke_security_group_egress.rb +42 -0
- data/lib/fog/cloudstack/requests/compute/revoke_security_group_ingress.rb +29 -3
- data/lib/fog/core.rb +1 -0
- data/lib/fog/core/attributes.rb +1 -1
- data/lib/fog/core/current_machine.rb +2 -2
- data/lib/fog/core/scp.rb +8 -0
- data/lib/fog/core/ssh.rb +8 -0
- data/lib/fog/dynect/dns.rb +14 -5
- data/lib/fog/ibm/requests/compute/create_instance.rb +1 -1
- data/lib/fog/libvirt/requests/compute/create_volume.rb +1 -1
- data/lib/fog/libvirt/requests/compute/list_volumes.rb +1 -1
- data/lib/fog/local/models/storage/file.rb +12 -1
- data/lib/fog/local/storage.rb +25 -1
- data/lib/fog/ninefold/compute.rb +1 -0
- data/lib/fog/openstack.rb +3 -1
- data/lib/fog/openstack/compute.rb +13 -2
- data/lib/fog/openstack/models/compute/servers.rb +10 -2
- data/lib/fog/openstack/requests/compute/create_flavor.rb +2 -2
- data/lib/fog/openstack/requests/compute/create_security_group.rb +1 -1
- data/lib/fog/openstack/requests/compute/create_server.rb +1 -1
- data/lib/fog/openstack/requests/compute/create_volume.rb +1 -1
- data/lib/fog/openstack/requests/compute/get_flavor_details.rb +7 -7
- data/lib/fog/openstack/requests/compute/get_quota.rb +1 -12
- data/lib/fog/openstack/requests/compute/get_quota_defaults.rb +1 -12
- data/lib/fog/openstack/requests/compute/get_volume_details.rb +1 -1
- data/lib/fog/openstack/requests/compute/list_flavors.rb +7 -7
- data/lib/fog/openstack/requests/compute/list_flavors_detail.rb +7 -7
- data/lib/fog/openstack/requests/compute/list_security_groups.rb +7 -7
- data/lib/fog/openstack/requests/compute/list_servers_detail.rb +4 -3
- data/lib/fog/openstack/requests/compute/list_volumes.rb +6 -8
- data/lib/fog/openstack/requests/compute/update_quota.rb +2 -15
- data/lib/fog/openstack/requests/identity/delete_role.rb +1 -1
- data/lib/fog/openstack/requests/identity/list_roles.rb +1 -1
- data/lib/fog/openstack/requests/image/create_image.rb +3 -1
- data/lib/fog/openstack/requests/image/list_public_images.rb +19 -1
- data/lib/fog/openstack/requests/image/list_public_images_detailed.rb +20 -2
- data/lib/fog/openstack/requests/image/update_image.rb +1 -1
- data/lib/fog/rackspace.rb +2 -0
- data/lib/fog/rackspace/databases.rb +121 -0
- data/lib/fog/rackspace/identity.rb +83 -0
- data/lib/fog/rackspace/load_balancers.rb +3 -0
- data/lib/fog/rackspace/models/databases/database.rb +32 -0
- data/lib/fog/rackspace/models/databases/databases.rb +31 -0
- data/lib/fog/rackspace/models/databases/flavor.rb +15 -0
- data/lib/fog/rackspace/models/databases/flavors.rb +25 -0
- data/lib/fog/rackspace/models/databases/instance.rb +104 -0
- data/lib/fog/rackspace/models/databases/instances.rb +25 -0
- data/lib/fog/rackspace/models/databases/user.rb +32 -0
- data/lib/fog/rackspace/models/databases/users.rb +31 -0
- data/lib/fog/rackspace/models/identity/credential.rb +13 -0
- data/lib/fog/rackspace/models/identity/credentials.rb +32 -0
- data/lib/fog/rackspace/models/identity/role.rb +14 -0
- data/lib/fog/rackspace/models/identity/roles.rb +32 -0
- data/lib/fog/rackspace/models/identity/tenant.rb +15 -0
- data/lib/fog/rackspace/models/identity/tenants.rb +28 -0
- data/lib/fog/rackspace/models/identity/user.rb +53 -0
- data/lib/fog/rackspace/models/identity/users.rb +36 -0
- data/lib/fog/rackspace/models/load_balancers/load_balancer.rb +17 -0
- data/lib/fog/rackspace/requests/databases/check_root_user.rb +15 -0
- data/lib/fog/rackspace/requests/databases/create_database.rb +24 -0
- data/lib/fog/rackspace/requests/databases/create_instance.rb +26 -0
- data/lib/fog/rackspace/requests/databases/create_user.rb +24 -0
- data/lib/fog/rackspace/requests/databases/delete_database.rb +15 -0
- data/lib/fog/rackspace/requests/databases/delete_instance.rb +15 -0
- data/lib/fog/rackspace/requests/databases/delete_user.rb +15 -0
- data/lib/fog/rackspace/requests/databases/enable_root_user.rb +15 -0
- data/lib/fog/rackspace/requests/databases/get_flavor.rb +15 -0
- data/lib/fog/rackspace/requests/databases/get_instance.rb +15 -0
- data/lib/fog/rackspace/requests/databases/list_databases.rb +15 -0
- data/lib/fog/rackspace/requests/databases/list_flavors.rb +15 -0
- data/lib/fog/rackspace/requests/databases/list_instances.rb +15 -0
- data/lib/fog/rackspace/requests/databases/list_users.rb +15 -0
- data/lib/fog/rackspace/requests/databases/resize_instance.rb +22 -0
- data/lib/fog/rackspace/requests/databases/resize_instance_volume.rb +24 -0
- data/lib/fog/rackspace/requests/databases/restart_instance.rb +20 -0
- data/lib/fog/rackspace/requests/identity/create_token.rb +25 -0
- data/lib/fog/rackspace/requests/identity/create_user.rb +25 -0
- data/lib/fog/rackspace/requests/identity/delete_user.rb +15 -0
- data/lib/fog/rackspace/requests/identity/get_credentials.rb +15 -0
- data/lib/fog/rackspace/requests/identity/get_user_by_id.rb +15 -0
- data/lib/fog/rackspace/requests/identity/get_user_by_name.rb +15 -0
- data/lib/fog/rackspace/requests/identity/list_credentials.rb +22 -0
- data/lib/fog/rackspace/requests/identity/list_tenants.rb +22 -0
- data/lib/fog/rackspace/requests/identity/list_user_roles.rb +22 -0
- data/lib/fog/rackspace/requests/identity/list_users.rb +22 -0
- data/lib/fog/rackspace/requests/identity/update_user.rb +24 -0
- data/lib/fog/rackspace/requests/load_balancers/get_ssl_termination.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/remove_ssl_termination.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/set_ssl_termination.rb +31 -0
- data/lib/fog/rackspace/storage.rb +1 -1
- data/lib/fog/vsphere/models/compute/server.rb +1 -0
- data/lib/fog/vsphere/requests/compute/vm_clone.rb +2 -2
- data/tests/aws/models/compute/address_tests.rb +2 -1
- data/tests/aws/models/compute/volume_tests.rb +1 -1
- data/tests/aws/models/dns/records_tests.rb +19 -1
- data/tests/aws/models/storage/directory_tests.rb +1 -1
- data/tests/aws/models/storage/url_tests.rb +7 -1
- data/tests/aws/requests/auto_scaling/auto_scaling_tests.rb +4 -2
- data/tests/aws/requests/compute/address_tests.rb +19 -1
- data/tests/aws/requests/elasticache/cache_cluster_tests.rb +4 -4
- data/tests/aws/requests/elb/helper.rb +13 -2
- data/tests/aws/requests/iam/access_key_tests.rb +1 -3
- data/tests/cloudstack/compute/models/security_group_rule_tests.rb +29 -0
- data/tests/cloudstack/compute/models/security_group_tests.rb +16 -0
- data/tests/cloudstack/compute/models/security_groups_tests.rb +19 -0
- data/tests/cloudstack/compute/models/server_tests.rb +18 -0
- data/tests/cloudstack/compute/models/volume_tests.rb +34 -0
- data/tests/cloudstack/compute/models/volumes_tests.rb +17 -0
- data/tests/compute/helper.rb +10 -3
- data/tests/core/current_machine_tests.rb +32 -0
- data/tests/helper.rb +1 -1
- data/tests/helpers/mock_helper.rb +3 -0
- data/tests/hp/requests/compute/address_tests.rb +2 -1
- data/tests/joyent/requests/compute/datasets_tests.rb +12 -3
- data/tests/local/models/file_tests.rb +43 -0
- data/tests/local/storage_tests.rb +40 -0
- data/tests/openstack/requests/compute/flavor_tests.rb +1 -1
- data/tests/openstack/requests/compute/server_tests.rb +3 -3
- data/tests/openstack/requests/compute/volume_tests.rb +1 -1
- data/tests/openstack/requests/identity/role_tests.rb +1 -1
- data/tests/rackspace/databases_tests.rb +26 -0
- data/tests/rackspace/models/databases/database_tests.rb +17 -0
- data/tests/rackspace/models/databases/databases_tests.rb +17 -0
- data/tests/rackspace/models/databases/flavors_tests.rb +20 -0
- data/tests/rackspace/models/databases/instance_tests.rb +43 -0
- data/tests/rackspace/models/databases/instances_tests.rb +14 -0
- data/tests/rackspace/models/databases/user_tests.rb +21 -0
- data/tests/rackspace/models/databases/users_tests.rb +21 -0
- data/tests/rackspace/models/identity/credentials_tests.rb +16 -0
- data/tests/rackspace/models/identity/roles_tests.rb +16 -0
- data/tests/rackspace/models/identity/tenants_tests.rb +21 -0
- data/tests/rackspace/models/identity/user_tests.rb +17 -0
- data/tests/rackspace/models/identity/users_tests.rb +17 -0
- data/tests/rackspace/models/load_balancers/load_balancer_tests.rb +20 -0
- data/tests/rackspace/requests/databases/database_tests.rb +36 -0
- data/tests/rackspace/requests/databases/flavor_tests.rb +16 -0
- data/tests/rackspace/requests/databases/helper.rb +84 -0
- data/tests/rackspace/requests/databases/instance_tests.rb +77 -0
- data/tests/rackspace/requests/databases/user_tests.rb +37 -0
- data/tests/rackspace/requests/identity/tenants_tests.rb +21 -0
- data/tests/rackspace/requests/identity/token_tests.rb +63 -0
- data/tests/rackspace/requests/identity/user_tests.rb +107 -0
- data/tests/rackspace/requests/load_balancers/helper.rb +70 -1
- data/tests/rackspace/requests/load_balancers/ssl_termination_tests.rb +38 -0
- data/tests/storage/models/file_tests.rb +1 -1
- metadata +129 -13
- data/spec/core/current_machine_spec.rb +0 -32
- data/spec/lib/fog/aws/parsers/sqs/receive_message_spec.rb +0 -58
- data/spec/spec_helper.rb +0 -8
@@ -22,7 +22,7 @@ module Fog
|
|
22
22
|
def destroy
|
23
23
|
requires :public_ip
|
24
24
|
|
25
|
-
connection.release_address(public_ip)
|
25
|
+
connection.release_address(allocation_id || public_ip)
|
26
26
|
true
|
27
27
|
end
|
28
28
|
|
@@ -33,7 +33,7 @@ module Fog
|
|
33
33
|
disassociate
|
34
34
|
end
|
35
35
|
end
|
36
|
-
|
36
|
+
|
37
37
|
def server
|
38
38
|
connection.servers.get(server_id)
|
39
39
|
end
|
@@ -53,7 +53,7 @@ module Fog
|
|
53
53
|
:auto_minor_version_upgrade => auto_upgrade,
|
54
54
|
:engine => engine,
|
55
55
|
:engine_version => engine_version,
|
56
|
-
:notification_topic_arn =>
|
56
|
+
:notification_topic_arn => notification_config['TopicArn'],
|
57
57
|
:port => port,
|
58
58
|
:preferred_availablility_zone => zone,
|
59
59
|
:preferred_maintenance_window => maintenance_window,
|
@@ -7,11 +7,16 @@ module Fog
|
|
7
7
|
|
8
8
|
class Users < Fog::Collection
|
9
9
|
|
10
|
+
attribute :is_truncated, :aliases => 'IsTruncated'
|
11
|
+
attribute :marker, :aliases => 'Marker'
|
12
|
+
|
10
13
|
model Fog::AWS::IAM::User
|
11
14
|
|
12
|
-
def all
|
13
|
-
|
14
|
-
|
15
|
+
def all(options = {})
|
16
|
+
merge_attributes(options)
|
17
|
+
data = connection.list_users(options).body
|
18
|
+
merge_attributes('IsTruncated' => data['IsTruncated'], 'Marker' => data['Marker'])
|
19
|
+
load(data['Users']) # data is an array of attribute hashes
|
15
20
|
end
|
16
21
|
|
17
22
|
def get(identity)
|
@@ -21,7 +26,24 @@ module Fog
|
|
21
26
|
nil
|
22
27
|
end
|
23
28
|
|
29
|
+
alias :each_user_this_page :each
|
30
|
+
|
31
|
+
def each
|
32
|
+
if !block_given?
|
33
|
+
self
|
34
|
+
else
|
35
|
+
subset = dup.all
|
36
|
+
|
37
|
+
subset.each_user_this_page {|f| yield f}
|
38
|
+
while subset.is_truncated
|
39
|
+
subset = subset.all('Marker' => subset.marker, 'MaxItems' => 1000)
|
40
|
+
subset.each_user_this_page {|f| yield f}
|
41
|
+
end
|
42
|
+
|
43
|
+
self
|
44
|
+
end
|
45
|
+
end
|
24
46
|
end
|
25
47
|
end
|
26
48
|
end
|
27
|
-
end
|
49
|
+
end
|
@@ -49,13 +49,15 @@ module Fog
|
|
49
49
|
@response['DescribePoliciesResult'] = @results
|
50
50
|
|
51
51
|
when 'Alarms'
|
52
|
-
|
52
|
+
@in_alarms = false
|
53
|
+
when 'member'
|
54
|
+
if @in_alarms
|
53
55
|
@scaling_policy['Alarms'] << @alarm
|
54
56
|
reset_alarm
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
57
|
+
else
|
58
|
+
@results['ScalingPolicies'] << @scaling_policy
|
59
|
+
reset_scaling_policy
|
60
|
+
end
|
59
61
|
end
|
60
62
|
end
|
61
63
|
|
@@ -83,7 +83,7 @@ module Fog
|
|
83
83
|
@in_listeners = false
|
84
84
|
when 'PolicyNames'
|
85
85
|
@in_policy_names = false
|
86
|
-
when 'Protocol', 'SSLCertificateId'
|
86
|
+
when 'Protocol', 'SSLCertificateId', 'InstanceProtocol'
|
87
87
|
@listener_description['Listener'][name] = value
|
88
88
|
when 'LoadBalancerPort', 'InstancePort'
|
89
89
|
@listener_description['Listener'][name] = value.to_i
|
data/lib/fog/aws/rds.rb
CHANGED
@@ -90,7 +90,7 @@ module Fog
|
|
90
90
|
@use_iam_profile = options[:use_iam_profile]
|
91
91
|
@region = options[:region] || 'us-east-1'
|
92
92
|
|
93
|
-
unless ['ap-northeast-1', 'ap-southeast-1', 'eu-west-1', 'us-east-1', 'us-west-1', 'us-west-2'].include?(@region)
|
93
|
+
unless ['ap-northeast-1', 'ap-southeast-1', 'eu-west-1', 'us-east-1', 'us-west-1', 'us-west-2', 'sa-east-1'].include?(@region)
|
94
94
|
raise ArgumentError, "Unknown region: #{@region.inspect}"
|
95
95
|
end
|
96
96
|
|
@@ -49,9 +49,17 @@ module Fog
|
|
49
49
|
#
|
50
50
|
def create_auto_scaling_group(auto_scaling_group_name, availability_zones, launch_configuration_name, max_size, min_size, options = {})
|
51
51
|
options.merge!(AWS.indexed_param('AvailabilityZones.member.%d', [*availability_zones]))
|
52
|
+
options.delete('AvailabilityZones')
|
52
53
|
if load_balancer_names = options.delete('LoadBalancerNames')
|
53
54
|
options.merge!(AWS.indexed_param('LoadBalancerNames.member.%d', [*load_balancer_names]))
|
54
55
|
end
|
56
|
+
if tags = options.delete('Tags')
|
57
|
+
tags.each_with_index do |tag, i|
|
58
|
+
tag.each do |key, value|
|
59
|
+
options["Tags.member.#{i + 1}.#{key.to_s.capitalize}"] = value
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
55
63
|
request({
|
56
64
|
'Action' => 'CreateAutoScalingGroup',
|
57
65
|
'AutoScalingGroupName' => auto_scaling_group_name,
|
@@ -78,9 +78,8 @@ module Fog
|
|
78
78
|
data[:launch_configurations][launch_configuration_name] = {
|
79
79
|
'BlockDeviceMappings' => [],
|
80
80
|
'CreatedTime' => Time.now.utc,
|
81
|
-
'IamInstanceProfile' => nil,
|
82
81
|
'ImageId' => image_id,
|
83
|
-
'InstanceMonitoring
|
82
|
+
'InstanceMonitoring' => {'Enabled' => true},
|
84
83
|
'InstanceType' => instance_type,
|
85
84
|
'KernelId' => nil,
|
86
85
|
'KeyName' => nil,
|
@@ -35,9 +35,17 @@ module Fog
|
|
35
35
|
class Mock
|
36
36
|
|
37
37
|
def delete_auto_scaling_group(auto_scaling_group_name)
|
38
|
-
|
38
|
+
unless self.data[:auto_scaling_groups].delete(auto_scaling_group_name)
|
39
|
+
raise Fog::AWS::Autoscaling::NotFound, "The auto scaling group '#{auto_scaling_group_name}' does not exist."
|
40
|
+
end
|
41
|
+
|
42
|
+
response = Excon::Response.new
|
43
|
+
response.status = 200
|
44
|
+
response.body = {
|
45
|
+
'ResponseMetadata' => { 'RequestId' => Fog::AWS::Mock.request_id }
|
46
|
+
}
|
47
|
+
response
|
39
48
|
end
|
40
|
-
|
41
49
|
end
|
42
50
|
|
43
51
|
end
|
@@ -39,7 +39,7 @@ module Fog
|
|
39
39
|
|
40
40
|
def delete_launch_configuration(launch_configuration_name)
|
41
41
|
unless self.data[:launch_configurations].delete(launch_configuration_name)
|
42
|
-
raise Fog::AWS::AutoScaling::
|
42
|
+
raise Fog::AWS::AutoScaling::NotFound, "The launch configuration '#{launch_configuration_name}' does not exist."
|
43
43
|
end
|
44
44
|
|
45
45
|
response = Excon::Response.new
|
@@ -37,7 +37,16 @@ module Fog
|
|
37
37
|
class Mock
|
38
38
|
|
39
39
|
def delete_policy(auto_scaling_group_name, policy_name)
|
40
|
-
|
40
|
+
unless data[:scaling_policies].delete(policy_name)
|
41
|
+
raise Fog::AWS::AutoScaling::NotFound, "The scaling policy '#{policy_name}' does not exist."
|
42
|
+
end
|
43
|
+
|
44
|
+
response = Excon::Response.new
|
45
|
+
response.status = 200
|
46
|
+
response.body = {
|
47
|
+
'ResponseMetadata' => { 'RequestId' => Fog::AWS::Mock.request_id }
|
48
|
+
}
|
49
|
+
response
|
41
50
|
end
|
42
51
|
|
43
52
|
end
|
@@ -73,7 +73,6 @@ module Fog
|
|
73
73
|
def describe_auto_scaling_instances(options = {})
|
74
74
|
results = { 'AutoScalingInstances' => [] }
|
75
75
|
data[:auto_scaling_groups].each do |asg_name, asg_data|
|
76
|
-
lc_name = data[asg_data][lc_name]
|
77
76
|
asg_data['Instances'].each do |instance|
|
78
77
|
results['AutoScalingInstances'] << {
|
79
78
|
'AutoScalingGroupName' => asg_name
|
@@ -75,7 +75,19 @@ module Fog
|
|
75
75
|
class Mock
|
76
76
|
|
77
77
|
def describe_policies(options = {})
|
78
|
-
|
78
|
+
results = { 'ScalingPolicies' => [] }
|
79
|
+
data[:scaling_policies].each do |asp_name, asp_data|
|
80
|
+
results['ScalingPolicies'] << {
|
81
|
+
'PolicyName' => asp_name
|
82
|
+
}.merge!(asp_data)
|
83
|
+
end
|
84
|
+
response = Excon::Response.new
|
85
|
+
response.status = 200
|
86
|
+
response.body = {
|
87
|
+
'DescribePoliciesResult' => results,
|
88
|
+
'ResponseMetadata' => { 'RequestId' => Fog::AWS::Mock.request_id }
|
89
|
+
}
|
90
|
+
response
|
79
91
|
end
|
80
92
|
|
81
93
|
end
|
@@ -56,7 +56,26 @@ module Fog
|
|
56
56
|
class Mock
|
57
57
|
|
58
58
|
def put_scaling_policy(adjustment_type, auto_scaling_group_name, policy_name, scaling_adjustment, options = {})
|
59
|
-
|
59
|
+
unless data[:auto_scaling_groups].has_key?(auto_scaling_group_name)
|
60
|
+
raise Fog::AWS::AutoScaling::ValidationError.new('Auto Scaling Group name not found - null')
|
61
|
+
end
|
62
|
+
data[:scaling_policies][policy_name] = {
|
63
|
+
'AdjustmentType' => adjustment_type,
|
64
|
+
'Alarms' => [],
|
65
|
+
'AutoScalingGroupName' => auto_scaling_group_name,
|
66
|
+
'Cooldown' => 0,
|
67
|
+
'MinAdjustmentStep' => 0,
|
68
|
+
'PolicyARN' => "arn:aws:autoscaling:eu-west-1:000000000000:scalingPolicy:00000000-0000-0000-0000-000000000000:autoScalingGroupName/#{auto_scaling_group_name}:policyName/#{policy_name}",
|
69
|
+
'PolicyName' => policy_name,
|
70
|
+
'ScalingAdjustment' => scaling_adjustment
|
71
|
+
}.merge!(options)
|
72
|
+
|
73
|
+
response = Excon::Response.new
|
74
|
+
response.status = 200
|
75
|
+
response.body = {
|
76
|
+
'ResponseMetadata' => { 'RequestId' => Fog::AWS::Mock.request_id }
|
77
|
+
}
|
78
|
+
response
|
60
79
|
end
|
61
80
|
|
62
81
|
end
|
@@ -62,7 +62,7 @@ module Fog
|
|
62
62
|
unless data[:auto_scaling_groups].has_key?(auto_scaling_group_name)
|
63
63
|
raise Fog::AWS::AutoScaling::ValidationError.new('AutoScalingGroup name not found - null')
|
64
64
|
end
|
65
|
-
data[:
|
65
|
+
data[:auto_scaling_groups][auto_scaling_group_name].merge!(options)
|
66
66
|
|
67
67
|
response = Excon::Response.new
|
68
68
|
response.status = 200
|
@@ -24,7 +24,25 @@ module Fog
|
|
24
24
|
:parser => Fog::Parsers::AWS::CloudWatch::DeleteAlarms.new
|
25
25
|
}.merge(options))
|
26
26
|
end
|
27
|
-
end
|
27
|
+
end
|
28
|
+
|
29
|
+
class Mock
|
30
|
+
def delete_alarms(alarm_names)
|
31
|
+
[*alarm_names].each do |alarm_name|
|
32
|
+
unless data[:metric_alarms].has_key?(alarm_name)
|
33
|
+
raise Fog::AWS::AutoScaling::NotFound, "The alarm '#{alarm_name}' does not exist."
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
[*alarm_names].each { |alarm_name| data[:metric_alarms].delete(alarm_name) }
|
38
|
+
response = Excon::Response.new
|
39
|
+
response.status = 200
|
40
|
+
response.body = {
|
41
|
+
'ResponseMetadata' => { 'RequestId' => Fog::AWS::Mock.request_id }
|
42
|
+
}
|
43
|
+
response
|
44
|
+
end
|
45
|
+
end
|
28
46
|
end
|
29
47
|
end
|
30
48
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module Fog
|
2
2
|
module AWS
|
3
3
|
class CloudWatch
|
4
|
-
class Real
|
4
|
+
class Real
|
5
5
|
|
6
6
|
require 'fog/aws/parsers/cloud_watch/describe_alarms'
|
7
7
|
|
@@ -32,7 +32,25 @@ module Fog
|
|
32
32
|
:parser => Fog::Parsers::AWS::CloudWatch::DescribeAlarms.new
|
33
33
|
}.merge(options))
|
34
34
|
end
|
35
|
-
end
|
35
|
+
end
|
36
|
+
|
37
|
+
class Mock
|
38
|
+
def describe_alarms(options={})
|
39
|
+
results = { 'MetricAlarms' => [] }
|
40
|
+
data[:metric_alarms].each do |alarm_name, alarm_data|
|
41
|
+
results['MetricAlarms'] << {
|
42
|
+
'AlarmName' => alarm_name
|
43
|
+
}.merge!(alarm_data)
|
44
|
+
end
|
45
|
+
response = Excon::Response.new
|
46
|
+
response.status = 200
|
47
|
+
response.body = {
|
48
|
+
'DescribeAlarmsResult' => results,
|
49
|
+
'ResponseMetadata' => { 'RequestId' => Fog::AWS::Mock.request_id }
|
50
|
+
}
|
51
|
+
response
|
52
|
+
end
|
53
|
+
end
|
36
54
|
end
|
37
55
|
end
|
38
56
|
end
|
@@ -71,6 +71,15 @@ module Fog
|
|
71
71
|
end
|
72
72
|
end
|
73
73
|
|
74
|
+
data[:metric_alarms][options['AlarmName']] = {
|
75
|
+
'AlarmARN' => "arn:aws:cloudwatch:eu-west-1:000000000000:metricAlarm:00000000-0000-0000-0000-000000000000:alarmName/#{options['AlarmName']}",
|
76
|
+
'ActionsEnabled' => false,
|
77
|
+
'AlarmActions' => [],
|
78
|
+
'AlarmConfigurationUpdatedTimestamp' => Time.now.utc.strftime("%Y-%m-%dT%H:%M:%SZ"),
|
79
|
+
'Dimensions' => [],
|
80
|
+
'OKActions' => [],
|
81
|
+
}.merge!(options)
|
82
|
+
|
74
83
|
response = Excon::Response.new
|
75
84
|
response.status = 200
|
76
85
|
response.body = {
|
@@ -40,12 +40,11 @@ module Fog
|
|
40
40
|
'publicIp' => public_ip,
|
41
41
|
'domain' => domain
|
42
42
|
}
|
43
|
+
if domain == 'vpc'
|
44
|
+
data['allocationId'] = "eipalloc-#{Fog::Mock.random_hex(8)}"
|
45
|
+
end
|
43
46
|
self.data[:addresses][public_ip] = data
|
44
|
-
response.body = {
|
45
|
-
'domain' => domain,
|
46
|
-
'publicIp' => public_ip,
|
47
|
-
'requestId' => Fog::AWS::Mock.request_id
|
48
|
-
}
|
47
|
+
response.body = data.reject {|k, v| k == 'instanceId' }.merge('requestId' => Fog::AWS::Mock.request_id)
|
49
48
|
response
|
50
49
|
else
|
51
50
|
response.status = 400
|
@@ -45,13 +45,14 @@ module Fog
|
|
45
45
|
params.merge!(indexed_multidimensional_params(dhcp_configurations))
|
46
46
|
Excon::Response.new.tap do |response|
|
47
47
|
response.status = 200
|
48
|
+
self.data[:dhcp_options].push({
|
49
|
+
'dhcpOptionsId' => Fog::AWS::Mock.dhcp_options_id,
|
50
|
+
'dhcpConfigurationSet' => {},
|
51
|
+
'tagSet' => {}
|
52
|
+
})
|
48
53
|
response.body = {
|
49
54
|
'requestId' => Fog::AWS::Mock.request_id,
|
50
|
-
'dhcpOptionsSet' => [
|
51
|
-
'dhcpOptionsId' => Fog::AWS::Mock.dhcp_options_id,
|
52
|
-
'dhcpConfigurationSet' => {},
|
53
|
-
'tagSet' => {}
|
54
|
-
]
|
55
|
+
'dhcpOptionsSet' => self.data[:dhcp_options]
|
55
56
|
}
|
56
57
|
end
|
57
58
|
end
|
@@ -33,15 +33,16 @@ module Fog
|
|
33
33
|
|
34
34
|
class Mock
|
35
35
|
def create_internet_gateway()
|
36
|
-
|
36
|
+
self.data[:internet_gateways].push({
|
37
|
+
'internetGatewayId' => Fog::AWS::Mock.request_id,
|
38
|
+
'attachmentSet' => {},
|
39
|
+
'tagSet' => {}
|
40
|
+
})
|
41
|
+
Excon::Response.new(
|
37
42
|
:status => 200,
|
38
43
|
:body => {
|
39
44
|
'requestId' => Fog::AWS::Mock.request_id,
|
40
|
-
'internetGatewaySet' => [
|
41
|
-
'internetGatewayId' => Fog::AWS::Mock.request_id,
|
42
|
-
'attachmentSet' => {},
|
43
|
-
'tagSet' => {}
|
44
|
-
]
|
45
|
+
'internetGatewaySet' => self.data[:internet_gateways]
|
45
46
|
}
|
46
47
|
)
|
47
48
|
end
|
@@ -46,18 +46,19 @@ module Fog
|
|
46
46
|
Excon::Response.new.tap do |response|
|
47
47
|
if cidrBlock && vpcId
|
48
48
|
response.status = 200
|
49
|
-
|
49
|
+
self.data[:subnets].push({
|
50
|
+
'subnetId' => Fog::AWS::Mock.request_id,
|
51
|
+
'state' => 'pending',
|
52
|
+
'vpcId' => Fog::AWS::Mock.request_id,
|
53
|
+
'cidrBlock' => cidrBlock,
|
54
|
+
'availableIpAddressCount' => "255",
|
55
|
+
'availabilityZone' => av_zone,
|
56
|
+
'tagSet' => {}
|
57
|
+
})
|
58
|
+
|
50
59
|
response.body = {
|
51
60
|
'requestId' => Fog::AWS::Mock.request_id,
|
52
|
-
'subnetSet' => [
|
53
|
-
'subnetId' => Fog::AWS::Mock.request_id,
|
54
|
-
'state' => 'pending',
|
55
|
-
'vpcId' => Fog::AWS::Mock.request_id,
|
56
|
-
'cidrBlock' => cidrBlock,
|
57
|
-
'availableIpAddressCount' => 16,
|
58
|
-
'availabilityZone' => av_zone,
|
59
|
-
'tagSet' => {}
|
60
|
-
]
|
61
|
+
'subnetSet' => self.data[:subnets]
|
61
62
|
}
|
62
63
|
else
|
63
64
|
response.status = 400
|