Fix ec2_ami block_device_mapping volume_size to be int in 2.5 (#40938) (#41217)

* Fix ec2_ami block_device_mapping volume_size to be int in 2.5 (#40938)

* fix ec2_ami block_device_mapping size to be int

* fixed cr issues

renamed `type` to `attribute_type`
reused `new_item` instead of creating new variable `value`

(cherry picked from commit ab96a84154)

* changelog

(cherry picked from commit e6cd727181)

* changelog format tweak
pull/41305/head
Will Thames 7 years ago committed by Matt Davis
parent 125d1e3867
commit 1256fedd61

@ -0,0 +1,3 @@
---
bugfixes:
- ec2_ami - cast the device_mapping volume size to an int (https://github.com/ansible/ansible/pull/40938)

@ -429,8 +429,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)
@ -635,13 +635,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

Loading…
Cancel
Save