{%- from "libvirt/map.jinja" import server with context %}
{%- if server.enabled %}

include:
- libvirt.server.service

{%- for name, network in server.network.iteritems() %}

{%- set network_config_file = '/etc/libvirt/qemu/networks' ~ '/' ~ name ~ '.xml' %}

{%- if network.ensure|default('running') in ['present', 'running'] %}

{{ network_config_file }}:
  file.managed:
  - mode: 600
  - user: root
  - group: root
  - contents_pillar: libvirt:server:network:{{ name }}:xml
  - watch_in:
    - service: libvirt_service

{%- if grains.get('virtual_subtype', None) not in ['Docker', 'LXC'] %}

net-{{ name }}:
  cmd.run:
  - name: virsh net-define {{ network_config_file }}
  - unless: virsh -q net-list --all | grep -q '^\s*{{ name }}'

{%- if network.autostart|default(True) %}

net-autostart-{{ name }}:
  cmd.run:
  - name: virsh net-autostart {{ name }}
  - unless: virsh net-info {{ name }} | grep -Eq '^Autostart:\s+yes'

{%- endif %}

net-startstop-{{ name }}:
  cmd.run:
  - name: virsh net-start {{ name }}
  - unless: virsh -q net-list --all | grep -Eq '^\s*{{ name }}\s+active'

{%- endif %}

{%- elif network.ensure|default('running') == 'absent' %}

{{ network_config_file }}:
  file.absent:
  - watch_in:
    - service: libvirt_service

net-{{ name }}:
  cmd.run:
  - name: virsh net-undefine {{ name }};virsh net-destroy {{ name }} 2>&1 1>/dev/null
  - onlyif: virsh -q net-list --all | grep -Eq '^\s*{{ name }}'

net-autostart-{{ name }}:
  cmd.run:
  - name: virsh net-autostart {{ name }} --disable
  - onlyif: virsh net-info {{ name }} | grep -Eq '^Autostart:\s+yes'

net-startstop-{{ name }}:
  cmd.run:
  - name: virsh net-destroy {{ name }}
  - onlyif: virsh -q net-list --all | grep -Eq '^\s*{{ name }}\s+active'

{%- endif %}

{%- endfor %}

{%- endif %}
