def main():

    arg_spec = dict(name=dict(type='str', required=True),
                    scope=dict(type='str',
                               required=True,
                               choices=['CLOUDFRONT', 'REGIONAL']))

    module = AnsibleAWSModule(argument_spec=arg_spec)

    state = module.params.get("state")
    name = module.params.get("name")
    scope = module.params.get("scope")

    wafv2 = module.client('wafv2')
    # check if web acl exists
    response = wafv2_list_web_acls(wafv2, scope, module.fail_json_aws)

    id = None
    retval = {}

    for item in response.get('WebACLs'):
        if item.get('Name') == name:
            id = item.get('Id')

    if id:
        existing_acl = get_web_acl(wafv2, name, scope, id,
                                   module.fail_json_aws)
        retval = camel_dict_to_snake_dict(existing_acl.get('WebACL'))

    module.exit_json(**retval)
Пример #2
0
def main():

    arg_spec = dict(
        state=dict(type='str', required=True, choices=['present', 'absent']),
        name=dict(type='str'),
        scope=dict(type='str', choices=['CLOUDFRONT', 'REGIONAL']),
        arn=dict(type='str', required=True)
    )

    module = AnsibleAWSModule(
        argument_spec=arg_spec,
        supports_check_mode=True,
        required_if=[['state', 'present', ['name', 'scope']]]
    )

    state = module.params.get("state")
    name = module.params.get("name")
    scope = module.params.get("scope")
    arn = module.params.get("arn")
    check_mode = module.check_mode

    wafv2 = module.client('wafv2')

    # check if web acl exists

    response = wafv2_list_web_acls(wafv2, scope, module.fail_json_aws)

    id = None
    retval = {}
    change = False

    for item in response.get('WebACLs'):
        if item.get('Name') == name:
            id = item.get('Id')

    if id:
        existing_acl = get_web_acl(wafv2, name, scope, id, module.fail_json_aws)
        waf_arn = existing_acl.get('WebACL').get('ARN')

        retval = list_wafv2_resources(wafv2, waf_arn, module.fail_json_aws)

    if state == 'present':
        if retval:
            if arn not in retval.get('ResourceArns'):
                change = True
                if not check_mode:
                    retval = add_wafv2_resources(wafv2, waf_arn, arn, module.fail_json_aws)

    elif state == 'absent':
        if retval:
            if arn in retval.get('ResourceArns'):
                change = True
                if not check_mode:
                    retval = remove_resources(wafv2, arn, module.fail_json_aws)

    module.exit_json(changed=change, **camel_dict_to_snake_dict(retval))
Пример #3
0
 def list(self):
     return wafv2_list_web_acls(self.wafv2, self.scope, self.fail_json_aws)
Пример #4
0
def list_web_acls(wafv2, scope, fail_json_aws):
    return wafv2_list_web_acls(wafv2, scope, fail_json_aws)