- hosts: localhost
  connection: local
  gather_facts: true
  tasks:
    - name: Read dhcp file for rocky
      set_fact:
        var: "{{ lookup('file', '/var/lib/dhcpd/dhcpd.leases').split()| unique | select| list }}"
      when: ansible_facts['distribution'] | lower == "rocky"

    - name: Read dhcp file for leap
      set_fact:
        var: "{{ lookup('file', '/var/lib/dhcp/db/dhcpd.leases').split()| unique | select| list }}"
      when: ("leap" in ansible_facts['distribution'] | lower)
    
    - name: Filter the ip
      set_fact:
        vars_new: "{{ var| ipv4('address')| to_nice_yaml}}"

    - name: Create the static ip
      shell: awk -F',' 'NR >1{print $3}' omnia/control_plane/roles/provision_cobbler/files/new_host_mapping_file.csv > static_hosts.yml
      changed_when: false
      failed_when: false

    - name: Create the dynamic inventory
      shell: |
        echo "{{ vars_new }}" > temp.txt
        egrep -o '[1-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' temp.txt >>dynamic_hosts.yml
      changed_when: false
      failed_when: false

    - name: Final inventory
      shell: cat dynamic_hosts.yml static_hosts.yml| sort -ur  >> omnia/control_plane/roles/collect_node_info/files/provisioned_hosts.yml
      changed_when: false

    - name: Temp result
      shell: cat /root/omnia/control_plane/roles/collect_node_info/files/provisioned_hosts.yml |sort|uniq
      register: inventory

    - name: Final Inventory
      local_action: copy content="{{ inventory.stdout }}" dest=omnia/control_plane/roles/collect_node_info/files/provisioned_hosts.yml

    - name: New line at end of file
      shell: echo "">> omnia/control_plane/roles/collect_node_info/files/provisioned_hosts.yml
      changed_when: false