---
# Self identify and load config - this allows the playbook to run on either
# localhost or a remote host
- name: store MAC address for eth0
  set_fact:
    my_macaddr: "{{ hostvars[inventory_hostname].ansible_eth0.macaddress }}"
  when: "inventory_hostname == 'localhost' and 'ansible_eth0' in hostvars[inventory_hostname]"
  tags:
    - raspi
    - sw
    - sshd
    - motd

# Raspberry Pi Zero W has no eth0, so fall back to wlan0
- name: store MAC address for wlan0
  set_fact:
    my_macaddr: "{{ hostvars[inventory_hostname].ansible_wlan0.macaddress }}"
  when: "inventory_hostname == 'localhost' and my_macaddr is not defined"
  tags:
    - raspi
    - sw
    - sshd
    - motd

# for model A, we cannot proceed because there is no mac address

- name: load raspberry pi configuration (local mode)
  include_vars:
    file: "../../../host_vars/{{ macaddrs[my_macaddr] }}"
    name: myconfig
  when: inventory_hostname_short == 'localhost'
  tags:
    - raspi
    - sw
    - sshd
    - motd

- name: load raspberry pi configuration (remote mode)
  set_fact:
    myconfig: "{{ hostvars[inventory_hostname_short] }}"
  when: "inventory_hostname_short != 'localhost'"
  tags:
    - raspi
    - sw
    - sshd
    - motd

- debug:
    msg: "loaded configuration for {{ myconfig.hostname }}"

- assert:
    that: "{{ myconfig|length > 0 }}"