blob: 1a539e1eebc2cb42b07b68664abee04594ee34cd [file] [log] [blame]
{#- Collect interface roles and params into the following dict:
# interface_role: # filename that will be included
# interface_name: # interface (eth0)
# interface_param1: value # optional parameters or empty dict
# interface_param2: value
# ...
#}
{%- set interface_allowed_params = [
'deploy_address',
'deploy_network_netmask',
'deploy_network_gateway',
'single_address',
'control_vlan',
'control_network_netmask',
'tenant_vlan',
'tenant_address',
'tenant_network_netmask',
'tenant_network_gateway',
'external_address',
'external_network_netmask',
'external_vlan',
'storage_vlan',
'storage_address',
'storage_network_netmask',
'backend_vlan',
'backend_address',
'backend_network_netmask',
'dns_server01',
'dns_server02',
'mtu',
]
%}
{%- set interface_roles = {} %}
{%- for interface_name, interface in node['interfaces'].items() %}
{%- if interface['role'] not in interface_roles %}
{%- set _ = interface_roles.update({interface['role']: {}}) %}
{%- endif %}
{%- set _ = interface_roles[interface['role']].update({interface_name: {}}) %}
{%- for param_name, param in interface.items() %}
{%- set _ = interface_roles[interface['role']][interface_name].update({param_name: param}) %}
{%- if param_name in interface_allowed_params %}
{%- set _ = params.update({param_name: param}) %}
{%- endif %}
{%- endfor %}
{%- endfor %}
{%- set _ = params.update({'linux_network_interfaces':''}) %}
{%- for interfaces_role, interfaces in interface_roles.items() %}
{%- import ("{# interfaces #}/" + interfaces_role) as interface with context %}
{%- set _ = params.update({'linux_network_interfaces': params['linux_network_interfaces'] + interface|string }) %}
{%- endfor %}
- environment.{{ cookiecutter._env_name }}.linux_network_interface