- name: Select RPi firmware mode
  include_role:
    name: firmware
  when: rpi_model != "none"

- name: detected_network
  include_tasks: detected_network.yml

#- name: "Set 'no_net_restart: True' if discovered_wireless_iface == iiab_wan_iface"
- name: "Set 'no_net_restart: True' if has_wifi_gateway is defined"
  set_fact:
    no_net_restart: True    # 2020-09-12:
    # 0-init/defaults/main.yml - default boolean value of False
    # network/tasks/main.yml - changes flag based on conditional present
    # Var is currently used in 9 subsequent files, to suppress restarting of
    # hostapd, dnsmasq and/or other networking service in computed_services.yml,
    # debian.yml, detected_network.yml, down-debian.yml, netplan.yml,
    # NM-debian.yml, restart.yml, rpi_debian.yml, sysd-netd-debian.yml
  when: has_wifi_gateway is defined

- name: computed_network
  include_tasks: computed_network.yml

# 2022-07-22: @jvonau asks for this to be (1) BELOW computed_network.yml
# (what goes into iiab-hotspot-on|off depends on can_be_ap and wifi_up_down)
# AND (2) ABOVE install.yml for some reason?  REQUIREMENT: Admin Console reads
# iiab_network_mode from /etc/iiab/iiab.ini + uses /usr/bin/iiab-hotspot-on|off
- name: Install /usr/bin/iiab-hotspot-on|off from template (root:root by default)
  template:
    src: "{{ item }}"
    dest: /usr/bin/
    mode: 0755
  with_items:
    - hostapd/iiab-hotspot-on
    - hostapd/iiab-hotspot-off

- name: Install network packages (including many WiFi tools, and also iptables-persistent for firewall)
  include_tasks: install.yml
  when: network_install and network_installed is undefined


- name: Configuring Network if enabled
  block:

  # DEPRECATED
  #- name: Configure wondershaper
  #  include_tasks: wondershaper.yml
  #  when: wondershaper_install or wondershaper_installed is defined
  #
  #- name: (Re)Install named
  #  include_tasks: named.yml
  #  when: named_install and FQDN_changed and iiab_stage|int == 9
  #
  #- name: (Re)Install dhcpd
  #  include_tasks: dhcpd.yml
  #  when: dhcpd_install and FQDN_changed and iiab_stage|int == 9

  # 2022-07-22: Is './runrole --reinstall network' the new way to make this run?
  #- name: (Re)Install Squid
  #  include_tasks: squid.yml
  #  when: squid_install and FQDN_changed and iiab_stage|int == 9

  #### Start services
  - name: hostapd
    include_tasks: hostapd.yml
  - name: computed_services
    include_tasks: computed_services.yml
  - name: enable_services
    include_tasks: enable_services.yml
  #### End services

  #### Start network layout
  #- name: Redhat networking
  #  include_tasks: ifcfg_mods.yml
  #  when: is_redhat

  - name: NetworkManager in use
    include_tasks: NM-debian.yml
    when: network_manager_active
    #when: is_debuntu and network_manager_active

  - name: systemd-networkd in use
    include_tasks: sysd-netd-debian.yml
    when: systemd_networkd_active
    #when: is_debuntu and systemd_networkd_active

  - name: Raspbian can use dhcpcd only with no N-M or SYS-NETD active
    include_tasks: rpi_debian.yml
    when: is_raspbian and not network_manager_active

  - name: Not RPi, Not NetworkManager, Not systemd-networkd in use
    include_tasks: debian.yml
    when: not is_raspbian and not network_manager_active and not systemd_networkd_active
    #when: (not is_raspbian and not network_manager_active and not systemd_networkd_active and is_debuntu) or is_ubuntu_16
  #### end network layout

  - name: Restart services
    include_tasks: restart.yml

  # end block
  when: network_installed is defined and network_enabled


- name: Create {{ iiab_etc_path }}/install-flags/iiab-network-complete on second pass of network role.
  file:
    path: "{{ iiab_etc_path }}/install-flags/iiab-network-complete"
    state: touch
  when: iiab_stage|int == 9
