blob: 1a539e1eebc2cb42b07b68664abee04594ee34cd [file] [log] [blame]
Dennis Dmitrievf4826bc2017-09-28 19:03:54 +03001{#- Collect interface roles and params into the following dict:
2 # interface_role: # filename that will be included
3 # interface_name: # interface (eth0)
4 # interface_param1: value # optional parameters or empty dict
5 # interface_param2: value
6 # ...
7 #}
Dennis Dmitrievcf5f43b2017-10-11 15:10:27 +03008{%- set interface_allowed_params = [
9 'deploy_address',
10 'deploy_network_netmask',
11 'deploy_network_gateway',
12 'single_address',
13 'control_vlan',
14 'control_network_netmask',
15 'tenant_vlan',
16 'tenant_address',
17 'tenant_network_netmask',
18 'tenant_network_gateway',
Oleksii Butenkoaa2e3c52018-08-23 14:16:07 +030019 'external_address',
20 'external_network_netmask',
Dmitry Tyzhnenko4623e442019-01-17 15:57:52 +020021 'external_vlan',
Dennis Dmitrievf1774462018-11-30 19:42:59 +020022 'storage_vlan',
23 'storage_address',
24 'storage_network_netmask',
25 'backend_vlan',
26 'backend_address',
27 'backend_network_netmask',
Dennis Dmitrievcf5f43b2017-10-11 15:10:27 +030028 'dns_server01',
29 'dns_server02',
Dennis Dmitrieve56f3022018-03-22 20:14:59 +020030 'mtu',
Dennis Dmitrievcf5f43b2017-10-11 15:10:27 +030031 ]
32%}
Dennis Dmitrievf4826bc2017-09-28 19:03:54 +030033{%- set interface_roles = {} %}
34{%- for interface_name, interface in node['interfaces'].items() %}
35 {%- if interface['role'] not in interface_roles %}
36 {%- set _ = interface_roles.update({interface['role']: {}}) %}
37 {%- endif %}
38 {%- set _ = interface_roles[interface['role']].update({interface_name: {}}) %}
39 {%- for param_name, param in interface.items() %}
40 {%- set _ = interface_roles[interface['role']][interface_name].update({param_name: param}) %}
Dennis Dmitrievcf5f43b2017-10-11 15:10:27 +030041 {%- if param_name in interface_allowed_params %}
42 {%- set _ = params.update({param_name: param}) %}
43 {%- endif %}
Dennis Dmitrievf4826bc2017-09-28 19:03:54 +030044 {%- endfor %}
45{%- endfor %}
Dennis Dmitrievcf5f43b2017-10-11 15:10:27 +030046{%- set _ = params.update({'linux_network_interfaces':''}) %}
Dennis Dmitrievf4826bc2017-09-28 19:03:54 +030047{%- for interfaces_role, interfaces in interface_roles.items() %}
48 {%- import ("{# interfaces #}/" + interfaces_role) as interface with context %}
49 {%- set _ = params.update({'linux_network_interfaces': params['linux_network_interfaces'] + interface|string }) %}
50{%- endfor %}
51 - environment.{{ cookiecutter._env_name }}.linux_network_interface