|
|
|
# Ensure 'ssh' connections time out correctly.
|
|
|
|
# mitogen__slow_user performs a long sleep in ~/.profile.
|
|
|
|
# Mitogen counts this time towards the connection timeout. Ansible doesn't.
|
|
|
|
# ansible_python_interpreter=python3000 is an optimisation, to avoid waiting
|
|
|
|
# on the timeout multiple times (e.g. interpreter discovery).
|
|
|
|
|
|
|
|
- name: integration/ssh/timeouts.yml
|
|
|
|
hosts: test-targets
|
|
|
|
gather_facts: false
|
|
|
|
tasks:
|
|
|
|
- include_tasks: ../_mitogen_only.yml
|
|
|
|
|
|
|
|
- name: Cause Ansible connection timeout
|
|
|
|
connection: local
|
|
|
|
environment:
|
|
|
|
ANSIBLE_SSH_TIMEOUT: 10
|
|
|
|
ANSIBLE_VERBOSITY: "{{ ansible_verbosity }}"
|
|
|
|
command: |
|
|
|
|
ansible
|
|
|
|
{% for inv in ansible_inventory_sources %}
|
|
|
|
-i "{{ inv }}"
|
|
|
|
{% endfor %}
|
|
|
|
"{{ inventory_hostname }}"
|
|
|
|
-m ping
|
|
|
|
-e ansible_user=mitogen__slow_user -e ansible_password=slow_user_password
|
|
|
|
-e ansible_python_interpreter=python3000
|
|
|
|
args:
|
|
|
|
chdir: ../..
|
|
|
|
register: out
|
|
|
|
changed_when: false
|
|
|
|
check_mode: false
|
|
|
|
ignore_errors: true
|
|
|
|
|
|
|
|
- name: Verify connection timeout occurred
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- |
|
|
|
|
'"changed": false' in out.stdout
|
|
|
|
- |
|
|
|
|
'"unreachable": true' in out.stdout
|
|
|
|
- |
|
|
|
|
'"msg": "Connection timed out."' in out.stdout
|
|
|
|
fail_msg: |
|
|
|
|
out={{ out }}
|
|
|
|
tags:
|
|
|
|
- mitogen_only
|
|
|
|
- timeouts
|