mirror of
https://github.com/ansible-collections/ansible.posix.git
synced 2026-01-11 23:25:28 +01:00
Merge pull request #277 from saito-hideki/pr/fix_integration_test_env
Fix integration test error on ansible devel branch SUMMARY Fix integration test error on ansible devel branch: Remove centos6 platforms for integration tests on the ansible devel branch from the azure-pipelines. Add delegate_to to each task of integration test for synchronized module on devel branch Modify invalid parameter test to use key instead of name for sysctl module Replace lookup plugin to slurp module in integration tests for selinux module Add creating working directory task in integration tests for acl module ISSUE TYPE Bugfix Pull Request COMPONENT NAME ansible.posix ADDITIONAL INFORMATION For the integration test for sysctl module, we probably need to handle invalid values specified as kernel param. In this case, even if I set an invalid value as a kernel param, sysctl command shows a warning message. However, the result of the command is 0. Reviewed-by: Andrew Klychkov <aaklychkov@mail.ru> Reviewed-by: Abhijeet Kasurde <None> Reviewed-by: None <None>
This commit is contained in:
commit
1ca54d181d
6 changed files with 94 additions and 20 deletions
|
|
@ -51,8 +51,6 @@ stages:
|
||||||
parameters:
|
parameters:
|
||||||
testFormat: devel/linux/{0}/1
|
testFormat: devel/linux/{0}/1
|
||||||
targets:
|
targets:
|
||||||
- name: CentOS 6
|
|
||||||
test: centos6
|
|
||||||
- name: CentOS 7
|
- name: CentOS 7
|
||||||
test: centos7
|
test: centos7
|
||||||
- name: CentOS 8
|
- name: CentOS 8
|
||||||
|
|
@ -61,8 +59,6 @@ stages:
|
||||||
test: fedora33
|
test: fedora33
|
||||||
- name: Fedora 34
|
- name: Fedora 34
|
||||||
test: fedora34
|
test: fedora34
|
||||||
- name: openSUSE 15 py2
|
|
||||||
test: opensuse15py2
|
|
||||||
- name: openSUSE 15 py3
|
- name: openSUSE 15 py3
|
||||||
test: opensuse15
|
test: opensuse15
|
||||||
- name: Ubuntu 18.04
|
- name: Ubuntu 18.04
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
---
|
||||||
|
trivial:
|
||||||
|
- Fix integration tests of synchronize and sysctl to address chaging behavior on devel branch (https://github.com/ansible-collections/overview/issues/45).
|
||||||
|
|
@ -23,6 +23,16 @@
|
||||||
group:
|
group:
|
||||||
name: "{{ test_group }}"
|
name: "{{ test_group }}"
|
||||||
|
|
||||||
|
- name: Clean up working directory and files
|
||||||
|
file:
|
||||||
|
path: "{{ output_dir }}"
|
||||||
|
state: absent
|
||||||
|
|
||||||
|
- name: Create working directory
|
||||||
|
file:
|
||||||
|
path: "{{ output_dir }}"
|
||||||
|
state: directory
|
||||||
|
|
||||||
- name: Create ansible file
|
- name: Create ansible file
|
||||||
file:
|
file:
|
||||||
path: "{{ test_file }}"
|
path: "{{ test_file }}"
|
||||||
|
|
|
||||||
|
|
@ -26,10 +26,19 @@
|
||||||
state: present
|
state: present
|
||||||
|
|
||||||
- name: TEST 1 | Get current SELinux config file contents
|
- name: TEST 1 | Get current SELinux config file contents
|
||||||
|
slurp:
|
||||||
|
src: /etc/sysconfig/selinux
|
||||||
|
register: selinux_config_original_base64
|
||||||
|
|
||||||
|
- name: TEST 1 | Register SELinux config and SELinux status
|
||||||
set_fact:
|
set_fact:
|
||||||
selinux_config_original: "{{ lookup('file', '/etc/sysconfig/selinux').split('\n') }}"
|
selinux_config_original_raw: "{{ selinux_config_original_base64.content | b64decode }}"
|
||||||
before_test_sestatus: "{{ ansible_selinux }}"
|
before_test_sestatus: "{{ ansible_selinux }}"
|
||||||
|
|
||||||
|
- name: TEST 1 | Split by line and register original config
|
||||||
|
set_fact:
|
||||||
|
selinux_config_original: "{{ selinux_config_original_raw.split('\n') }}"
|
||||||
|
|
||||||
- debug:
|
- debug:
|
||||||
var: "{{ item }}"
|
var: "{{ item }}"
|
||||||
verbosity: 1
|
verbosity: 1
|
||||||
|
|
@ -95,8 +104,17 @@
|
||||||
- _disable_test2.reboot_required
|
- _disable_test2.reboot_required
|
||||||
|
|
||||||
- name: TEST 1 | Get modified config file
|
- name: TEST 1 | Get modified config file
|
||||||
|
slurp:
|
||||||
|
src: /etc/sysconfig/selinux
|
||||||
|
register: selinux_config_after_base64
|
||||||
|
|
||||||
|
- name: TEST 1 | Register modified config
|
||||||
set_fact:
|
set_fact:
|
||||||
selinux_config_after: "{{ lookup('file', '/etc/sysconfig/selinux').split('\n') }}"
|
selinux_config_after_raw: "{{ selinux_config_after_base64.content | b64decode }}"
|
||||||
|
|
||||||
|
- name: TEST 1 | Split by line and register modified config
|
||||||
|
set_fact:
|
||||||
|
selinux_config_after: "{{ selinux_config_after_raw.split('\n') }}"
|
||||||
|
|
||||||
- debug:
|
- debug:
|
||||||
var: selinux_config_after
|
var: selinux_config_after
|
||||||
|
|
@ -209,8 +227,17 @@
|
||||||
- not _state_test2.reboot_required
|
- not _state_test2.reboot_required
|
||||||
|
|
||||||
- name: TEST 2 | Get modified config file
|
- name: TEST 2 | Get modified config file
|
||||||
|
slurp:
|
||||||
|
src: /etc/sysconfig/selinux
|
||||||
|
register: selinux_config_after_base64
|
||||||
|
|
||||||
|
- name: TEST 2 | Register modified config
|
||||||
set_fact:
|
set_fact:
|
||||||
selinux_config_after: "{{ lookup('file', '/etc/sysconfig/selinux').split('\n') }}"
|
selinux_config_after_raw: "{{ selinux_config_after_base64.content | b64decode }}"
|
||||||
|
|
||||||
|
- name: TEST 2 | Split by line and register modified config
|
||||||
|
set_fact:
|
||||||
|
selinux_config_after: "{{ selinux_config_after_raw.split('\n') }}"
|
||||||
|
|
||||||
- debug:
|
- debug:
|
||||||
var: selinux_config_after
|
var: selinux_config_after
|
||||||
|
|
|
||||||
|
|
@ -2,16 +2,29 @@
|
||||||
package:
|
package:
|
||||||
name: rsync
|
name: rsync
|
||||||
when: ansible_distribution != "MacOSX"
|
when: ansible_distribution != "MacOSX"
|
||||||
- name: cleanup old files
|
- name: Clean up the working directory and files
|
||||||
shell: rm -rf {{output_dir}}/*
|
file:
|
||||||
|
path: '{{ output_dir }}'
|
||||||
|
state: absent
|
||||||
|
- name: Create the working directory
|
||||||
|
file:
|
||||||
|
path: '{{ output_dir }}'
|
||||||
|
state: directory
|
||||||
- name: create test new files
|
- name: create test new files
|
||||||
copy: dest={{output_dir}}/{{item}} mode=0644 content="hello world"
|
copy:
|
||||||
|
dest: '{{output_dir}}/{{item}}'
|
||||||
|
mode: '0644'
|
||||||
|
content: 'hello world'
|
||||||
with_items:
|
with_items:
|
||||||
- foo.txt
|
- foo.txt
|
||||||
- bar.txt
|
- bar.txt
|
||||||
|
|
||||||
- name: synchronize file to new filename
|
- name: synchronize file to new filename
|
||||||
synchronize: src={{output_dir}}/foo.txt dest={{output_dir}}/foo.result
|
synchronize:
|
||||||
|
src: '{{output_dir}}/foo.txt'
|
||||||
|
dest: '{{output_dir}}/foo.result'
|
||||||
register: sync_result
|
register: sync_result
|
||||||
|
delegate_to: '{{ inventory_hostname }}'
|
||||||
- assert:
|
- assert:
|
||||||
that:
|
that:
|
||||||
- '''changed'' in sync_result'
|
- '''changed'' in sync_result'
|
||||||
|
|
@ -31,9 +44,13 @@
|
||||||
that:
|
that:
|
||||||
- stat_result.stat.exists == True
|
- stat_result.stat.exists == True
|
||||||
- stat_result.stat.checksum == '2aae6c35c94fcfb415dbe95f408b9ce91ee846ed'
|
- stat_result.stat.checksum == '2aae6c35c94fcfb415dbe95f408b9ce91ee846ed'
|
||||||
|
|
||||||
- name: test that the file is not copied a second time
|
- name: test that the file is not copied a second time
|
||||||
synchronize: src={{output_dir}}/foo.txt dest={{output_dir}}/foo.result
|
synchronize:
|
||||||
|
src='{{output_dir}}/foo.txt'
|
||||||
|
dest='{{output_dir}}/foo.result'
|
||||||
register: sync_result
|
register: sync_result
|
||||||
|
delegate_to: '{{ inventory_hostname }}'
|
||||||
- assert:
|
- assert:
|
||||||
that:
|
that:
|
||||||
- sync_result.changed == False
|
- sync_result.changed == False
|
||||||
|
|
@ -44,12 +61,14 @@
|
||||||
with_items:
|
with_items:
|
||||||
- foo.result
|
- foo.result
|
||||||
- bar.result
|
- bar.result
|
||||||
|
|
||||||
- name: Synchronize using the mode=push param
|
- name: Synchronize using the mode=push param
|
||||||
synchronize:
|
synchronize:
|
||||||
src: '{{output_dir}}/foo.txt'
|
src: '{{output_dir}}/foo.txt'
|
||||||
dest: '{{output_dir}}/foo.result'
|
dest: '{{output_dir}}/foo.result'
|
||||||
mode: push
|
mode: push
|
||||||
register: sync_result
|
register: sync_result
|
||||||
|
delegate_to: '{{ inventory_hostname }}'
|
||||||
- assert:
|
- assert:
|
||||||
that:
|
that:
|
||||||
- '''changed'' in sync_result'
|
- '''changed'' in sync_result'
|
||||||
|
|
@ -69,12 +88,14 @@
|
||||||
that:
|
that:
|
||||||
- stat_result.stat.exists == True
|
- stat_result.stat.exists == True
|
||||||
- stat_result.stat.checksum == '2aae6c35c94fcfb415dbe95f408b9ce91ee846ed'
|
- stat_result.stat.checksum == '2aae6c35c94fcfb415dbe95f408b9ce91ee846ed'
|
||||||
|
|
||||||
- name: test that the file is not copied a second time
|
- name: test that the file is not copied a second time
|
||||||
synchronize:
|
synchronize:
|
||||||
src: '{{output_dir}}/foo.txt'
|
src: '{{output_dir}}/foo.txt'
|
||||||
dest: '{{output_dir}}/foo.result'
|
dest: '{{output_dir}}/foo.result'
|
||||||
mode: push
|
mode: push
|
||||||
register: sync_result
|
register: sync_result
|
||||||
|
delegate_to: '{{ inventory_hostname }}'
|
||||||
- assert:
|
- assert:
|
||||||
that:
|
that:
|
||||||
- sync_result.changed == False
|
- sync_result.changed == False
|
||||||
|
|
@ -85,12 +106,14 @@
|
||||||
with_items:
|
with_items:
|
||||||
- foo.result
|
- foo.result
|
||||||
- bar.result
|
- bar.result
|
||||||
|
|
||||||
- name: Synchronize using the mode=pull param
|
- name: Synchronize using the mode=pull param
|
||||||
synchronize:
|
synchronize:
|
||||||
src: '{{output_dir}}/foo.txt'
|
src: '{{output_dir}}/foo.txt'
|
||||||
dest: '{{output_dir}}/foo.result'
|
dest: '{{output_dir}}/foo.result'
|
||||||
mode: pull
|
mode: pull
|
||||||
register: sync_result
|
register: sync_result
|
||||||
|
delegate_to: '{{ inventory_hostname }}'
|
||||||
- assert:
|
- assert:
|
||||||
that:
|
that:
|
||||||
- '''changed'' in sync_result'
|
- '''changed'' in sync_result'
|
||||||
|
|
@ -110,12 +133,14 @@
|
||||||
that:
|
that:
|
||||||
- stat_result.stat.exists == True
|
- stat_result.stat.exists == True
|
||||||
- stat_result.stat.checksum == '2aae6c35c94fcfb415dbe95f408b9ce91ee846ed'
|
- stat_result.stat.checksum == '2aae6c35c94fcfb415dbe95f408b9ce91ee846ed'
|
||||||
|
|
||||||
- name: test that the file is not copied a second time
|
- name: test that the file is not copied a second time
|
||||||
synchronize:
|
synchronize:
|
||||||
src: '{{output_dir}}/foo.txt'
|
src: '{{output_dir}}/foo.txt'
|
||||||
dest: '{{output_dir}}/foo.result'
|
dest: '{{output_dir}}/foo.result'
|
||||||
mode: pull
|
mode: pull
|
||||||
register: sync_result
|
register: sync_result
|
||||||
|
delegate_to: '{{ inventory_hostname }}'
|
||||||
- assert:
|
- assert:
|
||||||
that:
|
that:
|
||||||
- sync_result.changed == False
|
- sync_result.changed == False
|
||||||
|
|
@ -126,12 +151,16 @@
|
||||||
with_items:
|
with_items:
|
||||||
- foo.result
|
- foo.result
|
||||||
- bar.result
|
- bar.result
|
||||||
|
|
||||||
- name: synchronize files using with_items (issue#5965)
|
- name: synchronize files using with_items (issue#5965)
|
||||||
synchronize: src={{output_dir}}/{{item}} dest={{output_dir}}/{{item}}.result
|
synchronize:
|
||||||
|
src: '{{output_dir}}/{{item}}'
|
||||||
|
dest: '{{output_dir}}/{{item}}.result'
|
||||||
with_items:
|
with_items:
|
||||||
- foo.txt
|
- foo.txt
|
||||||
- bar.txt
|
- bar.txt
|
||||||
register: sync_result
|
register: sync_result
|
||||||
|
delegate_to: '{{ inventory_hostname }}'
|
||||||
- assert:
|
- assert:
|
||||||
that:
|
that:
|
||||||
- sync_result.changed
|
- sync_result.changed
|
||||||
|
|
@ -151,9 +180,14 @@
|
||||||
with_items:
|
with_items:
|
||||||
- foo.txt
|
- foo.txt
|
||||||
- bar.txt
|
- bar.txt
|
||||||
|
|
||||||
- name: synchronize files using rsync_path (issue#7182)
|
- name: synchronize files using rsync_path (issue#7182)
|
||||||
synchronize: src={{output_dir}}/foo.txt dest={{output_dir}}/foo.rsync_path rsync_path="sudo rsync"
|
synchronize:
|
||||||
|
src: '{{output_dir}}/foo.txt'
|
||||||
|
dest: '{{output_dir}}/foo.rsync_path'
|
||||||
|
rsync_path: 'sudo rsync'
|
||||||
register: sync_result
|
register: sync_result
|
||||||
|
delegate_to: '{{ inventory_hostname }}'
|
||||||
- assert:
|
- assert:
|
||||||
that:
|
that:
|
||||||
- '''changed'' in sync_result'
|
- '''changed'' in sync_result'
|
||||||
|
|
@ -186,6 +220,7 @@
|
||||||
dest: '{{output_dir}}/{{item}}/foo.txt'
|
dest: '{{output_dir}}/{{item}}/foo.txt'
|
||||||
with_items:
|
with_items:
|
||||||
- directory_a
|
- directory_a
|
||||||
|
delegate_to: '{{ inventory_hostname }}'
|
||||||
- name: synchronize files using link_dest
|
- name: synchronize files using link_dest
|
||||||
synchronize:
|
synchronize:
|
||||||
src: '{{output_dir}}/directory_a/foo.txt'
|
src: '{{output_dir}}/directory_a/foo.txt'
|
||||||
|
|
@ -193,6 +228,7 @@
|
||||||
link_dest:
|
link_dest:
|
||||||
- '{{output_dir}}/directory_a'
|
- '{{output_dir}}/directory_a'
|
||||||
register: sync_result
|
register: sync_result
|
||||||
|
delegate_to: '{{ inventory_hostname }}'
|
||||||
- name: get stat information for directory_a
|
- name: get stat information for directory_a
|
||||||
stat:
|
stat:
|
||||||
path: '{{ output_dir }}/directory_a/foo.txt'
|
path: '{{ output_dir }}/directory_a/foo.txt'
|
||||||
|
|
@ -214,6 +250,8 @@
|
||||||
- '{{output_dir}}'
|
- '{{output_dir}}'
|
||||||
register: sync_result
|
register: sync_result
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
delegate_to: '{{ inventory_hostname }}'
|
||||||
|
|
||||||
- assert:
|
- assert:
|
||||||
that:
|
that:
|
||||||
- sync_result is not changed
|
- sync_result is not changed
|
||||||
|
|
|
||||||
|
|
@ -123,10 +123,10 @@
|
||||||
that:
|
that:
|
||||||
- sysctl_test2_change_test is not changed
|
- sysctl_test2_change_test is not changed
|
||||||
|
|
||||||
- name: Try sysctl with an invalid value
|
- name: Try sysctl with an invalid name
|
||||||
sysctl:
|
sysctl:
|
||||||
name: net.ipv4.ip_forward
|
name: test.invalid
|
||||||
value: foo
|
value: 1
|
||||||
register: sysctl_test3
|
register: sysctl_test3
|
||||||
ignore_errors: yes
|
ignore_errors: yes
|
||||||
|
|
||||||
|
|
@ -196,10 +196,10 @@
|
||||||
- sysctl_no_value is failed
|
- sysctl_no_value is failed
|
||||||
- "sysctl_no_value.msg == 'value cannot be None'"
|
- "sysctl_no_value.msg == 'value cannot be None'"
|
||||||
|
|
||||||
- name: Try sysctl with an invalid value
|
- name: Try sysctl with an invalid name
|
||||||
sysctl:
|
sysctl:
|
||||||
name: net.ipv4.ip_forward
|
name: test.invalid
|
||||||
value: foo
|
value: 1
|
||||||
sysctl_set: yes
|
sysctl_set: yes
|
||||||
register: sysctl_test4
|
register: sysctl_test4
|
||||||
ignore_errors: yes
|
ignore_errors: yes
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue