- name: Disable cloud-init the easy way
  shell: touch /etc/cloud/cloud-init.disabled
  when: item|trim == "50-cloud-init.yaml"
  with_items:
    - "{{ netplan.stdout_lines }}"

- name: Moving 50-cloud-init.yaml to 02-iiab-config.yaml
  shell: mv /etc/netplan/50-cloud-init.yaml /etc/netplan/02-iiab-config.yaml
  when: netplan.stdout.find("yaml") != -1 and item|trim == "50-cloud-init.yaml"
  with_items:
    - "{{ netplan.stdout_lines }}"

- name: Cheap way to do systemd unmask
  file:
    state: absent
    dest: /etc/systemd/system/systemd-networkd-wait-online.service

- name: Ensure systemd-networkd-wait-online is enabled
  systemd:
    name: "{{ item }}"
    enabled: yes
  with_items:
    - systemd-networkd-wait-online
  when: systemd_networkd_active

- name: Unmask and enable the systemd-networkd service for br0
  systemd:
    name: systemd-networkd
    enabled: yes
    masked: no
  when: network_manager_active and iiab_lan_iface == "br0"

- name: Ensure systemd-networkd gets enabled for br0
  set_fact:
    systemd_networkd_active: True
  when: network_manager_active and iiab_lan_iface == "br0"

# ICO will always set gui_static_wan_ip away from the default of 'unset' while
# gui_static_wan turns dhcp on/off through wan_ip in computed_network and
# overrides gui_static_wan_ip that is present. Changing wan_ip in local_vars
# is a oneway street to static.
#- name: Static IP computing CIDR
#  shell: netmask {{ wan_ip }}/{{ wan_netmask }} | awk -F "/" '{print $2}'
#  register: CIDR
#  when: wan_ip != "dhcp"

#- name: Static IP setting CIDR
#  set_fact:
#    wan_cidr: "{{ CIDR.stdout }}"
#  when: wan_ip != "dhcp"

- name: Remove stock netplan template
  file:
    state: absent
    path: /etc/netplan/{{ item }}
  when: netplan.stdout.find("yaml") != -1 and item|trim != "02-iiab-config.yaml" and wan_ip != "dhcp"
  with_items:
    - "{{ netplan.stdout_lines }}"

- name: Replace networkd-dispatcher #2585 for "groovy"
  get_url:
    url: https://gitlab.com/craftyguy/networkd-dispatcher/-/raw/2.1/networkd-dispatcher
    dest: /usr/bin/networkd-dispatcher
  when: internet_available and fix_dispatcher and ansible_distribution_release == "groovy"

#- name: Supply netplan template
#  template:
#    dest: /etc/netplan/01-iiab-config.yaml
#    src: network/netplan.j2
#    backup: no
#  when: iiab_wan_iface != discovered_wireless_iface and wan_ip != "dhcp"

# should blow up here if we messed up the yml file
#- name: Generate netplan config
#  shell: netplan generate --debug

#- name: Stopping services
#  include_tasks: down-debian.yml

# wants a controlling terminal for the ENTER key, so it fails
#- name: Test netplan config
#  shell: netplan try --debug --timeout=2
#  register: test-netplan
#  ignore_errors: True

# and does not apply the generated config until rebooted
# or ignore the above test - on the fence atm...
#- name: Reload netplan
#  shell: netplan apply
#  when: not no_net_restart and test-netplan == "Configuration accepted"
