- hosts: containers
  name: Switch mailu to primary
  ignore_unreachable: false
  vars:
      arch_name: docker_mailu2_data
      containers: 
        - nginx-app-1
        - heimdall
        - mailu2-admin-1
        - mailu2-antispam-1
        - mailu2-antivirus-1
        - mailu2-fetchmail-1
        - mailu2-front-1
        - mailu2-imap-1
        - mailu2-oletools-1
        - mailu2-redis-1
        - mailu2-resolver-1
        - mailu2-smtp-1
        - mailu2-webdav-1
        - mailu2-webmail-1
        - HomeAssistant
        - mosquitto-mosquitto-1
        - gitlab
        - semaphore-app-1
        - semaphore-db-1
  tasks:

    - 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.238', '192.168.77.106')  }}"
      when: inventory_hostname in groups['router']

    - name: Nvram commit
      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 rasp
    #   uri:
    #     url: "http://192.168.77.106:9000/api/stacks/{{ item }}/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']
    #   loop:
    #     - 130
    #     - 149
    #     #- 140
    #     - 180

    - name: Stop mailu containers
      command: "docker stop {{ containers | join(' ') }}"
      become: true
      ignore_errors: true
      when: inventory_hostname in groups['raspberry'] or inventory_hostname in groups['raspberrypi5']