mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
136 lines
3.4 KiB
YAML
136 lines
3.4 KiB
YAML
|
---
|
||
|
- name: setup create a directory to serve files from
|
||
|
file:
|
||
|
dest: "{{ files_dir }}"
|
||
|
state: directory
|
||
|
|
||
|
- name: setup webserver
|
||
|
copy:
|
||
|
src: "testserver.py"
|
||
|
dest: "{{ output_dir }}/testserver.py"
|
||
|
|
||
|
- name: setup a path
|
||
|
file:
|
||
|
path: /tmp/wait_for_file
|
||
|
state: touch
|
||
|
|
||
|
- name: setup remove a file after 10s
|
||
|
shell: sleep 10 && rm /tmp/wait_for_file
|
||
|
async: 20
|
||
|
poll: 0
|
||
|
|
||
|
- name: test for absent path
|
||
|
wait_for:
|
||
|
path: /tmp/wait_for_file
|
||
|
state: absent
|
||
|
timeout: 20
|
||
|
register: waitfor
|
||
|
- name: verify test for absent path
|
||
|
assert:
|
||
|
that:
|
||
|
- waitfor|success
|
||
|
- "waitfor.path == '/tmp/wait_for_file'"
|
||
|
- waitfor.elapsed <= 10
|
||
|
- waitfor.elapsed > 0
|
||
|
|
||
|
- name: setup create a file after 10s
|
||
|
shell: sleep 10 && touch /tmp/wait_for_file
|
||
|
async: 20
|
||
|
poll: 0
|
||
|
|
||
|
- name: test for present path
|
||
|
wait_for:
|
||
|
path: /tmp/wait_for_file
|
||
|
timeout: 20
|
||
|
register: waitfor
|
||
|
- name: verify test for absent path
|
||
|
assert:
|
||
|
that:
|
||
|
- waitfor|success
|
||
|
- "waitfor.path == '/tmp/wait_for_file'"
|
||
|
- waitfor.elapsed <= 10
|
||
|
- waitfor.elapsed > 0
|
||
|
|
||
|
- name: setup write keyword to file after 10s
|
||
|
shell: rm -f /tmp/wait_for_keyword && sleep 10 && echo completed > /tmp/wait_for_keyword
|
||
|
async: 20
|
||
|
poll: 0
|
||
|
|
||
|
- name: test wait for keyword in file
|
||
|
wait_for:
|
||
|
path: /tmp/wait_for_keyword
|
||
|
search_regex: completed
|
||
|
timeout: 20
|
||
|
register: waitfor
|
||
|
- name: verify test wait for port timeout
|
||
|
assert:
|
||
|
that:
|
||
|
- waitfor|success
|
||
|
- "waitfor.search_regex == 'completed'"
|
||
|
- waitfor.elapsed <= 10
|
||
|
- waitfor.elapsed > 0
|
||
|
|
||
|
- name: test wait for port timeout
|
||
|
wait_for:
|
||
|
port: 12121
|
||
|
timeout: 3
|
||
|
register: waitfor
|
||
|
ignore_errors: true
|
||
|
- name: verify test wait for port timeout
|
||
|
assert:
|
||
|
that:
|
||
|
- waitfor|failed
|
||
|
- waitfor.elapsed == 3
|
||
|
- "waitfor.msg == 'Timeout when waiting for 127.0.0.1:12121'"
|
||
|
|
||
|
- name: test fail with custom msg
|
||
|
wait_for:
|
||
|
port: 12121
|
||
|
msg: fail with custom message
|
||
|
timeout: 3
|
||
|
register: waitfor
|
||
|
ignore_errors: true
|
||
|
- name: verify test fail with custom msg
|
||
|
assert:
|
||
|
that:
|
||
|
- waitfor|failed
|
||
|
- waitfor.elapsed == 3
|
||
|
- "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 }}
|
||
|
async: 120 # this test set can take ~1m to run on FreeBSD (via Shippable)
|
||
|
poll: 0
|
||
|
|
||
|
- name: test wait for port with sleep
|
||
|
wait_for:
|
||
|
port: "{{ http_port }}"
|
||
|
sleep: 3
|
||
|
register: waitfor
|
||
|
- name: verify test wait for port sleep
|
||
|
assert:
|
||
|
that:
|
||
|
- waitfor|success
|
||
|
- not waitfor|changed
|
||
|
- "waitfor.port == {{ http_port }}"
|
||
|
|
||
|
# TODO: fix drain test for freebsd and macOS, ubuntu-py3
|
||
|
- name: setup install psutil
|
||
|
package:
|
||
|
name: python-psutil
|
||
|
when: ansible_system == "Linux" and not (ansible_distribution == "Ubuntu" and ansible_distribution_version == "16.04")
|
||
|
|
||
|
- name: test wait for port drained
|
||
|
wait_for:
|
||
|
port: "{{ http_port }}"
|
||
|
state: drained
|
||
|
register: waitfor
|
||
|
when: ansible_system == "Linux" and not (ansible_distribution == "Ubuntu" and ansible_distribution_version == "16.04")
|
||
|
- name: verify test wait for port
|
||
|
assert:
|
||
|
that:
|
||
|
- waitfor|success
|
||
|
- not waitfor|changed
|
||
|
- "waitfor.port == {{ http_port }}"
|
||
|
when: ansible_system == "Linux" and not (ansible_distribution == "Ubuntu" and ansible_distribution_version == "16.04")
|