mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-09 14:50:02 -07:00
Make wait_for return matched groups defined in search_regex. Closes #… (#47690)
* Make wait_for return matched groups defined in search_regex. Closes #25020. * Fix formatting issues. * Fix issues raised in review. - Use output_dir instead of hardcoded /tmp for temp files - Sleep for only 3s instead of 10s - Revert indent change
This commit is contained in:
parent
0886c20d19
commit
9c71f176f3
2 changed files with 76 additions and 22 deletions
|
@ -11,17 +11,17 @@
|
|||
|
||||
- name: setup a path
|
||||
file:
|
||||
path: /tmp/wait_for_file
|
||||
path: "{{ output_dir }}/wait_for_file"
|
||||
state: touch
|
||||
|
||||
- name: setup remove a file after 10s
|
||||
shell: sleep 10 && rm /tmp/wait_for_file
|
||||
- name: setup remove a file after 3s
|
||||
shell: sleep 3 && rm {{ output_dir }}/wait_for_file
|
||||
async: 20
|
||||
poll: 0
|
||||
|
||||
- name: test for absent path
|
||||
wait_for:
|
||||
path: /tmp/wait_for_file
|
||||
path: "{{ output_dir }}/wait_for_file"
|
||||
state: absent
|
||||
timeout: 20
|
||||
register: waitfor
|
||||
|
@ -29,47 +29,70 @@
|
|||
assert:
|
||||
that:
|
||||
- waitfor is successful
|
||||
- "waitfor.path == '/tmp/wait_for_file'"
|
||||
- waitfor.elapsed >= 5
|
||||
- waitfor.path == "{{ output_dir | expanduser }}/wait_for_file"
|
||||
- waitfor.elapsed >= 2
|
||||
- waitfor.elapsed <= 15
|
||||
|
||||
- name: setup create a file after 10s
|
||||
shell: sleep 10 && touch /tmp/wait_for_file
|
||||
- name: setup create a file after 3s
|
||||
shell: sleep 3 && touch {{ output_dir }}/wait_for_file
|
||||
async: 20
|
||||
poll: 0
|
||||
|
||||
- name: test for present path
|
||||
wait_for:
|
||||
path: /tmp/wait_for_file
|
||||
timeout: 20
|
||||
path: "{{ output_dir }}/wait_for_file"
|
||||
timeout: 5
|
||||
register: waitfor
|
||||
- name: verify test for absent path
|
||||
assert:
|
||||
that:
|
||||
- waitfor is successful
|
||||
- "waitfor.path == '/tmp/wait_for_file'"
|
||||
- waitfor.elapsed >= 5
|
||||
- waitfor.path == "{{ output_dir | expanduser }}/wait_for_file"
|
||||
- waitfor.elapsed >= 2
|
||||
- waitfor.elapsed <= 15
|
||||
|
||||
- name: setup write keyword to file after 10s
|
||||
shell: rm -f /tmp/wait_for_keyword && sleep 10 && echo completed > /tmp/wait_for_keyword
|
||||
- name: setup write keyword to file after 3s
|
||||
shell: sleep 3 && echo completed > {{output_dir}}/wait_for_keyword
|
||||
async: 20
|
||||
poll: 0
|
||||
|
||||
- name: test wait for keyword in file
|
||||
wait_for:
|
||||
path: /tmp/wait_for_keyword
|
||||
path: "{{output_dir}}/wait_for_keyword"
|
||||
search_regex: completed
|
||||
timeout: 20
|
||||
timeout: 5
|
||||
register: waitfor
|
||||
- name: verify test wait for port timeout
|
||||
|
||||
- name: verify test wait for keyword in file
|
||||
assert:
|
||||
that:
|
||||
- waitfor is successful
|
||||
- "waitfor.search_regex == 'completed'"
|
||||
- waitfor.elapsed >= 5
|
||||
- waitfor.elapsed >= 2
|
||||
- waitfor.elapsed <= 15
|
||||
|
||||
- name: setup write keyword to file after 3s
|
||||
shell: sleep 3 && echo "completed data 123" > {{output_dir}}/wait_for_keyword
|
||||
async: 20
|
||||
poll: 0
|
||||
|
||||
- name: test wait for keyword in file with match groups
|
||||
wait_for:
|
||||
path: "{{output_dir}}/wait_for_keyword"
|
||||
search_regex: completed (?P<foo>\w+) ([0-9]+)
|
||||
timeout: 5
|
||||
register: waitfor
|
||||
|
||||
- name: verify test wait for keyword in file with match groups
|
||||
assert:
|
||||
that:
|
||||
- waitfor is successful
|
||||
- waitfor.elapsed >= 2
|
||||
- waitfor.elapsed <= 15
|
||||
- waitfor['match_groupdict'] | length == 1
|
||||
- waitfor['match_groupdict']['foo'] == 'data'
|
||||
- waitfor['match_groups'] == ['data', '123']
|
||||
|
||||
- name: test wait for port timeout
|
||||
wait_for:
|
||||
port: 12121
|
||||
|
@ -98,7 +121,7 @@
|
|||
- "waitfor.msg == 'fail with custom message'"
|
||||
|
||||
- name: setup start SimpleHTTPServer
|
||||
shell: sleep 10 && cd {{ files_dir }} && {{ ansible_python.executable }} {{ output_dir}}/testserver.py {{ http_port }}
|
||||
shell: sleep 3 && cd {{ files_dir }} && {{ ansible_python.executable }} {{ output_dir}}/testserver.py {{ http_port }}
|
||||
async: 120 # this test set can take ~1m to run on FreeBSD (via Shippable)
|
||||
poll: 0
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue