# Sets up local OpenQA testing environment
# This playbook is *NOT* intended for WAN-facing systems!
#
# Usages:
#   # Install and configure an openQA developer host, download all current Rocky ISOs,
#   # and POST a test job
#   ansible-playbook playbooks/init-rocky-openqa-developer-host.yml
#
#   # Only perform ISO download tasks
#   ansible-playbook playbooks/init-rocky-openqa-developer-host.yml --tags=download_isos
#
#   # Only perform configuration, do not download ISOs or POST a job
#   ansible-playbook playbooks/init-rocky-openqa-developer-host.yml --tags=configure
#
# Created: @akatch
---
- name: Rocky OpenQA Runbook
  hosts: localhost
  connection: local
  become: true
  vars_files:
    - vars/openqa.yml

  # This is to try to avoid the handler issue in pre/post tasks
  handlers:
    - import_tasks: handlers/main.yml

  pre_tasks:
    - name: Check if ansible cannot be run here
      stat:
        path: /etc/no-ansible
      register: no_ansible

    - name: Verify if we can run ansible
      ansible.builtin.assert:
        that:
          - "not no_ansible.stat.exists"
        success_msg: "We are able to run on this node"
        fail_msg: "/etc/no-ansible exists - skipping run on this node"

  tasks:
    - name: Install and configure OpenQA
      import_tasks: tasks/openqa.yml

  post_tasks:
    - name: Touching run file that ansible has ran here
      ansible.builtin.file:
        path: /var/log/ansible.run
        state: touch
        mode: '0644'
        owner: root
        group: root
...