From 827220a50ad5ef3b7035d424730343ded78d4420 Mon Sep 17 00:00:00 2001 From: chirac Date: Thu, 12 Jul 2018 16:53:35 +0200 Subject: [PATCH] Formatage , et gestion des igmp querier --- main.py | 16 ++++++++++++---- templates/hp.tpl | 30 +++++++++++++++++++----------- 2 files changed, 31 insertions(+), 15 deletions(-) diff --git a/main.py b/main.py index 286caf9..60e9f5e 100755 --- a/main.py +++ b/main.py @@ -70,6 +70,13 @@ class Switch: for vlan in port['get_port_profil']['vlan_tagged']: add_to_vlans(vlans, vlan, port) + for ip, subnet in self.switch["interfaces_subnet"].items(): + vlans[subnet[0]["vlan_id"]].setdefault("ipv4", {}) + vlans[subnet[0]["vlan_id"]]["ipv4"][ip] = subnet + for ipv6, subnet in self.switch["interfaces6_subnet"].items(): + vlans[subnet["vlan_id"]].setdefault("ipv6", {}) + vlans[subnet["vlan_id"]]["ipv6"][ipv6] = subnet + arp_protect_vlans = [vlan["vlan_id"] for vlan in self.all_vlans if vlan["arp_protect"]] dhcp_snooping_vlans = [vlan["vlan_id"] for vlan in self.all_vlans if vlan["dhcp_snooping"]] dhcpv6_snooping_vlans = [vlan["vlan_id"] for vlan in self.all_vlans if vlan["dhcpv6_snooping"]] @@ -112,10 +119,11 @@ class Switch: data = { "server_type": "ST_TFTP", "file_name": self.get_conf_file_name(), - "tftp_server_address": {"server_address": - {"ip_address": - {"version":"IAV_IP_V4", - "octets":self.settings["switchs_management_interface_ip"]}}}, + "tftp_server_address": { + "server_address": { + "ip_address": { + "version":"IAV_IP_V4", + "octets":self.settings["switchs_management_interface_ip"]}}}, "is_forced_reboot_enabled": True, } # Nous lançons la requête de type POST. diff --git a/templates/hp.tpl b/templates/hp.tpl index eebed11..ce50cf5 100644 --- a/templates/hp.tpl +++ b/templates/hp.tpl @@ -44,25 +44,33 @@ vlan {{ id }} {%- if vlan["ports_untagged"] %} untagged {{ vlan["ports_untagged"]|join(',') }} {%- endif %} - {%- for ipv4, subnet in switch.interfaces_subnet.items() %} - {%- if subnet.0.vlan_id == id %} - ip address {{ ipv4 }}/{{ subnet.0.netmask_cidr }} + {%- if id in additionals.igmp_vlans %} + ip igmp + {%- endif %} + {%- if id in additionals.mld_vlans %} + ipv6 mld version 1 + ipv6 mld enable {%- endif %} + {%- if vlan.ipv4 %} + {%- for ipv4, subnet in vlan.ipv4.items() %} + ip address {{ ipv4 }}/{{ subnet.0.netmask_cidr }} {%- endfor %} - {%- for ipv6, subnet6 in switch.interfaces6_subnet.items() %} - {%- if subnet6.vlan_id == id %} + {%- else %} + no ip address + {%- endif %} + {%- if vlan.ipv6 %} + {%- for ipv6, subnet6 in vlan.ipv6.items() %} ipv6 address {{ ipv6 }}/{{ subnet6.netmask_cidr }} - {%- endif %} {%- endfor %} + {%- else %} + no ipv6 address {%- if id in additionals.igmp_vlans %} - ip igmp no ip igmp querier - {%- endif %} + {%- endif %} {%- if id in additionals.mld_vlans %} no ipv6 mld querier - ipv6 mld version 1 - ipv6 mld enable - {%- endif %} + {%- endif %} + {%- endif %} exit {%- endfor %} ;--- Accès d'administration ---