From 014a0ac31469a8c541d23c0f8eafa65a7a7e3e9c Mon Sep 17 00:00:00 2001 From: geemus Date: Mon, 24 May 2010 14:22:35 -0700 Subject: [PATCH] [ec2] make things that shouldn't cost money idempotent --- lib/fog/aws/requests/ec2/associate_address.rb | 1 + lib/fog/aws/requests/ec2/attach_volume.rb | 1 + lib/fog/aws/requests/ec2/authorize_security_group_ingress.rb | 5 +++-- lib/fog/aws/requests/ec2/delete_security_group.rb | 1 + lib/fog/aws/requests/ec2/delete_snapshot.rb | 1 + lib/fog/aws/requests/ec2/delete_volume.rb | 1 + lib/fog/aws/requests/ec2/describe_addresses.rb | 5 +++-- lib/fog/aws/requests/ec2/describe_availability_zones.rb | 5 +++-- lib/fog/aws/requests/ec2/describe_images.rb | 5 +++-- lib/fog/aws/requests/ec2/describe_key_pairs.rb | 5 +++-- lib/fog/aws/requests/ec2/describe_regions.rb | 5 +++-- lib/fog/aws/requests/ec2/describe_reserved_instances.rb | 5 +++-- lib/fog/aws/requests/ec2/describe_security_groups.rb | 5 +++-- lib/fog/aws/requests/ec2/describe_snapshots.rb | 5 +++-- lib/fog/aws/requests/ec2/describe_volumes.rb | 5 +++-- lib/fog/aws/requests/ec2/detach_volume.rb | 1 + lib/fog/aws/requests/ec2/disassociate_address.rb | 1 + lib/fog/aws/requests/ec2/get_console_output.rb | 1 + lib/fog/aws/requests/ec2/modify_image_attributes.rb | 1 + lib/fog/aws/requests/ec2/reboot_instances.rb | 5 +++-- lib/fog/aws/requests/ec2/release_address.rb | 1 + lib/fog/aws/requests/ec2/revoke_security_group_ingress.rb | 5 +++-- lib/fog/aws/requests/ec2/terminate_instances.rb | 5 +++-- 23 files changed, 49 insertions(+), 26 deletions(-) diff --git a/lib/fog/aws/requests/ec2/associate_address.rb b/lib/fog/aws/requests/ec2/associate_address.rb index 011565dec..0e1399972 100644 --- a/lib/fog/aws/requests/ec2/associate_address.rb +++ b/lib/fog/aws/requests/ec2/associate_address.rb @@ -19,6 +19,7 @@ module Fog 'Action' => 'AssociateAddress', 'InstanceId' => instance_id, 'PublicIp' => public_ip, + :idempotent => true, :parser => Fog::Parsers::AWS::EC2::Basic.new ) end diff --git a/lib/fog/aws/requests/ec2/attach_volume.rb b/lib/fog/aws/requests/ec2/attach_volume.rb index 375d668f2..27a6de829 100644 --- a/lib/fog/aws/requests/ec2/attach_volume.rb +++ b/lib/fog/aws/requests/ec2/attach_volume.rb @@ -25,6 +25,7 @@ module Fog 'VolumeId' => volume_id, 'InstanceId' => instance_id, 'Device' => device, + :idempotent => true, :parser => Fog::Parsers::AWS::EC2::AttachVolume.new ) end diff --git a/lib/fog/aws/requests/ec2/authorize_security_group_ingress.rb b/lib/fog/aws/requests/ec2/authorize_security_group_ingress.rb index 2554a673a..fcd5a6ed1 100644 --- a/lib/fog/aws/requests/ec2/authorize_security_group_ingress.rb +++ b/lib/fog/aws/requests/ec2/authorize_security_group_ingress.rb @@ -24,8 +24,9 @@ module Fog # * 'return'<~Boolean> - success? def authorize_security_group_ingress(options = {}) request({ - 'Action' => 'AuthorizeSecurityGroupIngress', - :parser => Fog::Parsers::AWS::EC2::Basic.new + 'Action' => 'AuthorizeSecurityGroupIngress', + :idempotent => true, + :parser => Fog::Parsers::AWS::EC2::Basic.new }.merge!(options)) end diff --git a/lib/fog/aws/requests/ec2/delete_security_group.rb b/lib/fog/aws/requests/ec2/delete_security_group.rb index be6667514..ef6d6f8fb 100644 --- a/lib/fog/aws/requests/ec2/delete_security_group.rb +++ b/lib/fog/aws/requests/ec2/delete_security_group.rb @@ -17,6 +17,7 @@ module Fog request( 'Action' => 'DeleteSecurityGroup', 'GroupName' => name, + :idempotent => true, :parser => Fog::Parsers::AWS::EC2::Basic.new ) end diff --git a/lib/fog/aws/requests/ec2/delete_snapshot.rb b/lib/fog/aws/requests/ec2/delete_snapshot.rb index bb0e24396..449b11cbf 100644 --- a/lib/fog/aws/requests/ec2/delete_snapshot.rb +++ b/lib/fog/aws/requests/ec2/delete_snapshot.rb @@ -17,6 +17,7 @@ module Fog request( 'Action' => 'DeleteSnapshot', 'SnapshotId' => snapshot_id, + :idempotent => true, :parser => Fog::Parsers::AWS::EC2::Basic.new ) end diff --git a/lib/fog/aws/requests/ec2/delete_volume.rb b/lib/fog/aws/requests/ec2/delete_volume.rb index 8f7ef310a..26be6e509 100644 --- a/lib/fog/aws/requests/ec2/delete_volume.rb +++ b/lib/fog/aws/requests/ec2/delete_volume.rb @@ -17,6 +17,7 @@ module Fog request( 'Action' => 'DeleteVolume', 'VolumeId' => volume_id, + :idempotent => true, :parser => Fog::Parsers::AWS::EC2::Basic.new ) end diff --git a/lib/fog/aws/requests/ec2/describe_addresses.rb b/lib/fog/aws/requests/ec2/describe_addresses.rb index a5704b6a1..821e4355a 100644 --- a/lib/fog/aws/requests/ec2/describe_addresses.rb +++ b/lib/fog/aws/requests/ec2/describe_addresses.rb @@ -18,8 +18,9 @@ module Fog def describe_addresses(public_ip = []) params = AWS.indexed_param('PublicIp', public_ip) request({ - 'Action' => 'DescribeAddresses', - :parser => Fog::Parsers::AWS::EC2::DescribeAddresses.new + 'Action' => 'DescribeAddresses', + :idempotent => true, + :parser => Fog::Parsers::AWS::EC2::DescribeAddresses.new }.merge!(params)) end diff --git a/lib/fog/aws/requests/ec2/describe_availability_zones.rb b/lib/fog/aws/requests/ec2/describe_availability_zones.rb index 011f8a492..46095a9ac 100644 --- a/lib/fog/aws/requests/ec2/describe_availability_zones.rb +++ b/lib/fog/aws/requests/ec2/describe_availability_zones.rb @@ -19,8 +19,9 @@ module Fog def describe_availability_zones(zone_name = []) params = AWS.indexed_param('ZoneName', zone_name) request({ - 'Action' => 'DescribeAvailabilityZones', - :parser => Fog::Parsers::AWS::EC2::DescribeAvailabilityZones.new + 'Action' => 'DescribeAvailabilityZones', + :idempotent => true, + :parser => Fog::Parsers::AWS::EC2::DescribeAvailabilityZones.new }.merge!(params)) end diff --git a/lib/fog/aws/requests/ec2/describe_images.rb b/lib/fog/aws/requests/ec2/describe_images.rb index fce24d5e7..8d1e44006 100644 --- a/lib/fog/aws/requests/ec2/describe_images.rb +++ b/lib/fog/aws/requests/ec2/describe_images.rb @@ -33,8 +33,9 @@ module Fog options.merge!(AWS.indexed_param('ImageId', image_id)) end request({ - 'Action' => 'DescribeImages', - :parser => Fog::Parsers::AWS::EC2::DescribeImages.new + 'Action' => 'DescribeImages', + :idempotent => true, + :parser => Fog::Parsers::AWS::EC2::DescribeImages.new }.merge!(options)) end diff --git a/lib/fog/aws/requests/ec2/describe_key_pairs.rb b/lib/fog/aws/requests/ec2/describe_key_pairs.rb index 9a9c1bdf6..7313edd4e 100644 --- a/lib/fog/aws/requests/ec2/describe_key_pairs.rb +++ b/lib/fog/aws/requests/ec2/describe_key_pairs.rb @@ -18,8 +18,9 @@ module Fog def describe_key_pairs(key_name = []) params = AWS.indexed_param('KeyName', key_name) request({ - 'Action' => 'DescribeKeyPairs', - :parser => Fog::Parsers::AWS::EC2::DescribeKeyPairs.new + 'Action' => 'DescribeKeyPairs', + :idempotent => true, + :parser => Fog::Parsers::AWS::EC2::DescribeKeyPairs.new }.merge!(params)) end diff --git a/lib/fog/aws/requests/ec2/describe_regions.rb b/lib/fog/aws/requests/ec2/describe_regions.rb index 7f7b26229..87cd94d25 100644 --- a/lib/fog/aws/requests/ec2/describe_regions.rb +++ b/lib/fog/aws/requests/ec2/describe_regions.rb @@ -18,8 +18,9 @@ module Fog def describe_regions(region_name = []) params = AWS.indexed_param('RegionName', region_name) request({ - 'Action' => 'DescribeRegions', - :parser => Fog::Parsers::AWS::EC2::DescribeRegions.new + 'Action' => 'DescribeRegions', + :idempotent => true, + :parser => Fog::Parsers::AWS::EC2::DescribeRegions.new }.merge!(params)) end diff --git a/lib/fog/aws/requests/ec2/describe_reserved_instances.rb b/lib/fog/aws/requests/ec2/describe_reserved_instances.rb index feffd32dc..596046c79 100644 --- a/lib/fog/aws/requests/ec2/describe_reserved_instances.rb +++ b/lib/fog/aws/requests/ec2/describe_reserved_instances.rb @@ -26,8 +26,9 @@ module Fog def describe_reserved_instances(reserved_instances_id = []) params = AWS.indexed_param('ReservedInstancesId', reserved_instances_id) request({ - 'Action' => 'DescribeReservedInstances', - :parser => Fog::Parsers::AWS::EC2::DescribeReservedInstances.new + 'Action' => 'DescribeReservedInstances', + :idempotent => true, + :parser => Fog::Parsers::AWS::EC2::DescribeReservedInstances.new }.merge!(params)) end diff --git a/lib/fog/aws/requests/ec2/describe_security_groups.rb b/lib/fog/aws/requests/ec2/describe_security_groups.rb index 6a761c490..01d05f52f 100644 --- a/lib/fog/aws/requests/ec2/describe_security_groups.rb +++ b/lib/fog/aws/requests/ec2/describe_security_groups.rb @@ -28,8 +28,9 @@ module Fog def describe_security_groups(group_name = []) params = AWS.indexed_param('GroupName', group_name) request({ - 'Action' => 'DescribeSecurityGroups', - :parser => Fog::Parsers::AWS::EC2::DescribeSecurityGroups.new + 'Action' => 'DescribeSecurityGroups', + :idempotent => true, + :parser => Fog::Parsers::AWS::EC2::DescribeSecurityGroups.new }.merge!(params)) end diff --git a/lib/fog/aws/requests/ec2/describe_snapshots.rb b/lib/fog/aws/requests/ec2/describe_snapshots.rb index 5dccd4c3c..06d3e99ad 100644 --- a/lib/fog/aws/requests/ec2/describe_snapshots.rb +++ b/lib/fog/aws/requests/ec2/describe_snapshots.rb @@ -25,8 +25,9 @@ module Fog options['Owner'] ||= 'self' options.merge!(AWS.indexed_param('SnapshotId', snapshot_id)) request({ - 'Action' => 'DescribeSnapshots', - :parser => Fog::Parsers::AWS::EC2::DescribeSnapshots.new + 'Action' => 'DescribeSnapshots', + :idempotent => true, + :parser => Fog::Parsers::AWS::EC2::DescribeSnapshots.new }.merge!(options)) end diff --git a/lib/fog/aws/requests/ec2/describe_volumes.rb b/lib/fog/aws/requests/ec2/describe_volumes.rb index b258cc8fa..2937f86b0 100644 --- a/lib/fog/aws/requests/ec2/describe_volumes.rb +++ b/lib/fog/aws/requests/ec2/describe_volumes.rb @@ -27,8 +27,9 @@ module Fog def describe_volumes(volume_id = []) params = AWS.indexed_param('VolumeId', volume_id) request({ - 'Action' => 'DescribeVolumes', - :parser => Fog::Parsers::AWS::EC2::DescribeVolumes.new + 'Action' => 'DescribeVolumes', + :idempotent => true, + :parser => Fog::Parsers::AWS::EC2::DescribeVolumes.new }.merge!(params)) end diff --git a/lib/fog/aws/requests/ec2/detach_volume.rb b/lib/fog/aws/requests/ec2/detach_volume.rb index 697036852..ca3e1d224 100644 --- a/lib/fog/aws/requests/ec2/detach_volume.rb +++ b/lib/fog/aws/requests/ec2/detach_volume.rb @@ -25,6 +25,7 @@ module Fog request({ 'Action' => 'DetachVolume', 'VolumeId' => volume_id, + :idempotent => true, :parser => Fog::Parsers::AWS::EC2::DetachVolume.new }.merge!(options)) end diff --git a/lib/fog/aws/requests/ec2/disassociate_address.rb b/lib/fog/aws/requests/ec2/disassociate_address.rb index 41b42e6d7..c6883bc65 100644 --- a/lib/fog/aws/requests/ec2/disassociate_address.rb +++ b/lib/fog/aws/requests/ec2/disassociate_address.rb @@ -17,6 +17,7 @@ module Fog request( 'Action' => 'DisassociateAddress', 'PublicIp' => public_ip, + :idempotent => true, :parser => Fog::Parsers::AWS::EC2::Basic.new ) end diff --git a/lib/fog/aws/requests/ec2/get_console_output.rb b/lib/fog/aws/requests/ec2/get_console_output.rb index 3517d5371..62e78211b 100644 --- a/lib/fog/aws/requests/ec2/get_console_output.rb +++ b/lib/fog/aws/requests/ec2/get_console_output.rb @@ -19,6 +19,7 @@ module Fog request( 'Action' => 'GetConsoleOutput', 'InstanceId' => instance_id, + :idempotent => true, :parser => Fog::Parsers::AWS::EC2::GetConsoleOutput.new ) end diff --git a/lib/fog/aws/requests/ec2/modify_image_attributes.rb b/lib/fog/aws/requests/ec2/modify_image_attributes.rb index 548464d30..87a411aea 100644 --- a/lib/fog/aws/requests/ec2/modify_image_attributes.rb +++ b/lib/fog/aws/requests/ec2/modify_image_attributes.rb @@ -20,6 +20,7 @@ module Fog 'Attribute' => attribute, 'ImageId' => image_id, 'OperationType' => operation_type, + :idempotent => true, :parser => Fog::Parsers::AWS::EC2::Basic.new }.merge!(params)) end diff --git a/lib/fog/aws/requests/ec2/reboot_instances.rb b/lib/fog/aws/requests/ec2/reboot_instances.rb index 2a54bacda..9c9eb4156 100644 --- a/lib/fog/aws/requests/ec2/reboot_instances.rb +++ b/lib/fog/aws/requests/ec2/reboot_instances.rb @@ -16,8 +16,9 @@ module Fog def reboot_instances(instance_id = []) params = AWS.indexed_param('InstanceId', instance_id) request({ - 'Action' => 'RebootInstances', - :parser => Fog::Parsers::AWS::EC2::Basic.new + 'Action' => 'RebootInstances', + :idempotent => true, + :parser => Fog::Parsers::AWS::EC2::Basic.new }.merge!(params)) end diff --git a/lib/fog/aws/requests/ec2/release_address.rb b/lib/fog/aws/requests/ec2/release_address.rb index fc50b85be..e36e87341 100644 --- a/lib/fog/aws/requests/ec2/release_address.rb +++ b/lib/fog/aws/requests/ec2/release_address.rb @@ -14,6 +14,7 @@ module Fog request( 'Action' => 'ReleaseAddress', 'PublicIp' => public_ip, + :idempotent => true, :parser => Fog::Parsers::AWS::EC2::Basic.new ) end diff --git a/lib/fog/aws/requests/ec2/revoke_security_group_ingress.rb b/lib/fog/aws/requests/ec2/revoke_security_group_ingress.rb index e9b6ff8c7..8bf83329f 100644 --- a/lib/fog/aws/requests/ec2/revoke_security_group_ingress.rb +++ b/lib/fog/aws/requests/ec2/revoke_security_group_ingress.rb @@ -24,8 +24,9 @@ module Fog # * 'return'<~Boolean> - success? def revoke_security_group_ingress(options = {}) request({ - 'Action' => 'RevokeSecurityGroupIngress', - :parser => Fog::Parsers::AWS::EC2::Basic.new + 'Action' => 'RevokeSecurityGroupIngress', + :idempotent => true, + :parser => Fog::Parsers::AWS::EC2::Basic.new }.merge!(options)) end diff --git a/lib/fog/aws/requests/ec2/terminate_instances.rb b/lib/fog/aws/requests/ec2/terminate_instances.rb index c76877fbb..209f5ca99 100644 --- a/lib/fog/aws/requests/ec2/terminate_instances.rb +++ b/lib/fog/aws/requests/ec2/terminate_instances.rb @@ -23,8 +23,9 @@ module Fog def terminate_instances(instance_id) params = AWS.indexed_param('InstanceId', instance_id) request({ - 'Action' => 'TerminateInstances', - :parser => Fog::Parsers::AWS::EC2::TerminateInstances.new + 'Action' => 'TerminateInstances', + :idempotent => true, + :parser => Fog::Parsers::AWS::EC2::TerminateInstances.new }.merge!(params)) end