mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-24 22:00:22 -07:00
AWS WAF module custom waiter (#37026)
Consolidate waiters to a single file * Add waiter message with token ID * Add waiter Add waiter for WAF change tokens Working waiter for waf_condition module Add support for waiters to waf_rule * WAF data model refactor * Fix ref to self.client * Add custom waiters to aws_waf_web_acl * Allow add/remove rule tasks to operate in parallel, then wait for their change tokens to complete * Move waiter into run_func_with_change_token_backoff since it is generic to all WAF update operations * Wait for deletes on waf_web_acl * Remove always-wait * Remove waiter retry catch
This commit is contained in:
parent
534e9e142b
commit
1c7b9e66b4
5 changed files with 82 additions and 19 deletions
|
@ -30,6 +30,7 @@ This module adds shared support for Web Application Firewall modules
|
|||
"""
|
||||
|
||||
from ansible.module_utils.ec2 import camel_dict_to_snake_dict, AWSRetry
|
||||
from ansible.module_utils.aws.waiters import get_waiter
|
||||
|
||||
try:
|
||||
import botocore
|
||||
|
@ -183,6 +184,13 @@ def get_change_token(client, module):
|
|||
|
||||
|
||||
@AWSRetry.backoff(tries=10, delay=2, backoff=2.0, catch_extra_error_codes=['WAFStaleDataException'])
|
||||
def run_func_with_change_token_backoff(client, module, params, func):
|
||||
def run_func_with_change_token_backoff(client, module, params, func, wait=False):
|
||||
params['ChangeToken'] = get_change_token(client, module)
|
||||
return func(**params)
|
||||
result = func(**params)
|
||||
if wait:
|
||||
get_waiter(
|
||||
client, 'change_token_in_sync',
|
||||
).wait(
|
||||
ChangeToken=result['ChangeToken']
|
||||
)
|
||||
return result
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue