def main()

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


def main():
    argument_spec = common_argument_spec()
    argument_spec.update(dict(
        group_name=dict(type='str', aliases=['name']),
        name_prefix=dict(type='str'),
        tags=dict(type='dict'),
        group_ids=dict(type='list', elements='str', aliases=['ids']),
        filters=dict(type='dict')
    ))

    module = AnsibleModule(argument_spec=argument_spec)

    if HAS_FOOTMARK is False:
        module.fail_json(msg="Package 'footmark' required for this module.")

    ecs = ecs_connect(module)

    filters = module.params["filters"]
    if not filters:
        filters = {}

    group_ids = module.params['group_ids']
    if not group_ids:
        group_ids = []
    for key, value in list(filters.items()):
        if key in ["SecurityGroupIds", "security_group_ids", "security_group_ids"] and isinstance(group_ids, list):
            for id in value:
                if id not in group_ids:
                    group_ids.append(id)
    if group_ids:
        filters["security_group_ids"] = group_ids

    name = module.params['group_name']
    name_prefix = module.params['name_prefix']
    if module.params['tags']:
        filters['tags'] = module.params['tags']

    changed = False
    groups = []
    ids = []
    try:
        for sg in ecs.describe_security_groups(**filters):
            if name and sg.security_group_name != name:
                continue
            if name_prefix and not str(sg.security_group_name).startswith(name_prefix):
                continue
            groups.append(sg.get().read())
            ids.append(sg.id)
    except ECSResponseError as e:
        module.fail_json(msg='Error in describe_security_groups: {0}'.format(e))

    module.exit_json(changed=changed, ids=ids, groups=groups)