---

# Parameters:
#   playbook inventory
#     stage := the name of the stage (e.g. dev, int, qa, prod)
#     tenant := object with tenant related data
#       key := 
#       name := 
#     cluster := object with cluster specific data (optional)
#       ...
#     data := object with action specific data (optional)
#       ...
#   smardigo message callback
#     scope_id := (scope id of the management process)
#     process_instance_id := (process instance id of the management process)
#     smardigo_management_action := (smardigo management action anme of the management process)

#############################################################
#   Creating inventory dynamically for given parameters
#############################################################

- hosts: localhost
  connection: local
  gather_facts: false

  pre_tasks:
    - name: "Check if ansible version is at least {{ ansible_minimal_version }}"
      assert:
        that:
          - ansible_version.string is version(ansible_minimal_version, ">=")
        msg: "The ansible version has to be at least {{ ansible_minimal_version }}"

#     add virtual server to load stage specific variables as context
    - name: "Add <{{ stage }}-virtual-host-to-read-groups-vars> to hosts"
      add_host:
        name: "{{ stage }}-virtual-host-to-read-groups-vars"
        groups:
        - "stage_{{ stage }}"
      changed_when: False

  tasks:
    - name: Add maria servers to hosts if necessary
      add_host:
        name: "{{ stage }}-maria-01"
        groups:
        - "stage_{{ stage }}"
        - "{{ item }}"
      changed_when: False
      with_items: "{{ cluster.features }}"
      when: item in ['connect_wordpress']

#############################################################
#   Importing database backups for created inventory
#############################################################

- hosts: "stage_{{ stage }}:!{{ stage }}-virtual-host-to-read-groups-vars"
  serial: "{{ serial_number | default(1) }}"
  remote_user: root
  vars:
    ansible_ssh_host: "{{ stage_server_domain }}"
    tenant_id: "{{ tenant.key }}" # legacy paramater, backwards compatibility
    cluster_name: "{{ cluster.key }}" # legacy paramater, backwards compatibility
    database_backup_file: "{{ data.database.backup_file }}" # legacy paramater, backwards compatibility

  pre_tasks:
    - name: "Import autodiscover pre-tasks"
      import_tasks: tasks/autodiscover_pre_tasks.yml
      become: false
      tags:
        - always

  roles:
    - role: import_maria_database
      when:
        - "'connect_wordpress' in group_names"
        - "target_database is defined"
        - "database_backup_file is defined"

    - role: import_maria_database
      vars:
        target_database: "{{ connect_wordpress_maria_database }}"
      when:
        - "'connect_wordpress' in group_names"
        - "database_backup_file is defined"

#############################################################
#   Sending smardigo management message to process
#############################################################

- import_playbook: pmci-callback.yml
