|
|
|
# related: issue #511, #536
|
|
|
|
# Each case is followed by mitogen_via= case to test hostvars method.
|
|
|
|
|
|
|
|
|
|
|
|
# If ansible_python_interpreter isn't set, Ansible 2.8+ tries to connect and
|
|
|
|
# detect the interpreter. If that fails (e.g. connection timeout)
|
|
|
|
# - Ansible 2.8 - 9 (ansible-core 2.8 - 2.16) assumes "/usr/bin/python"
|
|
|
|
# - Ansible 10+ (ansible-core 2.17+) marks the target unreachable
|
|
|
|
- name: integration/transport_config/python_path.yml
|
|
|
|
hosts: tc-python-path-unset
|
|
|
|
tasks:
|
|
|
|
- include_tasks: ../_mitogen_only.yml
|
|
|
|
- meta: end_play
|
|
|
|
when:
|
|
|
|
- ansible_version.full is version('2.17', '>=', strict=True)
|
|
|
|
- {mitogen_get_stack: {}, register: out}
|
|
|
|
- assert_equal:
|
|
|
|
left: out.result[0].kwargs.python_path
|
|
|
|
right: ["{{out.discovered_interpreter}}"]
|
|
|
|
tags:
|
|
|
|
- mitogen_only
|
|
|
|
|
|
|
|
- hosts: tc-python-path-hostvar
|
|
|
|
vars: {mitogen_via: tc-python-path-unset}
|
|
|
|
tasks:
|
|
|
|
- include_tasks: ../_mitogen_only.yml
|
|
|
|
- meta: end_play
|
|
|
|
when:
|
|
|
|
- ansible_version.full is version('2.17', '>=', strict=True)
|
|
|
|
- {mitogen_get_stack: {}, register: out}
|
|
|
|
- assert_equal:
|
|
|
|
left: out.result[0].kwargs.python_path
|
|
|
|
right: ["{{out.discovered_interpreter}}"]
|
|
|
|
- assert_equal:
|
|
|
|
left: out.result[1].kwargs.python_path
|
|
|
|
right: ["/hostvar/path/to/python"]
|
|
|
|
tags:
|
|
|
|
- mitogen_only
|
|
|
|
|
|
|
|
|
|
|
|
# Non-localhost with explicit ansible_python_interpreter
|
|
|
|
- hosts: tc-python-path-hostvar
|
|
|
|
tasks:
|
|
|
|
- include_tasks: ../_mitogen_only.yml
|
|
|
|
- {mitogen_get_stack: {}, register: out}
|
|
|
|
- assert_equal:
|
|
|
|
left: out.result[0].kwargs.python_path
|
|
|
|
right: [/hostvar/path/to/python]
|
|
|
|
tags:
|
|
|
|
- mitogen_only
|
|
|
|
|
|
|
|
- hosts: tc-python-path-unset
|
|
|
|
vars: {mitogen_via: tc-python-path-hostvar}
|
|
|
|
tasks:
|
|
|
|
- include_tasks: ../_mitogen_only.yml
|
|
|
|
- meta: end_play
|
|
|
|
when:
|
|
|
|
- ansible_version.full is version('2.17', '>=', strict=True)
|
|
|
|
- {mitogen_get_stack: {}, register: out}
|
|
|
|
- assert_equal:
|
|
|
|
left: out.result[0].kwargs.python_path
|
|
|
|
right: ["/hostvar/path/to/python"]
|
|
|
|
- assert_equal:
|
|
|
|
left: out.result[1].kwargs.python_path
|
|
|
|
right: ["{{out.discovered_interpreter}}"]
|
|
|
|
tags:
|
|
|
|
- mitogen_only
|
|
|
|
|
|
|
|
|
|
|
|
# Implicit localhost gets ansible_python_interpreter=virtualenv interpreter
|
|
|
|
- hosts: localhost
|
|
|
|
tasks:
|
|
|
|
- include_tasks: ../_mitogen_only.yml
|
|
|
|
- {mitogen_get_stack: {}, register: out}
|
|
|
|
- assert_equal:
|
|
|
|
left: out.result[0].kwargs.python_path
|
|
|
|
right: ["{{ansible_playbook_python}}"]
|
|
|
|
tags:
|
|
|
|
- mitogen_only
|
|
|
|
|
|
|
|
- hosts: tc-python-path-unset
|
|
|
|
vars: {mitogen_via: localhost}
|
|
|
|
tasks:
|
|
|
|
- include_tasks: ../_mitogen_only.yml
|
|
|
|
- meta: end_play
|
|
|
|
when:
|
|
|
|
- ansible_version.full is version('2.17', '>=', strict=True)
|
|
|
|
- {mitogen_get_stack: {}, register: out}
|
|
|
|
- assert_equal:
|
|
|
|
left: out.result[0].kwargs.python_path
|
|
|
|
right: ["{{ansible_playbook_python}}"]
|
|
|
|
- assert_equal:
|
|
|
|
left: out.result[1].kwargs.python_path
|
|
|
|
right: ["{{out.discovered_interpreter}}"]
|
|
|
|
tags:
|
|
|
|
- mitogen_only
|
|
|
|
|
|
|
|
|
|
|
|
# explicit local connections get the same treatment as everything else.
|
|
|
|
- hosts: tc-python-path-local-unset
|
|
|
|
tasks:
|
|
|
|
- include_tasks: ../_mitogen_only.yml
|
|
|
|
- {mitogen_get_stack: {}, register: out}
|
|
|
|
- assert_equal:
|
|
|
|
left: out.result[0].kwargs.python_path
|
|
|
|
right: ["{{out.discovered_interpreter}}"]
|
|
|
|
tags:
|
|
|
|
- mitogen_only
|
|
|
|
|
|
|
|
|
|
|
|
- hosts: localhost
|
|
|
|
vars: {mitogen_via: tc-python-path-local-unset}
|
|
|
|
tasks:
|
|
|
|
- include_tasks: ../_mitogen_only.yml
|
|
|
|
- {mitogen_get_stack: {}, register: out}
|
|
|
|
- assert_equal:
|
|
|
|
left: out.result[0].kwargs.python_path
|
|
|
|
right: ["{{out.discovered_interpreter}}"]
|
|
|
|
- assert_equal:
|
|
|
|
left: out.result[1].kwargs.python_path
|
|
|
|
right: ["{{ansible_playbook_python}}"]
|
|
|
|
tags:
|
|
|
|
- mitogen_only
|
|
|
|
|
|
|
|
|
|
|
|
# explicit local connection with explicit interpreter
|
|
|
|
- hosts: tc-python-path-local-explicit
|
|
|
|
tasks:
|
|
|
|
- include_tasks: ../_mitogen_only.yml
|
|
|
|
- {mitogen_get_stack: {}, register: out}
|
|
|
|
- assert_equal:
|
|
|
|
left: out.result[0].kwargs.python_path
|
|
|
|
right: ["/a/b/c"]
|
|
|
|
tags:
|
|
|
|
- mitogen_only
|
|
|
|
|
|
|
|
- hosts: localhost
|
|
|
|
vars: {mitogen_via: tc-python-path-local-explicit}
|
|
|
|
tasks:
|
|
|
|
- include_tasks: ../_mitogen_only.yml
|
|
|
|
- {mitogen_get_stack: {}, register: out}
|
|
|
|
- assert_equal:
|
|
|
|
left: out.result[0].kwargs.python_path
|
|
|
|
right: ["/a/b/c"]
|
|
|
|
- assert_equal:
|
|
|
|
left: out.result[1].kwargs.python_path
|
|
|
|
right: ["{{ansible_playbook_python}}"]
|
|
|
|
tags:
|
|
|
|
- mitogen_only
|