--- - name: make sure win output dir exists win_file: path: "{{win_output_dir}}" state: directory - name: reboot with defaults win_reboot: - name: test with negative values for delays win_reboot: post_reboot_delay: -0.5 pre_reboot_delay: -61 - name: schedule a reboot for sometime in the future win_command: shutdown.exe /r /t 599 - name: reboot with a shutdown already scheduled win_reboot: # test a reboot that reboots again during the test_command phase - name: create test file win_file: path: '{{win_output_dir}}\win_reboot_test' state: touch - name: reboot with secondary reboot stage win_reboot: test_command: '{{ lookup("template", "post_reboot.ps1") }}' - name: reboot with test command that fails win_reboot: test_command: 'FAIL' reboot_timeout: 120 register: reboot_fail_test failed_when: "reboot_fail_test.msg != 'Timed out waiting for post-reboot test command (timeout=120)'" - name: remove SeRemoteShutdownPrivilege win_user_right: name: SeRemoteShutdownPrivilege users: [] action: set register: removed_shutdown_privilege - block: - name: try and reboot without required privilege win_reboot: register: fail_privilege failed_when: - "'Reboot command failed, error was:' not in fail_privilege.msg" - "'Access is denied.(5)' not in fail_privilege.msg" always: - name: reset the SeRemoteShutdownPrivilege win_user_right: name: SeRemoteShutdownPrivilege users: '{{ removed_shutdown_privilege.removed }}' action: add - name: Use invalid parameter reboot: foo: bar ignore_errors: true register: invalid_parameter - name: Ensure task fails with error assert: that: - invalid_parameter is failed - "invalid_parameter.msg == 'Invalid options for reboot: foo'"