[daisy] network template: Fix set inside loop
[pharos.git] / config / installers / daisy / network.yaml.j2
index 9eef739..f976ab7 100644 (file)
@@ -1,5 +1,5 @@
 ##############################################################################
-# Copyright (c) 2017 ZTE Corporation and others.
+# Copyright (c) 2018 ZTE Corporation and others.
 #
 # All rights reserved. This program and the accompanying materials
 # are made available under the terms of the Apache License, Version 2.0
@@ -41,9 +41,10 @@ network-config-metadata:
 
 networks:
 
+  {%- set nodes_num = conf['nodes'] | length -%}
   {%- set networks = {} -%}
   {%- for key in mapping -%}
-    {%- set net_data = conf['net_config'][mapping[key]] -%}
+    {%- set net_data = conf.idf.net_config[mapping[key]] -%}
     {%- set interface = net_data['interface'] -%}
     {%- set interface_name = conf.idf[installer].network.node[0].interfaces[interface] -%}
     {%- set bus_addr = conf.idf[installer].network.node[0].busaddr[interface] -%}
@@ -61,7 +62,9 @@ networks:
       {%- set start = ".".join([ips[0], ips[1], ips[2], "10"]) -%}
       {%- set end = ".".join([ips[0], ips[1], ips[2], "200"]) -%}
     {%- endif -%}
-    {%- set vip = start -%}
+    {%- set vip = start.split(".")[3] | int -%}
+    {%- set vip = vip + nodes_num + 10 - (vip + nodes_num) % 10 -%}
+    {%- set vip = ".".join([ips[0], ips[1], ips[2], vip | string]) -%}
 
     {%- if 'gateway' in net_data -%}
       {%- set gateway = net_data.gateway -%}
@@ -69,7 +72,8 @@ networks:
       {%- set gateway = ".".join([ips[0], ips[1], ips[2], "1"]) -%}
     {%- endif -%}
 
-    {%- set networks = networks.update({key: {'interface_name': interface_name,
+    {#- set v=v.update(...) is unpredictable and breaks in older j2 -#}
+    {%- set _ = networks.update({key: {'interface_name': interface_name,
                                               'bus_addr': bus_addr,
                                               'vlan': vlan,
                                               'network': network,
@@ -88,6 +92,10 @@ networks:
         'end': '{{ end }}'
     vlan_id: {{ vlan }}
     name: '{{ key }}'
+    {%- if key == 'EXTERNAL' %}
+    network_name: 'admin_external'
+    mapping: 'physnet1'
+    {%- endif -%}
   {%- endfor %}
 
 interfaces: