Skip to content

Commit e0e82fb

Browse files
author
Ritwick DSouza
committed
[raspbian] Updated converter and template for multiple static routes
1 parent 4508403 commit e0e82fb

2 files changed

Lines changed: 34 additions & 21 deletions

File tree

netjsonconfig/backends/raspbian/converters/interfaces.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ def _get_address(self, interface):
6666
return addresses
6767

6868
def _get_route(self, routes):
69+
result = []
6970
for route in routes:
7071
if ip_network(route.get('next')).version == 4:
7172
route['version'] = 4
@@ -76,4 +77,5 @@ def _get_route(self, routes):
7677
del route['destination']
7778
elif ip_network(route.get('next')).version == 6:
7879
route['version'] = 6
79-
return route
80+
result.append(route)
81+
return routes

netjsonconfig/backends/raspbian/templates/interfaces.jinja2

Lines changed: 31 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,11 @@
1818
gateway {{ address.gateway }}
1919
{% endif %}
2020
{% if interface.route %}
21-
{% set route = interface.route %}
22-
post-up route add -net {{ route.dest }} netmask {{ route.dest_mask }} gw {{ route.next }}
23-
pre-up route del -net {{ route.dest }} netmask {{ route.dest_mask }} gw {{ route.next }}
21+
{% set routes = interface.route %}
22+
{% for route in routes %}
23+
post-up route add -net {{ route.dest }} netmask {{ route.dest_mask }} gw {{ route.next }}
24+
pre-up route del -net {{ route.dest }} netmask {{ route.dest_mask }} gw {{ route.next }}
25+
{% endfor %}
2426
{% endif %}
2527
{% if interface.mtu %}
2628
mtu {{ interface.mtu }}
@@ -43,9 +45,11 @@
4345
gateway {{ address.gateway }}
4446
{% endif %}
4547
{% if interface.route %}
46-
{% set route = interface.route %}
47-
up ip -6 route add {{ route.destination }} via {{ route.next }} dev eth0
48-
down ip -6 route del {{ route.destination }} via {{ route.next }} dev eth0
48+
{% set routes = interface.route %}
49+
{% for route in routes %}
50+
up ip -6 route add {{ route.destination }} via {{ route.next }} dev eth0
51+
down ip -6 route del {{ route.destination }} via {{ route.next }} dev eth0
52+
{% endfor %}
4953
{% endif %}
5054
{% if interface.mtu %}
5155
mtu {{ interface.mtu }}
@@ -64,9 +68,11 @@
6468
{% if address.family == 'ipv4'%}
6569
iface {{ interface.ifname }} inet {{ address.proto }}
6670
{% if interface.route %}
67-
{% set route = interface.route %}
68-
post-up route add -net {{ route.dest }} netmask {{ route.dest_mask }} gw {{ route.next }}
69-
pre-up route del -net {{ route.dest }} netmask {{ route.dest_mask }} gw {{ route.next }}
71+
{% set routes = interface.route %}
72+
{% for route in routes %}
73+
post-up route add -net {{ route.dest }} netmask {{ route.dest_mask }} gw {{ route.next }}
74+
pre-up route del -net {{ route.dest }} netmask {{ route.dest_mask }} gw {{ route.next }}
75+
{% endfor %}
7076
{% endif %}
7177
{% if interface.mtu %}
7278
pre-up /sbin/ifconfig $IFACE mtu {{ interface.mtu }}
@@ -77,9 +83,11 @@
7783
{% elif address.family == 'ipv6' %}
7884
iface {{ interface.ifname }} inet6 {{ address.proto }}
7985
{% if interface.route %}
80-
{% set route = interface.route %}
81-
up ip -6 route add {{ route.destination }} via {{ route.next }} dev eth0
82-
down ip -6 route del {{ route.destination }} via {{ route.next }} dev eth0
86+
{% set routes = interface.route %}
87+
{% for route in routes %}
88+
up ip -6 route add {{ route.destination }} via {{ route.next }} dev eth0
89+
down ip -6 route del {{ route.destination }} via {{ route.next }} dev eth0
90+
{% endfor %}
8391
{% endif %}
8492
{% if interface.mtu %}
8593
pre-up /sbin/ifconfig $IFACE mtu {{ interface.mtu }}
@@ -96,14 +104,17 @@
96104
{% endif %}
97105
{% if interface.iftype in ['ethernet', 'wireless'] and interface.mode != 'adhoc' %}
98106
iface {{ interface.ifname }} inet manual
99-
{% set route = interface.route %}
100-
{% if interface.route and route.version == 4 %}
101-
post-up route add -net {{ route.dest }} netmask {{ route.dest_mask }} gw {{ route.next }}
102-
pre-up route del -net {{ route.dest }} netmask {{ route.dest_mask }} gw {{ route.next }}
103-
{% elif interface.route and route.version == 6 %}
104-
up ip -6 route add {{ route.destination }} via {{ route.next }} dev eth0
105-
down ip -6 route del {{ route.destination }} via {{ route.next }} dev eth0
106-
{% endif %}
107+
{% set routes = interface.route %}
108+
{% for route in routes %}
109+
{% if interface.route and route.version == 4 %}
110+
post-up route add -net {{ route.dest }} netmask {{ route.dest_mask }} gw {{ route.next }}
111+
pre-up route del -net {{ route.dest }} netmask {{ route.dest_mask }} gw {{ route.next }}
112+
{% endif %}
113+
{% if interface.route and route.version == 6 %}
114+
up ip -6 route add {{ route.destination }} via {{ route.next }} dev eth0
115+
down ip -6 route del {{ route.destination }} via {{ route.next }} dev eth0
116+
{% endif %}
117+
{% endfor %}
107118
{% endif %}
108119
{% if interface.iftype == 'bridge' %}
109120
bridge_ports {{ interface.bridge_members[0] }} {{ interface.bridge_members[1] }}

0 commit comments

Comments
 (0)