blob: f68ee9555137e97e2b89f2a40d5983bc0a693a46 [file] [log] [blame]
{%- 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 '^{{ 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 '^{{ 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-destroy {{ name }} 2>&1 1>/dev/null; virsh net-undefine {{ name }}
- onlyif: virsh -q net-list --all | grep -q '^{{ 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 '^{{ name }}\s+active'
{%- endif %}
{%- endfor %}
{%- endif %}