- block: # This block can be removed once we have a mechanism in ansible-test to separate # the control node from the managed node. - block: - name: Write temp file for sanity checking this is not the controller copy: content: 'I am the control node' dest: /tmp/Anything-Nutlike-Nuzzle-Plow-Overdue delegate_to: localhost connection: local when: inventory_hostname == ansible_play_hosts[0] - name: See if the temp file exists on the managed node stat: path: /tmp/Anything-Nutlike-Nuzzle-Plow-Overdue register: controller_temp_file - name: EXPECT FAILURE | Check if the managed node is the control node assert: msg: > This test must be run manually by modifying the inventory file to point "{{ inventory_hostname }}" at a remote host rather than "{{ ansible_host }}". Skipping reboot test. that: - not controller_temp_file.stat.exists - import_tasks: get_boot_time.yml - name: Reboot with default settings reboot: register: reboot_result - import_tasks: check_reboot.yml - import_tasks: get_boot_time.yml - name: Reboot with all options reboot: connect_timeout: 30 msg: Rebooting post_reboot_delay: 1 pre_reboot_delay: 61 test_command: uptime reboot_timeout: 500 - import_tasks: check_reboot.yml - import_tasks: get_boot_time.yml - name: Test with negative values for delays reboot: post_reboot_delay: -0.5 pre_reboot_delay: -61 - import_tasks: check_reboot.yml - 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'" - name: Reboot with test command that fails reboot: test_command: 'FAIL' reboot_timeout: "{{ timeout }}" register: reboot_fail_test failed_when: "reboot_fail_test.msg != 'Timed out waiting for post-reboot test command (timeout=' ~ timeout ~ ')'" vars: timeout: "{{ timeout_value[ansible_facts['distribution'] | lower] | default(60) }}" always: - name: Cleanup temp file file: path: /tmp/Anything-Nutlike-Nuzzle-Plow-Overdue state: absent delegate_to: localhost connection: local when: inventory_hostname == ansible_play_hosts[0] when: ansible_virtualization_type | default('') != 'docker'