@ -151,7 +151,7 @@ EXAMPLES = '''
volumes :
- device_name : / dev / sda1
volume_size : 100
devic e_type: io1
volum e_type: io1
iops : 3000
delete_on_termination : true
encrypted : true
@ -168,7 +168,7 @@ EXAMPLES = '''
volumes :
- device_name : / dev / sda1
volume_size : 120
devic e_type: io1
volum e_type: io1
iops : 3000
delete_on_termination : true
@ -188,11 +188,27 @@ except ImportError:
def create_block_device_meta ( module , volume ) :
MAX_IOPS_TO_SIZE_RATIO = 30
# device_type has been used historically to represent volume_type,
# however ec2_vol uses volume_type, as does the BlockDeviceType, so
# we add handling for either/or but not both
if ' device_type ' in volume :
if ' volume_type ' in volume :
module . fail_json ( msg = ' device_type is a deprecated name for volume_type. '
' Do not use both device_type and volume_type ' )
else :
module . deprecate ( ' device_type is deprecated for block devices - use volume_type instead ' ,
version = 2.9 )
# rewrite device_type key to volume_type
if ' device_type ' in volume :
volume [ ' volume_type ' ] = volume . pop ( ' device_type ' )
if ' snapshot ' not in volume and ' ephemeral ' not in volume :
if ' volume_size ' not in volume :
module . fail_json ( msg = ' Size must be specified when creating a new volume or modifying the root volume ' )
if ' snapshot ' in volume :
if ' device_type ' in volume and volume . get ( ' device_type ' ) == ' io1 ' and ' iops ' not in volume :
if volume . get ( ' volum e_type' ) == ' io1 ' and ' iops ' not in volume :
module . fail_json ( msg = ' io1 volumes must have an iops value set ' )
if ' ephemeral ' in volume :
if ' snapshot ' in volume :