# Load initial hosting and organisation variables from AWX volume
- include_tasks: 
    file: "load_hosting_and_org_variables.yml"
    apply:
      tags: always
  when: run_setup|bool and matrix_awx_enabled|bool
  tags:
    - always

# Renames the variables if needed
- include_tasks: 
    file: "rename_variables.yml"
    apply:
      tags: always
  when: run_setup|bool and matrix_awx_enabled|bool
  tags:
    - always

# Create AWX session token
- include_tasks: 
    file: "create_session_token.yml"
    apply:
      tags: always
  when: run_setup|bool and matrix_awx_enabled|bool
  tags:
    - always

# Perform a backup of the server
- include_tasks: 
    file: "backup_server.yml"
    apply:
      tags: backup-server
  when: run_setup|bool and matrix_awx_enabled|bool
  tags:
    - backup-server

# Perform a export of the server
- include_tasks: 
    file: "export_server.yml"
    apply:
      tags: export-server
  when: run_setup|bool and matrix_awx_enabled|bool
  tags:
    - export-server

# Create a user account if called
- include_tasks: 
    file: "create_user.yml"
    apply:
      tags: create-user
  when: run_setup|bool and matrix_awx_enabled|bool
  tags:
    - create-user

# Purge local/remote media if called
- include_tasks: 
    file: "purge_media_main.yml"
    apply:
      tags: purge-media
  when: run_setup|bool and matrix_awx_enabled|bool
  tags:
    - purge-media

# Purge Synapse database if called
- include_tasks: 
    file: "purge_database_main.yml"
    apply:
      tags: purge-database
  when: run_setup|bool and matrix_awx_enabled|bool
  tags:
    - purge-database

# Rotate SSH key if called
- include_tasks: 
    file: "rotate_ssh.yml"
    apply:
      tags: rotate-ssh
  when: run_setup|bool and matrix_awx_enabled|bool
  tags:
    - rotate-ssh

# Import configs, media repo from /chroot/backup import
- include_tasks: 
    file: "import_awx.yml"
    apply:
      tags: import-awx
  when: run_setup|bool and matrix_awx_enabled|bool
  tags:
    - import-awx
    
# Perform extra self-check functions
- include_tasks: 
    file: "self_check.yml"
    apply:
      tags: self-check
  when: run_setup|bool and matrix_awx_enabled|bool
  tags:
    - self-check

# Create cached matrix_vars.yml file
- include_tasks: 
    file: "cache_matrix_variables.yml"
    apply:
      tags: always
  when: run_setup|bool and matrix_awx_enabled|bool
  tags:
    - always

# Configure SFTP so user can upload a static website or access the servers export
- include_tasks: 
    file: "customise_website_access_export.yml"
    apply:
      tags: setup-nginx-proxy
  when: run_setup|bool and matrix_awx_enabled|bool
  tags:
    - setup-nginx-proxy

# Additional playbook to set the variable file during Element configuration
- include_tasks: 
    file: "set_variables_element.yml"
    apply:
      tags: setup-client-element
  when: run_setup|bool and matrix_awx_enabled|bool
  tags:
    - setup-client-element

# Additional playbook to set the variable file during Mailer configuration
- include_tasks: 
    file: "set_variables_mailer.yml"
    apply:
      tags: setup-mailer
  when: run_setup|bool and matrix_awx_enabled|bool
  tags:
    - setup-mailer

# Additional playbook to set the variable file during Element configuration
- include_tasks: 
    file: "set_variables_element_subdomain.yml"
    apply:
      tags: setup-client-element-subdomain
  when: run_setup|bool and matrix_awx_enabled|bool
  tags:
    - setup-client-element-subdomain

# Additional playbook to set the variable file during Synapse configuration
- include_tasks: 
    file: "set_variables_synapse.yml"
    apply:
      tags: setup-synapse
  when: run_setup|bool and matrix_awx_enabled|bool
  tags:
    - setup-synapse

# Additional playbook to set the variable file during Jitsi configuration
- include_tasks: 
    file: "set_variables_jitsi.yml"
    apply:
      tags: setup-jitsi
  when: run_setup|bool and matrix_awx_enabled|bool
  tags:
    - setup-jitsi

# Additional playbook to set the variable file during Ma1sd configuration
- include_tasks: 
    file: "set_variables_ma1sd.yml"
    apply:
      tags: setup-ma1sd
  when: run_setup|bool and matrix_awx_enabled|bool
  tags:
    - setup-ma1sd

# Additional playbook to set the variable file during Corporal configuration
- include_tasks: 
    file: "set_variables_corporal.yml"
    apply:
      tags: setup-corporal
  when: run_setup|bool and matrix_awx_enabled|bool
  tags:
    - setup-corporal

# Additional playbook to set the variable file during Dimension configuration
- include_tasks: 
    file: "set_variables_dimension.yml"
    apply:
      tags: setup-dimension
  when: run_setup|bool and matrix_awx_enabled|bool
  tags:
    - setup-dimension

# Additional playbook to set the variable file during Synapse Admin configuration
- include_tasks: 
    file: "set_variables_synapse_admin.yml"
    apply:
      tags: setup-synapse-admin
  when: run_setup|bool and matrix_awx_enabled|bool
  tags:
    - setup-synapse-admin

# Additional playbook to set the variable file during Discord Appservice Bridge configuration
- include_tasks: 
    file: "bridge_discord_appservice.yml"
    apply:
      tags: bridge-discord-appservice
  when: run_setup|bool and matrix_awx_enabled|bool
  tags:
    - bridge-discord-appservice

# Delete AWX session token
- include_tasks: 
    file: "delete_session_token.yml"
    apply:
      tags: always
  when: run_setup|bool and matrix_awx_enabled|bool
  tags:
    - always

# Load newly formed matrix variables from AWX volume
- include_tasks: 
    file: "load_matrix_variables.yml"
    apply:
      tags: always
  when: run_setup|bool and matrix_awx_enabled|bool
  tags:
    - always