1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00
community.general/tests/integration/targets/shutdown/tasks/main.yml
Peter Upton 88f7b5a675
Shutdown systemd without sysv (#6171)
* setup test

* inital working commit to enable shutdown using systemd

* add changelog fragment

* address sanity checks

* fix changelog fragement

* update to combine args and command

* fix self pararm

* fix pylint output

* cleanup test

* fix tests

* fix systemd missing failure message

* broaden test coverage

* address pr feedback

* address sanity test results

* fix tests

* fix tests

* pep8 sanity fix

* fix test conditional ordering

* quick fix for pep8

* Update changelogs/fragments/6171-shutdown-using-systemd.yml

Co-authored-by: Felix Fontein <felix@fontein.de>

* Update changelogs/fragments/6171-shutdown-using-systemd.yml

Co-authored-by: Felix Fontein <felix@fontein.de>

* Fix indentation.

---------

Co-authored-by: Felix Fontein <felix@fontein.de>
2023-05-09 20:10:09 +02:00

124 lines
4.5 KiB
YAML

---
####################################################################
# WARNING: These are designed specifically for Ansible tests #
# and should not be used as examples of how to write Ansible roles #
####################################################################
# Copyright (c) Ansible Project
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
# SPDX-License-Identifier: GPL-3.0-or-later
#
- name: Execute shutdown with custom message and delay
community.general.shutdown:
delay: 100
msg: "Custom Message"
register: shutdown_result
check_mode: true
- name: Execute shutdown with minus delay
community.general.shutdown:
delay: -100
register: shutdown_result_minus
check_mode: true
- name: Verify Custom Message except Alpine, AIX
assert:
that:
- '"Custom Message" in shutdown_result["shutdown_command"]'
- '"Shut down initiated by Ansible" in shutdown_result_minus["shutdown_command"]'
- '"Custom Message" not in shutdown_result_minus["shutdown_command"]'
when:
- 'ansible_os_family not in ["Alpine", "AIX"]'
- '"systemctl" not in shutdown_result["shutdown_command"]'
- '"systemctl" not in shutdown_result_minus["shutdown_command"]'
- name: Verify shutdown command is present except Alpine or AIX or systemd
assert:
that: '"shutdown" in shutdown_result["shutdown_command"]'
when:
- "ansible_os_family != 'Alpine'"
- "ansible_system != 'VMKernel'"
- '"systemctl" not in shutdown_result["shutdown_command"]'
- name: Verify shutdown command is present in Alpine except systemd
assert:
that: '"poweroff" in shutdown_result["shutdown_command"]'
when:
- "ansible_os_family == 'Alpine'"
- '"systemctl" not in shutdown_result["shutdown_command"]'
- name: Verify shutdown command is present in VMKernel except systemd
assert:
that: '"halt" in shutdown_result["shutdown_command"]'
when:
- "ansible_system == 'VMKernel'"
- '"systemctl" not in shutdown_result["shutdown_command"]'
- name: Verify shutdown delay is present in minutes in Linux except systemd
assert:
that:
- '"-h 1" in shutdown_result["shutdown_command"]'
- '"-h 0" in shutdown_result_minus["shutdown_command"]'
when:
- "ansible_system == 'Linux'"
- "ansible_os_family != 'Alpine'"
- '"systemctl" not in shutdown_result["shutdown_command"]'
- '"systemctl" not in shutdown_result_minus["shutdown_command"]'
- name: Verify shutdown delay is present in minutes in Void, MacOSX, OpenBSD
assert:
that:
- '"-h +1" in shutdown_result["shutdown_command"]'
- '"-h +0" in shutdown_result_minus["shutdown_command"]'
when: ansible_system in ['Void', 'Darwin', 'OpenBSD']
- name: Verify shutdown delay is present in seconds in FreeBSD
assert:
that:
- '"-h +100s" in shutdown_result["shutdown_command"]'
- '"-h +0s" in shutdown_result_minus["shutdown_command"]'
when: ansible_system == 'FreeBSD'
- name: Verify shutdown delay is present in seconds in Solaris, SunOS
assert:
that:
- '"-g 100" in shutdown_result["shutdown_command"]'
- '"-g 0" in shutdown_result_minus["shutdown_command"]'
when: ansible_system in ['Solaris', 'SunOS']
- name: Verify shutdown delay is present in seconds, VMKernel
assert:
that:
- '"-d 100" in shutdown_result["shutdown_command"]'
- '"-d 0" in shutdown_result_minus["shutdown_command"]'
when: ansible_system == 'VMKernel'
- name: Ensure that systemd-sysv is absent in Ubuntu 18 and Debian
apt:
name: sytemd-sysv
state: absent
when: (ansible_distribution == 'Ubuntu' and ansible_distribution_major_version is version('18', '>=')) or (ansible_distribution == 'Debian')
register: systemd_sysv_install
- name: Gather package facts
package_facts:
manager: apt
when: (ansible_distribution == 'Ubuntu' and ansible_distribution_major_version is version('18', '>=')) or (ansible_distribution == 'Debian')
- name: Execute shutdown if no systemd-sysv
community.general.shutdown:
register: shutdown_result
check_mode: true
when:
- "(ansible_distribution == 'Ubuntu' and ansible_distribution_major_version is version('18', '>=')) or (ansible_distribution == 'Debian')"
- '"systemd-sysv" not in ansible_facts.packages'
- name: Install systemd_sysv in case it has been removed in test
apt:
name: systemd-sysv
state: present
when:
- "(ansible_distribution == 'Ubuntu' and ansible_distribution_major_version is version('18', '>=')) or (ansible_distribution == 'Debian')"
- "systemd_sysv_install is changed"