def main()

in src/ansible_collections/alibaba/apsarastack/plugins/modules/ali_image_info.py [0:0]


def main():
    argument_spec = common_argument_spec()
    argument_spec.update(dict(
        image_ids=dict(type='list', elements='str', aliases=['ids']),
        image_names=dict(type='list', elements='str', aliases=['names']),
    )
    )
    module = AnsibleModule(argument_spec=argument_spec)
    if HAS_FOOTMARK is False:
        module.fail_json(msg="Package 'footmark' required for this module.")

    image_ids = module.params['image_ids']
    image_names = module.params['image_names']
    result = []
    ids = []

    if image_ids and (not isinstance(image_ids, list) or len(image_ids)) < 1:
        module.fail_json(msg='image_ids should be a list of image id, aborting')

    if image_names and (not isinstance(image_names, list) or len(image_names)) < 1:
        module.fail_json(msg='image_names should be a list of image name, aborting')

    try:
        ecs = ecs_connect(module)
        if image_ids:
            image_id = ",".join(image_ids)
            for image in get_images(module, image_id=image_id):
                result.append(get_info(image))
                ids.append(image["ImageId"])

        elif image_names:
            for name in image_names:
                for image in get_images(module, image_name=name):
                    if image:
                        result.append(get_info(image))
                        ids.append(image["ImageId"])

        else:
            for image in get_images(module):
                result.append(get_info(image))
                ids.append(image["ImageId"])

        module.exit_json(changed=False, image_ids=ids, images=result, total=len(result))

    except ECSResponseError as e:
        module.fail_json(msg='Error in describe images: %s' % str(e))