From 607c66f80af817f67fd7f034972737edc2666eb3 Mon Sep 17 00:00:00 2001 From: Michael Gugino Date: Fri, 4 Nov 2016 16:09:19 -0400 Subject: [PATCH] Validate apache2 mpm module switching for bug #5328 This patchset updates module integration testing to validate the changes in PR #5454 This patchset instructs apache2_module to disable all mpm modules, enable mpm_event, then disable mpm_event and enable mpm_worker. This patchset instructs apache2_module to disable all mpm modules with `ignore_configcheck` set to False and then disable all mpm modules with `ignore_configcheck` set to True. SuSe family of distributions do not ship apache2 with mpm modules other than prefork. mpm_event and mpm_worker checks are skipped for SuSe family of distributions. Fixes: #5328 --- .../apache2_module/tasks/actualtest.yml | 81 ++++++++++++++++++- 1 file changed, 80 insertions(+), 1 deletion(-) diff --git a/test/integration/targets/apache2_module/tasks/actualtest.yml b/test/integration/targets/apache2_module/tasks/actualtest.yml index 928876ff96..79f75f3376 100644 --- a/test/integration/targets/apache2_module/tasks/actualtest.yml +++ b/test/integration/targets/apache2_module/tasks/actualtest.yml @@ -89,9 +89,88 @@ force: True when: "ansible_os_family == 'Debian'" - - name: enable evasive module, test https://github.com/ansible/ansible/issues/22635 apache2_module: name: evasive state: present when: "ansible_os_family == 'Debian'" + +- name: disable mpm modules + apache2_module: + name: "{{ item }}" + state: absent + ignore_configcheck: True + with_items: + - mpm_worker + - mpm_event + - mpm_prefork + when: "ansible_os_family == 'Debian'" + +- name: enabled mpm_event + apache2_module: + name: mpm_event + state: present + ignore_configcheck: True + register: enabledmpmevent + when: "ansible_os_family == 'Debian'" + +- name: ensure changed mpm_event + assert: + that: + - 'enabledmpmevent.changed' + when: "ansible_os_family == 'Debian'" + +- name: switch between mpm_event and mpm_worker + apache2_module: + name: "{{ item.name }}" + state: "{{ item.state }}" + ignore_configcheck: True + with_items: + - name: mpm_event + state: absent + - name: mpm_worker + state: present + when: "ansible_os_family == 'Debian'" + +- name: ensure mpm_worker is already enabled + apache2_module: + name: mpm_worker + state: present + register: enabledmpmworker + when: "ansible_os_family == 'Debian'" + +- name: ensure mpm_worker unchanged + assert: + that: + - 'not enabledmpmworker.changed' + when: "ansible_os_family == 'Debian'" + +- name: try to disable all mpm modules with configcheck + apache2_module: + name: "{{item}}" + state: absent + with_items: + - mpm_worker + - mpm_event + - mpm_prefork + ignore_errors: yes + register: remove_with_configcheck + when: "ansible_os_family == 'Debian'" + +- name: ensure configcheck fails task with when run without mpm modules + assert: + that: + - "{{ item.failed }}" + with_items: "{{ remove_with_configcheck.results }}" + when: "ansible_os_family == 'Debian'" + +- name: try to disable all mpm modules without configcheck + apache2_module: + name: "{{item}}" + state: absent + ignore_configcheck: True + with_items: + - mpm_worker + - mpm_event + - mpm_prefork + when: "ansible_os_family == 'Debian'"