From c06b63ce82c54c14087cc8604c41a6744b9592bd Mon Sep 17 00:00:00 2001 From: willthames Date: Tue, 15 Oct 2013 16:26:11 +1000 Subject: [PATCH] Added ability to create EC2 volume from snapshot ec2_vol module now takes optional snapshot argument Added relevant module argument handler and documentation --- library/cloud/ec2_vol | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/library/cloud/ec2_vol b/library/cloud/ec2_vol index a60e0b71f81..d3c527f7378 100644 --- a/library/cloud/ec2_vol +++ b/library/cloud/ec2_vol @@ -77,6 +77,11 @@ options: required: false default: null aliases: ['aws_zone', 'ec2_zone'] + snapshot: + description: + - snapshot ID on which to base the volume + required: false + default: null requirements: [ "boto" ] author: Lester Wade ''' @@ -139,6 +144,7 @@ def main(): ec2_url = dict(), ec2_secret_key = dict(aliases=['aws_secret_key', 'secret_key'], no_log=True), ec2_access_key = dict(aliases=['aws_access_key', 'access_key']), + snapshot = dict(), ) ) @@ -147,6 +153,7 @@ def main(): iops = module.params.get('iops') device_name = module.params.get('device_name') zone = module.params.get('zone') + snapshot = module.params.get('snapshot') ec2 = ec2_connect(module) @@ -178,7 +185,7 @@ def main(): # If no instance supplied, try volume creation based on module parameters. try: - volume = ec2.create_volume(volume_size, zone, None, volume_type, iops) + volume = ec2.create_volume(volume_size, zone, snapshot, volume_type, iops) while volume.status != 'available': time.sleep(3) volume.update()