---
# roles/config-virt/tasks/main.yml

- name: collect libvirt network facts
  virt_net:
    command=facts

- name: Tear down libvirt's default network
  when: ansible_libvirt_networks["default"] is defined
  virt_net:
    command={{ item }}
    name=default
  with_items:
    - destroy
    - undefine

# note, this isn't idempotent, so may need manual fixing if it changes
- name: define libvirt networks IP/DHCP/DNS settings
  virt_net:
    name=xos-{{ item.name }}
    command=define
    xml='{{ lookup("template", "virt_net.xml.j2") }}'
  with_items: '{{ virt_nets }}'

- name: collect libvirt network facts after defining new network
  virt_net:
    command=facts

- name: start libvirt networks
  when: ansible_libvirt_networks["xos-{{ item.name }}"].state != "active"
  virt_net:
    name=xos-{{ item.name }}
    command=create
  with_items: '{{ virt_nets }}'

- name: have libvirt networks autostart
  when: ansible_libvirt_networks["xos-{{ item.name }}"].autostart != "yes"
  virt_net:
    name=xos-{{ item.name }}
    autostart=yes
  with_items: '{{ virt_nets }}'

- name: Have libvirt enable port forwarding to VM's
  become: yes
  template:
    src={{ item }}.j2
    dest=/etc/libvirt/hooks/{{ item }}
    mode=0755 owner=root
  with_items:
    - daemon
    - qemu
  notify:
    - reload libvirt-bin
    - run qemu hook


