diff --git a/lib/ansible/modules/cloud/amazon/ec2_ami.py b/lib/ansible/modules/cloud/amazon/ec2_ami.py index 84c30a9667..f335835a73 100644 --- a/lib/ansible/modules/cloud/amazon/ec2_ami.py +++ b/lib/ansible/modules/cloud/amazon/ec2_ami.py @@ -420,8 +420,8 @@ def create_image(module, connection): device = rename_item_if_exists(device, 'volume_type', 'VolumeType', 'Ebs') device = rename_item_if_exists(device, 'snapshot_id', 'SnapshotId', 'Ebs') device = rename_item_if_exists(device, 'delete_on_termination', 'DeleteOnTermination', 'Ebs') - device = rename_item_if_exists(device, 'size', 'VolumeSize', 'Ebs') - device = rename_item_if_exists(device, 'volume_size', 'VolumeSize', 'Ebs') + device = rename_item_if_exists(device, 'size', 'VolumeSize', 'Ebs', attribute_type=int) + device = rename_item_if_exists(device, 'volume_size', 'VolumeSize', 'Ebs', attribute_type=int) device = rename_item_if_exists(device, 'iops', 'Iops', 'Ebs') device = rename_item_if_exists(device, 'encrypted', 'Encrypted', 'Ebs') block_device_mapping.append(device) @@ -626,13 +626,15 @@ def get_image_by_id(module, connection, image_id): module.fail_json_aws(e, msg="Error retrieving image by image_id") -def rename_item_if_exists(dict_object, attribute, new_attribute, child_node=None): +def rename_item_if_exists(dict_object, attribute, new_attribute, child_node=None, attribute_type=None): new_item = dict_object.get(attribute) if new_item is not None: + if attribute_type is not None: + new_item = attribute_type(new_item) if child_node is None: - dict_object[new_attribute] = dict_object.get(attribute) + dict_object[new_attribute] = new_item else: - dict_object[child_node][new_attribute] = dict_object.get(attribute) + dict_object[child_node][new_attribute] = new_item dict_object.pop(attribute) return dict_object