- name: Install wg-quick@{{ peer.if.name | default(dn42_wg_default_if_prefix + peer.name) }} config
  template:
    dest: "/etc/wireguard/{{ peer.if.name | default(dn42_wg_default_if_prefix + peer.name) }}.conf"
    src: "wg-quick.j2"
  when:
    - peer.wg is defined
    - (not peer.state is defined) or peer.state != "absent"
  register: "configuration"

- name: Enable wg-quick@{{ peer.if.name | default(dn42_wg_default_if_prefix + peer.name) }} service
  service:
    name: "wg-quick@{{ peer.if.name | default(dn42_wg_default_if_prefix + peer.name) }}"
    enabled: yes
  when:
    - peer.wg is defined
    - (not peer.state is defined) or peer.state != "absent"

- name: Restart wg-quick@{{ peer.if.name | default(dn42_wg_default_if_prefix + peer.name) }}
  service:
    name: "wg-quick@{{ peer.if.name | default(dn42_wg_default_if_prefix + peer.name) }}"
    state: restarted
  when:
    - "configuration is changed"
    - (not peer.state is defined) or peer.state != "absent"

- name: Stop wg-quick@{{ peer.if.name | default(dn42_wg_default_if_prefix + peer.name) }}
  service:
    name: "wg-quick@{{ peer.if.name | default(dn42_wg_default_if_prefix + peer.name) }}"
    state: stopped
    enabled: no
  when: peer.state is defined and peer.state == "absent"

- name: Remove wg-quick@{{ peer.if.name | default(dn42_wg_default_if_prefix + peer.name) }} config
  file:
    path: "/etc/wireguard/{{ peer.if.name | default(dn42_wg_default_if_prefix + peer.name) }}.conf"
    state: absent
  when: peer.state is defined and peer.state == "absent"