Skip to content

Commit

Permalink
More fixes
Browse files Browse the repository at this point in the history
Signed-off-by: Alina Buzachis <[email protected]>
  • Loading branch information
alinabuzachis authored and tremble committed Sep 7, 2023
1 parent d616413 commit cb4493a
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 18 deletions.
9 changes: 5 additions & 4 deletions plugins/module_utils/ec2.py
Original file line number Diff line number Diff line change
Expand Up @@ -316,10 +316,11 @@ def helper_describe_import_image_tasks(client, module, **params):


def ensure_ec2_import_image_result(module, import_image_info):
result = {"import_image": {}}
result = {"import_image": []}

import_image_info["Tags"] = boto3_tag_list_to_ansible_dict(import_image_info["Tags"])
result["import_image"] = camel_dict_to_snake_dict(import_image_info)
result["import_image"]["task_name"] = module.params["task_name"]
if import_image_info:
for image in import_image_info:
image["Tags"] = boto3_tag_list_to_ansible_dict(image["Tags"])
result["import_image"].append(camel_dict_to_snake_dict(image, ignore_list=['Tags']))

return result
18 changes: 10 additions & 8 deletions plugins/modules/ec2_import_image.py
Original file line number Diff line number Diff line change
Expand Up @@ -258,6 +258,7 @@
from ansible_collections.amazon.aws.plugins.module_utils.tagging import boto3_tag_specifications
from ansible_collections.amazon.aws.plugins.module_utils.ec2 import helper_describe_import_image_tasks
from ansible_collections.amazon.aws.plugins.module_utils.ec2 import ensure_ec2_import_image_result
from ansible.module_utils.common.dict_transformations import snake_dict_to_camel_dict


def absent():
Expand All @@ -267,7 +268,7 @@ def absent():

filters = {
"Filters": [
{"Name": "name", "Values": [module.params["task_name"]]},
{"Name": "tag:Name", "Values": [module.params["task_name"]]},
{"Name": "task-state", "Values": ["active"]},
]
}
Expand All @@ -293,7 +294,7 @@ def absent():
else:
module.exit_json(changed=False, msg="The specified import task does not exist or it cannot be cancelled")

module.exit_json(changed=True, **ensure_ec2_import_image_result(module, result))
module.exit_json(changed=True, **ensure_ec2_import_image_result(module, import_image_info))


def present():
Expand All @@ -304,11 +305,11 @@ def present():
if module.params.get("architecture"):
params["Architecture"] = module.params["architecture"]
if module.params.get("client_data"):
params["ClientData"] = module.params["client_data"]
params["ClientData"] = snake_dict_to_camel_dict(module.params["client_data"], capitalize_first=True)
if module.params.get("description"):
params["Description"] = module.params["description"]
if module.params.get("disk_containers"):
params["DiskContainers"] = module.params["disk_containers"]
params["DiskContainers"] = snake_dict_to_camel_dict(module.params["disk_containers"], capitalize_first=True)
if module.params.get("encrypted"):
params["Encrypted"] = module.params["encrypted"]
if module.params.get("hypervisor"):
Expand All @@ -322,7 +323,7 @@ def present():
if module.params.get("role_name"):
params["RoleName"] = module.params["role_name"]
if module.params.get("license_specifications"):
params["LicenseSpecifications"] = module.params["license_specifications"]
params["LicenseSpecifications"] = snake_dict_to_camel_dict(module.params["license_specifications"], capitalize_first=True)
if module.params.get("usage_operation"):
params["UsageOperation"] = module.params["usage_operation"]
if module.params.get("boot_mode"):
Expand All @@ -334,18 +335,18 @@ def present():

filters = {
"Filters": [
{"Name": "name", "Values": [module.params["task_name"]]},
{"Name": "tag:Name", "Values": [module.params["task_name"]]},
{"Name": "task-state", "Values": ["completed", "active", "deleting"]},
]
}
import_image_info = helper_describe_import_image_tasks(client, module, **filters)

if import_image_info:
# Import tasks cannot be modified
import_image_info[0]["TaskName"] = module.params["task_name"]
module.exit_json(
changed=False,
msg="An import task with the specified name already exists",
**ensure_ec2_import_image_result(module, result),
**ensure_ec2_import_image_result(module, import_image_info),
)
else:
if module.check_mode:
Expand All @@ -354,6 +355,7 @@ def present():
try:
client.import_image(aws_retry=True, **params)
import_image_info = helper_describe_import_image_tasks(client, module, **filters)
import_image_info[0]["TaskName"] = module.params["task_name"]
except (botocore.exceptions.ClientError, botocore.exceptions.BotoCoreError) as e:
module.fail_json_aws(e, msg="Failed to import the image")

Expand Down
12 changes: 6 additions & 6 deletions plugins/modules/ec2_import_image_info.py
Original file line number Diff line number Diff line change
Expand Up @@ -181,17 +181,17 @@ def main():
)

module = AnsibleAWSModule(argument_spec=argument_spec, supports_check_mode=True)

client = module.client("ec2", retry_decorator=AWSRetry.jittered_backoff())
params = {}

params = {
"Filters": module.params["filters"],
"ImportTaskIds": module.params["import_task_ids"],
}
if module.params.get("filters"):
params["Filters"] = module.params["filters"]
if module.params.get("import_task_ids"):
params["ImportTaskIds"] = module.params["import_task_ids"]

import_image_info = helper_describe_import_image_tasks(client, module, **params)

module.exit_json(import_image=ensure_ec2_import_image_result(import_image_info))
module.exit_json(**ensure_ec2_import_image_result(module, import_image_info))


if __name__ == "__main__":
Expand Down

0 comments on commit cb4493a

Please sign in to comment.