diff options
author | Strahinja Kustudic <kustodian@gmail.com> | 2019-05-21 03:10:31 +0200 |
---|---|---|
committer | Toshio Kuratomi <a.badger@gmail.com> | 2019-05-20 18:10:31 -0700 |
commit | 6bc671a46a35f611b29b68c034014fc7d9f8bed5 (patch) | |
tree | bec8cba562847be3a23ae30e88736dd5342d8603 /test | |
parent | 9c670d9d05b63080d0bd579dfda608b88e78566a (diff) | |
download | ansible-6bc671a46a35f611b29b68c034014fc7d9f8bed5.tar.gz |
Backport/2.7/55695 (#56253)
* sysctl will now return an error if the value is invalid
sysctl can fail to set a value even if it returns an exit status 0. More
details: https://bugzilla.redhat.com/show_bug.cgi?id=1264080. Because of
this in case of an invalid value or a read-only file system, sysctl
module would return OK, even though it didn't set anything. To be sure
that sysctl correctly applied the changes we also need to check the
output of stderr.
(cherry picked from commit 0432b7f2522dbf82c4fabdb3fd17f7ac83f34e62)
* Run sysctl with LANG=C
Because we are parsing sysctl stderr we need to make sure that errors
are persistent across different system language settings.
(cherry picked from commit a16128f778b1e7574c5986aed26e146ac0561533)
* Add changelog fragment for sysctl
(cherry picked from commit 3ad9d4d83c1d2bbfccefb8388904c596d98f8731)
Diffstat (limited to 'test')
-rw-r--r-- | test/integration/targets/sysctl/tasks/main.yml | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/test/integration/targets/sysctl/tasks/main.yml b/test/integration/targets/sysctl/tasks/main.yml index cdea4aa038..e23b2ccee6 100644 --- a/test/integration/targets/sysctl/tasks/main.yml +++ b/test/integration/targets/sysctl/tasks/main.yml @@ -16,6 +16,10 @@ # You should have received a copy of the GNU General Public License # along with Ansible. If not, see <http://www.gnu.org/licenses/>. +# NOTE: Testing sysctl inside an unprivileged container means that we cannot +# apply sysctl, or it will always fail, because of that in most cases (except +# those when it should fail) we have to use `reload=no`. + - set_fact: output_dir_test: "{{ output_dir }}/test_sysctl" @@ -115,6 +119,22 @@ that: - sysctl_test2_change_test is not changed +- name: Try sysctl with an invalid value + sysctl: + name: net.ipv4.ip_forward + value: foo + register: sysctl_test3 + ignore_errors: yes + +- debug: + var: sysctl_test3 + verbosity: 1 + +- name: validate results for test 3 + assert: + that: + - sysctl_test3 is failed + ## ## sysctl - sysctl_set ## @@ -171,3 +191,20 @@ that: - sysctl_no_value is failed - "sysctl_no_value.msg == 'value cannot be None'" + +- name: Try sysctl with an invalid value + sysctl: + name: net.ipv4.ip_forward + value: foo + sysctl_set: yes + register: sysctl_test4 + ignore_errors: yes + +- debug: + var: sysctl_test4 + verbosity: 1 + +- name: validate results for test 4 + assert: + that: + - sysctl_test4 is failed |