Commit Graph

3 Commits (ab701726515611c03618f1376d1feaf806b06036)

Author SHA1 Message Date
Sam Doran c1589c33c4
Reboot - Fix command not found, add Apline support, fix Solaris command (#49272)
* Fix various bugs related in reboot

- Use format strings for consistency and improve debug log messages
- Use local variables instead of class attributes in order to be thread safe
- Run setup module to get distribution and version
- Run find module to get full path of shutdown command
- Use ansible_os_family and ansible_distribution to find commands and args
- Use same command for all Solaris/SunOS distributions
- Move delay calculations to properties
- Reliably check for module run failure
- Fix bug in run_test_command() that accidentally made the method work properly
- Use better exceptions rather than Exception
- Use dict literals rather than constructors
- Correct _check_delay() so it always returns a value, not None
- Don't store and return result in run_test_command() because it's not used anywhere
- add test for post reboot command that fails
- test negative values for delay parameters
6 years ago
Dag Wieers bf9ed0263a Ensure action plugins accept only valid args (#44779)
* Ensure action plugins accept only valid args

This fixes #25424
This also fixes #44773

* Add missing parameters, use private _VALID_ARGS
6 years ago
Sam Doran 4d9218cec4 Add reboot action plugin (#35205)
* Update docs

* Add reboot action plugin

Refactor win_reboot so it is subclassed from reboot

* Use new connection methods

* Test fixes

* Use better uptime command for Linux

Use who -b to get the last time the system was booted rather than uptime, which changes every second.

* Use distribution specefic commands and flags

Query the managed node to determien its distribution, then set the appropriate command and flags.

* Tune debug messages a bit

* Update module docs with details about pre_reboot_delay

s docs

* Ensure that post_reboot_delay is a positive number

* Remove the stringification

* Add integration tests

* Make sure aliases are honored

* Handle systems that have an incorrect last boot time

SystemD and fakehw-clock do not properly set the
last boot time and instead always set it to epoch.
Use a different command if that is the case.

* Copyright and encoding fixes

* Minor fixes based on feedback

* Add exponential backoff to sucess check method

* Update integration test

Skip the integration test if it would try to reboot the control node. We need a new mechanism to account for this scenario in ansible-test, so tests must currently be run manually for this plugin.

* Update integration test

Skip the integration test if it would try to reboot the control node. We need a new mechanism to account for this scenario in ansible-test, so tests must currently be run manually for this plugin.

* Fail early with running with local connection

* Update docs based on feedback

* minor refactoring, state mgmt changes
6 years ago