- hosts: datacenter
  name: Stop mailu
  tasks:
    - name: Stop HA
      uri:
        url: "http://192.168.77.106:9000/api/stacks/2/stop?endpointId=2"
        method: POST
        body_format: form-urlencoded
        return_content: yes
        headers:
          Content-Type: "application/json"
          X-API-Key: "ptr_DfS2M6Fj2P3fVvYpkhE0KJh2UGCzY47ePaFaLqadsjg="
        timeout: 60
      ignore_errors: yes
      when: inventory_hostname in groups['nas']

    - name: Start mailu rasp
      uri:
        url: "http://192.168.77.106:9000/api/stacks/130/start?endpointId=13"
        method: POST
        body_format: form-urlencoded
        return_content: yes
        headers:
          Content-Type: "application/json"
          X-API-Key: "ptr_DfS2M6Fj2P3fVvYpkhE0KJh2UGCzY47ePaFaLqadsjg="
        timeout: 60
      ignore_errors: yes
      when: inventory_hostname in groups['nas']


    - name: Get ruleset
      command: nvram get vts_rulelist
      when: inventory_hostname in groups['router']
      register: ruleset


    - name: Set new ruleset
      command: nvram set vts_rulelist="{{ ruleset.stdout  | replace('192.168.77.106', '192.168.77.246')  }}"
      when: inventory_hostname in groups['router']

    - name: Test
      command: nvram commit
      when: inventory_hostname in groups['router']

    - name: Restart firewall
      command: service restart_firewall
      when: inventory_hostname in groups['router']

    - name: Stop mailu main
      uri:
        url: "http://192.168.77.106:9000/api/stacks/108/stop?endpointId=2"
        method: POST
        body_format: form-urlencoded
        return_content: yes
        headers:
          Content-Type: "application/json"
          X-API-Key: "ptr_DfS2M6Fj2P3fVvYpkhE0KJh2UGCzY47ePaFaLqadsjg="
        timeout: 60
      register: result
      ignore_errors: yes
      when: inventory_hostname in groups['nas']

    - name: Create archive
      #ansible.builtin.shell: 'tar -czf /share/Data/dockers.tar.gz /share/docker_data/{mailu2,webhub,ha} --exclude="/ha/backups/*" --exclude="home-assistant.log*"'
      ansible.builtin.shell: 'tar -czf /share/Data/dockers.tar.gz /share/docker_data/mailu2 --exclude="/ha/backups/*" --exclude="home-assistant.log*"'
      ignore_errors: yes
      when: inventory_hostname in groups['nas']

    - name: Start HA
      uri:
        url: "http://192.168.77.106:9000/api/stacks/2/start?endpointId=2"
        method: POST
        body_format: form-urlencoded
        return_content: yes
        headers:
          Content-Type: "application/json"
          X-API-Key: "ptr_DfS2M6Fj2P3fVvYpkhE0KJh2UGCzY47ePaFaLqadsjg="
        timeout: 60
      ignore_errors: yes
      when: inventory_hostname in groups['nas']
      
    - name: Start mailu main
      uri:
        url: "http://192.168.77.106:9000/api/stacks/108/start?endpointId=2"
        method: POST
        body_format: form-urlencoded
        return_content: yes
        headers:
          Content-Type: "application/json"
          X-API-Key: "ptr_DfS2M6Fj2P3fVvYpkhE0KJh2UGCzY47ePaFaLqadsjg="
        timeout: 60
      ignore_errors: yes
      when: inventory_hostname in groups['nas']


    #- debug:
    #   msg: "{{ ruleset.stdout  }}"

    - name: Set new ruleset
      command: nvram set vts_rulelist="{{ ruleset.stdout | replace('192.168.77.246', '192.168.77.106') }}"
      when: inventory_hostname in groups['router']

    - name: Test
      command: nvram commit
      when: inventory_hostname in groups['router']

    - name: Restart firewall
      command: service restart_firewall
      when: inventory_hostname in groups['router']

    - name: Stop mailu rhasp
      uri:
        url: "http://192.168.77.106:9000/api/stacks/130/stop?endpointId=13"
        method: POST
        body_format: form-urlencoded
        return_content: yes
        headers:
          Content-Type: "application/json"
          X-API-Key: "ptr_DfS2M6Fj2P3fVvYpkhE0KJh2UGCzY47ePaFaLqadsjg="
        timeout: 60
      register: result
      ignore_errors: yes
      when: inventory_hostname in groups['nas']
    
    