|
|
|
|
|
|
|
|
{% set datamap = salt['grains.filter_by'](rawmap, merge=salt['pillar.get']('network:lookup')) %} |
|
|
{% set datamap = salt['grains.filter_by'](rawmap, merge=salt['pillar.get']('network:lookup')) %} |
|
|
|
|
|
|
|
|
{% set interfaces = datamap.interfaces.def_entries %} |
|
|
{% set interfaces = datamap.interfaces.def_entries %} |
|
|
|
|
|
{% set pkgs = datamap.interfaces.pkgs|default([]) %} |
|
|
|
|
|
|
|
|
{%- macro set_p(paramname, dictvar) -%} |
|
|
{%- macro set_p(paramname, dictvar) -%} |
|
|
{%- if paramname in dictvar -%} |
|
|
{%- if paramname in dictvar -%} |
|
|
|
|
|
|
|
|
{% set interfaces = interfaces + salt['pillar.get']('network:interfaces') %} |
|
|
{% set interfaces = interfaces + salt['pillar.get']('network:interfaces') %} |
|
|
{% endif %} |
|
|
{% endif %} |
|
|
|
|
|
|
|
|
{# http://stackoverflow.com/questions/4870346/can-a-jinja-variables-scope-extend-beyond-in-an-inner-block #} |
|
|
|
|
|
{%- set vlanRequired = [] -%} |
|
|
|
|
|
|
|
|
|
|
|
{% for n in interfaces %} |
|
|
{% for n in interfaces %} |
|
|
network-{{ n.name }}: |
|
|
network-{{ n.name }}: |
|
|
network: |
|
|
network: |
|
|
|
|
|
|
|
|
- enabled: {{ n.enable|default(datamap.interfaces.default_values.enable) }} |
|
|
- enabled: {{ n.enable|default(datamap.interfaces.default_values.enable) }} |
|
|
- proto: {{ n.proto|default(datamap.interfaces.default_values.proto) }} |
|
|
- proto: {{ n.proto|default(datamap.interfaces.default_values.proto) }} |
|
|
- type: {{ n.type|default(datamap.interfaces.default_values.type) }} |
|
|
- type: {{ n.type|default(datamap.interfaces.default_values.type) }} |
|
|
{% for p in datamap.interfaces.params_supported %} |
|
|
|
|
|
|
|
|
{% for p in datamap.interfaces.params_supported %} |
|
|
{{ set_p(p, n) }} |
|
|
{{ set_p(p, n) }} |
|
|
{% endfor %} |
|
|
|
|
|
{% if n.use is defined %} |
|
|
|
|
|
|
|
|
{% endfor %} |
|
|
|
|
|
{% if n.use is defined %} |
|
|
- use: |
|
|
- use: |
|
|
{% for u in n.use %} |
|
|
{% for u in n.use %} |
|
|
- network: network-{{ u }} |
|
|
- network: network-{{ u }} |
|
|
{% endfor %} |
|
|
{% endfor %} |
|
|
{% endif %} |
|
|
|
|
|
{% if n.type == 'vlan' %} |
|
|
|
|
|
{% do vlanRequired.append(1) -%} |
|
|
|
|
|
|
|
|
{% endif %} |
|
|
|
|
|
{% if n.type|default(datamap.interfaces.default_values.type) == 'vlan' and datamap.interfaces.vlan_pkg|default('vlan') %} |
|
|
|
|
|
{% do pkgs.append(datamap.interfaces.vlan_pkg|default('vlan')) %} |
|
|
- require: |
|
|
- require: |
|
|
- pkg: vlan |
|
|
|
|
|
{% endif %} |
|
|
|
|
|
|
|
|
- pkg: packages |
|
|
|
|
|
{% endif %} |
|
|
{% endfor %} |
|
|
{% endfor %} |
|
|
|
|
|
|
|
|
{% if vlanRequired %} |
|
|
|
|
|
vlan: |
|
|
|
|
|
pkg.installed |
|
|
|
|
|
|
|
|
{% if pkgs|length > 0 %} |
|
|
|
|
|
packages: |
|
|
|
|
|
pkg: |
|
|
|
|
|
- installed |
|
|
|
|
|
- pkgs: {{ pkgs }} |
|
|
{% endif %} |
|
|
{% endif %} |