Skip to content

Commit

Permalink
WIP
Browse files Browse the repository at this point in the history
  • Loading branch information
moreati committed Feb 1, 2025
1 parent c481965 commit 22158ee
Show file tree
Hide file tree
Showing 5 changed files with 65 additions and 91 deletions.
60 changes: 1 addition & 59 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ on:
- docs-master

env:
#ANSIBLE_VERBOSITY: 3
ANSIBLE_VERBOSITY: 3
#MITOGEN_LOG_LEVEL: DEBUG
MITOGEN_TEST_IMAGE_TEMPLATE: "ghcr.io/mitogen-hq/%(distro)s-test"

Expand All @@ -24,61 +24,9 @@ jobs:
fail-fast: false
matrix:
include:
- name: Ans_27_210
tox_env: py27-mode_ansible-ansible2.10
- name: Ans_27_4
tox_env: py27-mode_ansible-ansible4

- name: Ans_36_210
python_version: '3.6'
tox_env: py36-mode_ansible-ansible2.10
- name: Ans_36_4
python_version: '3.6'
tox_env: py36-mode_ansible-ansible4

- name: Ans_311_210
python_version: '3.11'
tox_env: py311-mode_ansible-ansible2.10
- name: Ans_311_3
python_version: '3.11'
tox_env: py311-mode_ansible-ansible3
- name: Ans_311_4
python_version: '3.11'
tox_env: py311-mode_ansible-ansible4
- name: Ans_311_5
python_version: '3.11'
tox_env: py311-mode_ansible-ansible5
- name: Ans_313_6
python_version: '3.13'
tox_env: py313-mode_ansible-ansible6
- name: Ans_313_7
python_version: '3.13'
tox_env: py313-mode_ansible-ansible7
- name: Ans_313_8
python_version: '3.13'
tox_env: py313-mode_ansible-ansible8
- name: Ans_313_9
python_version: '3.13'
tox_env: py313-mode_ansible-ansible9
- name: Ans_313_10
python_version: '3.13'
tox_env: py313-mode_ansible-ansible10
- name: Ans_313_11
python_version: '3.13'
tox_env: py313-mode_ansible-ansible11

- name: Van_313_11
python_version: '3.13'
tox_env: py313-mode_ansible-ansible11-strategy_linear

- name: Mito_27
tox_env: py27-mode_mitogen
- name: Mito_36
python_version: '3.6'
tox_env: py36-mode_mitogen
- name: Mito_313
python_version: '3.13'
tox_env: py313-mode_mitogen

steps:
- uses: actions/checkout@v4
Expand Down Expand Up @@ -171,12 +119,6 @@ jobs:
- name: Mito_313
tox_env: py313-mode_mitogen

- name: Loc_313_11
tox_env: py313-mode_localhost-ansible11

- name: Van_313_11
tox_env: py313-mode_localhost-ansible11-strategy_linear

steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
Expand Down
1 change: 1 addition & 0 deletions ansible_mitogen/connection.py
Original file line number Diff line number Diff line change
Expand Up @@ -491,6 +491,7 @@ class Connection(ansible.plugins.connection.ConnectionBase):
#: Only sudo, su, and doas are supported for now.
# Ansible ConnectionBase attribute, removed in Ansible >= 2.8
become_methods = ['sudo', 'su', 'doas']
become_methods += ['mitogen.builtin.%s' % s for s in become_methods]

#: Dict containing init_child() return value as recorded at startup by
#: ContextService. Contains:
Expand Down
21 changes: 0 additions & 21 deletions tests/ansible/regression/all.yml
Original file line number Diff line number Diff line change
@@ -1,22 +1 @@
- import_playbook: issue_109__target_has_old_ansible_installed.yml
- import_playbook: issue_113__duplicate_module_imports.yml
- import_playbook: issue_118__script_not_marked_exec.yml
- import_playbook: issue_122__environment_difference.yml
- import_playbook: issue_140__thread_pileup.yml
- import_playbook: issue_152__local_action_wrong_interpreter.yml
- import_playbook: issue_152__virtualenv_python_fails.yml
- import_playbook: issue_154__module_state_leaks.yml
- import_playbook: issue_177__copy_module_failing.yml
- import_playbook: issue_332_ansiblemoduleerror_first_occurrence.yml
- import_playbook: issue_558_unarchive_failed.yml
- import_playbook: issue_590__sys_modules_crap.yml
- import_playbook: issue_591__setuptools_cwd_crash.yml
- import_playbook: issue_615__streaming_transfer.yml
- import_playbook: issue_655__wait_for_connection_error.yml
- import_playbook: issue_766__get_with_context.yml
- import_playbook: issue_776__load_plugins_called_twice.yml
- import_playbook: issue_952__ask_become_pass.yml
- import_playbook: issue_1066__add_host__host_key_checking.yml
- import_playbook: issue_1079__wait_for_connection_timeout.yml
- import_playbook: issue_1087__template_streamerror.yml
- import_playbook: issue_1232__fully_qualified_names_become_method.yml
Original file line number Diff line number Diff line change
@@ -1,23 +1,74 @@
- name: regression/issue_1232__fully_qualified_names_become_method.yml (1/2)
- name: regression/issue_1232__fully_qualified_names_become_method.yml (1/3)
hosts: test-targets
become_method: ansible.builtin.sudo
# become_method: ansible.builtin.sudo
become_method: sudo
tasks:
- name: Run a shell command with sudo root
vars:
ansible_become_pass: rootpassword
ansible.builtin.command: whoami
- name: Test FQCN sudo, passwordless
become: true
become_user: root
command:
cmd: whoami
register: fqcn_sudo_passwordless_whoami
changed_when: false

- assert:
that:
- fqcn_sudo_passwordless_whoami.stdout == 'root'
fail_msg: |
fqcn_sudo_passwordless_whoami={{ fqcn_sudo_passwordless_whoami }}
tags:
- sudo

- name: regression/issue_1232__fully_qualified_names_become_method.yml (2/2)
- name: regression/issue_1232__fully_qualified_names_become_method.yml (2/3)
hosts: test-targets
become_method: ansible.builtin.su
# become_method: ansible.builtin.sudo
become_method: sudo
tasks:
- name: Run a shell command with su mitogen__user1
- name: Test FQCN sudo, password required
become: true
become_user: mitogen__pw_required
vars:
ansible_become_pass: user1_password
ansible_become_pass: pw_required_password
command:
cmd: whoami
register: fqcn_sudo_password_whoami
changed_when: false
when:
- become_unpriv_available
ansible.builtin.command: whoami

- assert:
that:
- fqcn_sudo_password_whoami.stdout == 'mitogen__pw_required'
fail_msg: |
fqcn_sudo_password_whoami={{ fqcn_sudo_password_whoami }}
when:
- become_unpriv_available
tags:
- sudo

- name: regression/issue_1232__fully_qualified_names_become_method.yml (3/3)
hosts: test-targets
# become_method: ansible.builtin.su
become_method: su
tasks:
- name: Test FQCN su, password required
become: true
become_user: mitogen__user1
vars:
ansible_become_pass: user1_password
command:
cmd: whoami
register: fqcn_su_password_whoami
changed_when: false
when:
- become_unpriv_available

- assert:
that:
- fqcn_su_password_whoami.stdout == 'mitogen__user1'
fail_msg: |
fqcn_su_password_whoami={{ fqcn_su_password_whoami }}
when:
- become_unpriv_available
tags:
- su
1 change: 1 addition & 0 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,7 @@ setenv =
PIP_CONSTRAINT={toxinidir}/tests/constraints.txt
# Print warning on the first occurence at each module:linenno in Mitogen. Available Python 2.7, 3.2+.
PYTHONWARNINGS=default:::ansible_mitogen,default:::mitogen
MITOGEN_TEST_DISTRO_SPECS=centos7
# Ansible 6 - 8 (ansible-core 2.13 - 2.15) require Python 2.7 or >= 3.5 on targets
ansible6: MITOGEN_TEST_DISTRO_SPECS=centos7 centos8 debian9 debian10 debian11 ubuntu1604 ubuntu1804 ubuntu2004
ansible7: MITOGEN_TEST_DISTRO_SPECS=centos7 centos8 debian9 debian10 debian11 ubuntu1604 ubuntu1804 ubuntu2004
Expand Down

0 comments on commit 22158ee

Please sign in to comment.