[ec2] make things that shouldn't cost money idempotent

This commit is contained in:
geemus 2010-05-24 14:22:35 -07:00
parent 43d5f27b78
commit 014a0ac314
23 changed files with 49 additions and 26 deletions

View File

@ -19,6 +19,7 @@ module Fog
'Action' => 'AssociateAddress', 'Action' => 'AssociateAddress',
'InstanceId' => instance_id, 'InstanceId' => instance_id,
'PublicIp' => public_ip, 'PublicIp' => public_ip,
:idempotent => true,
:parser => Fog::Parsers::AWS::EC2::Basic.new :parser => Fog::Parsers::AWS::EC2::Basic.new
) )
end end

View File

@ -25,6 +25,7 @@ module Fog
'VolumeId' => volume_id, 'VolumeId' => volume_id,
'InstanceId' => instance_id, 'InstanceId' => instance_id,
'Device' => device, 'Device' => device,
:idempotent => true,
:parser => Fog::Parsers::AWS::EC2::AttachVolume.new :parser => Fog::Parsers::AWS::EC2::AttachVolume.new
) )
end end

View File

@ -24,8 +24,9 @@ module Fog
# * 'return'<~Boolean> - success? # * 'return'<~Boolean> - success?
def authorize_security_group_ingress(options = {}) def authorize_security_group_ingress(options = {})
request({ request({
'Action' => 'AuthorizeSecurityGroupIngress', 'Action' => 'AuthorizeSecurityGroupIngress',
:parser => Fog::Parsers::AWS::EC2::Basic.new :idempotent => true,
:parser => Fog::Parsers::AWS::EC2::Basic.new
}.merge!(options)) }.merge!(options))
end end

View File

@ -17,6 +17,7 @@ module Fog
request( request(
'Action' => 'DeleteSecurityGroup', 'Action' => 'DeleteSecurityGroup',
'GroupName' => name, 'GroupName' => name,
:idempotent => true,
:parser => Fog::Parsers::AWS::EC2::Basic.new :parser => Fog::Parsers::AWS::EC2::Basic.new
) )
end end

View File

@ -17,6 +17,7 @@ module Fog
request( request(
'Action' => 'DeleteSnapshot', 'Action' => 'DeleteSnapshot',
'SnapshotId' => snapshot_id, 'SnapshotId' => snapshot_id,
:idempotent => true,
:parser => Fog::Parsers::AWS::EC2::Basic.new :parser => Fog::Parsers::AWS::EC2::Basic.new
) )
end end

View File

@ -17,6 +17,7 @@ module Fog
request( request(
'Action' => 'DeleteVolume', 'Action' => 'DeleteVolume',
'VolumeId' => volume_id, 'VolumeId' => volume_id,
:idempotent => true,
:parser => Fog::Parsers::AWS::EC2::Basic.new :parser => Fog::Parsers::AWS::EC2::Basic.new
) )
end end

View File

@ -18,8 +18,9 @@ module Fog
def describe_addresses(public_ip = []) def describe_addresses(public_ip = [])
params = AWS.indexed_param('PublicIp', public_ip) params = AWS.indexed_param('PublicIp', public_ip)
request({ request({
'Action' => 'DescribeAddresses', 'Action' => 'DescribeAddresses',
:parser => Fog::Parsers::AWS::EC2::DescribeAddresses.new :idempotent => true,
:parser => Fog::Parsers::AWS::EC2::DescribeAddresses.new
}.merge!(params)) }.merge!(params))
end end

View File

@ -19,8 +19,9 @@ module Fog
def describe_availability_zones(zone_name = []) def describe_availability_zones(zone_name = [])
params = AWS.indexed_param('ZoneName', zone_name) params = AWS.indexed_param('ZoneName', zone_name)
request({ request({
'Action' => 'DescribeAvailabilityZones', 'Action' => 'DescribeAvailabilityZones',
:parser => Fog::Parsers::AWS::EC2::DescribeAvailabilityZones.new :idempotent => true,
:parser => Fog::Parsers::AWS::EC2::DescribeAvailabilityZones.new
}.merge!(params)) }.merge!(params))
end end

View File

@ -33,8 +33,9 @@ module Fog
options.merge!(AWS.indexed_param('ImageId', image_id)) options.merge!(AWS.indexed_param('ImageId', image_id))
end end
request({ request({
'Action' => 'DescribeImages', 'Action' => 'DescribeImages',
:parser => Fog::Parsers::AWS::EC2::DescribeImages.new :idempotent => true,
:parser => Fog::Parsers::AWS::EC2::DescribeImages.new
}.merge!(options)) }.merge!(options))
end end

View File

@ -18,8 +18,9 @@ module Fog
def describe_key_pairs(key_name = []) def describe_key_pairs(key_name = [])
params = AWS.indexed_param('KeyName', key_name) params = AWS.indexed_param('KeyName', key_name)
request({ request({
'Action' => 'DescribeKeyPairs', 'Action' => 'DescribeKeyPairs',
:parser => Fog::Parsers::AWS::EC2::DescribeKeyPairs.new :idempotent => true,
:parser => Fog::Parsers::AWS::EC2::DescribeKeyPairs.new
}.merge!(params)) }.merge!(params))
end end

View File

@ -18,8 +18,9 @@ module Fog
def describe_regions(region_name = []) def describe_regions(region_name = [])
params = AWS.indexed_param('RegionName', region_name) params = AWS.indexed_param('RegionName', region_name)
request({ request({
'Action' => 'DescribeRegions', 'Action' => 'DescribeRegions',
:parser => Fog::Parsers::AWS::EC2::DescribeRegions.new :idempotent => true,
:parser => Fog::Parsers::AWS::EC2::DescribeRegions.new
}.merge!(params)) }.merge!(params))
end end

View File

@ -26,8 +26,9 @@ module Fog
def describe_reserved_instances(reserved_instances_id = []) def describe_reserved_instances(reserved_instances_id = [])
params = AWS.indexed_param('ReservedInstancesId', reserved_instances_id) params = AWS.indexed_param('ReservedInstancesId', reserved_instances_id)
request({ request({
'Action' => 'DescribeReservedInstances', 'Action' => 'DescribeReservedInstances',
:parser => Fog::Parsers::AWS::EC2::DescribeReservedInstances.new :idempotent => true,
:parser => Fog::Parsers::AWS::EC2::DescribeReservedInstances.new
}.merge!(params)) }.merge!(params))
end end

View File

@ -28,8 +28,9 @@ module Fog
def describe_security_groups(group_name = []) def describe_security_groups(group_name = [])
params = AWS.indexed_param('GroupName', group_name) params = AWS.indexed_param('GroupName', group_name)
request({ request({
'Action' => 'DescribeSecurityGroups', 'Action' => 'DescribeSecurityGroups',
:parser => Fog::Parsers::AWS::EC2::DescribeSecurityGroups.new :idempotent => true,
:parser => Fog::Parsers::AWS::EC2::DescribeSecurityGroups.new
}.merge!(params)) }.merge!(params))
end end

View File

@ -25,8 +25,9 @@ module Fog
options['Owner'] ||= 'self' options['Owner'] ||= 'self'
options.merge!(AWS.indexed_param('SnapshotId', snapshot_id)) options.merge!(AWS.indexed_param('SnapshotId', snapshot_id))
request({ request({
'Action' => 'DescribeSnapshots', 'Action' => 'DescribeSnapshots',
:parser => Fog::Parsers::AWS::EC2::DescribeSnapshots.new :idempotent => true,
:parser => Fog::Parsers::AWS::EC2::DescribeSnapshots.new
}.merge!(options)) }.merge!(options))
end end

View File

@ -27,8 +27,9 @@ module Fog
def describe_volumes(volume_id = []) def describe_volumes(volume_id = [])
params = AWS.indexed_param('VolumeId', volume_id) params = AWS.indexed_param('VolumeId', volume_id)
request({ request({
'Action' => 'DescribeVolumes', 'Action' => 'DescribeVolumes',
:parser => Fog::Parsers::AWS::EC2::DescribeVolumes.new :idempotent => true,
:parser => Fog::Parsers::AWS::EC2::DescribeVolumes.new
}.merge!(params)) }.merge!(params))
end end

View File

@ -25,6 +25,7 @@ module Fog
request({ request({
'Action' => 'DetachVolume', 'Action' => 'DetachVolume',
'VolumeId' => volume_id, 'VolumeId' => volume_id,
:idempotent => true,
:parser => Fog::Parsers::AWS::EC2::DetachVolume.new :parser => Fog::Parsers::AWS::EC2::DetachVolume.new
}.merge!(options)) }.merge!(options))
end end

View File

@ -17,6 +17,7 @@ module Fog
request( request(
'Action' => 'DisassociateAddress', 'Action' => 'DisassociateAddress',
'PublicIp' => public_ip, 'PublicIp' => public_ip,
:idempotent => true,
:parser => Fog::Parsers::AWS::EC2::Basic.new :parser => Fog::Parsers::AWS::EC2::Basic.new
) )
end end

View File

@ -19,6 +19,7 @@ module Fog
request( request(
'Action' => 'GetConsoleOutput', 'Action' => 'GetConsoleOutput',
'InstanceId' => instance_id, 'InstanceId' => instance_id,
:idempotent => true,
:parser => Fog::Parsers::AWS::EC2::GetConsoleOutput.new :parser => Fog::Parsers::AWS::EC2::GetConsoleOutput.new
) )
end end

View File

@ -20,6 +20,7 @@ module Fog
'Attribute' => attribute, 'Attribute' => attribute,
'ImageId' => image_id, 'ImageId' => image_id,
'OperationType' => operation_type, 'OperationType' => operation_type,
:idempotent => true,
:parser => Fog::Parsers::AWS::EC2::Basic.new :parser => Fog::Parsers::AWS::EC2::Basic.new
}.merge!(params)) }.merge!(params))
end end

View File

@ -16,8 +16,9 @@ module Fog
def reboot_instances(instance_id = []) def reboot_instances(instance_id = [])
params = AWS.indexed_param('InstanceId', instance_id) params = AWS.indexed_param('InstanceId', instance_id)
request({ request({
'Action' => 'RebootInstances', 'Action' => 'RebootInstances',
:parser => Fog::Parsers::AWS::EC2::Basic.new :idempotent => true,
:parser => Fog::Parsers::AWS::EC2::Basic.new
}.merge!(params)) }.merge!(params))
end end

View File

@ -14,6 +14,7 @@ module Fog
request( request(
'Action' => 'ReleaseAddress', 'Action' => 'ReleaseAddress',
'PublicIp' => public_ip, 'PublicIp' => public_ip,
:idempotent => true,
:parser => Fog::Parsers::AWS::EC2::Basic.new :parser => Fog::Parsers::AWS::EC2::Basic.new
) )
end end

View File

@ -24,8 +24,9 @@ module Fog
# * 'return'<~Boolean> - success? # * 'return'<~Boolean> - success?
def revoke_security_group_ingress(options = {}) def revoke_security_group_ingress(options = {})
request({ request({
'Action' => 'RevokeSecurityGroupIngress', 'Action' => 'RevokeSecurityGroupIngress',
:parser => Fog::Parsers::AWS::EC2::Basic.new :idempotent => true,
:parser => Fog::Parsers::AWS::EC2::Basic.new
}.merge!(options)) }.merge!(options))
end end

View File

@ -23,8 +23,9 @@ module Fog
def terminate_instances(instance_id) def terminate_instances(instance_id)
params = AWS.indexed_param('InstanceId', instance_id) params = AWS.indexed_param('InstanceId', instance_id)
request({ request({
'Action' => 'TerminateInstances', 'Action' => 'TerminateInstances',
:parser => Fog::Parsers::AWS::EC2::TerminateInstances.new :idempotent => true,
:parser => Fog::Parsers::AWS::EC2::TerminateInstances.new
}.merge!(params)) }.merge!(params))
end end