Formatage , et gestion des igmp querier

This commit is contained in:
chirac 2018-07-12 16:53:35 +02:00
parent 4bac7c64dd
commit 827220a50a
2 changed files with 32 additions and 16 deletions

16
main.py
View file

@ -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.

View file

@ -44,24 +44,32 @@ 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 }}
{%- endif %}
{%- endfor %}
{%- for ipv6, subnet6 in switch.interfaces6_subnet.items() %}
{%- if subnet6.vlan_id == id %}
ipv6 address {{ ipv6 }}/{{ subnet6.netmask_cidr }}
{%- endif %}
{%- endfor %}
{%- 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 %}
{%- else %}
no ip address
{%- endif %}
{%- if vlan.ipv6 %}
{%- for ipv6, subnet6 in vlan.ipv6.items() %}
ipv6 address {{ ipv6 }}/{{ subnet6.netmask_cidr }}
{%- endfor %}
{%- else %}
no ipv6 address
{%- if id in additionals.igmp_vlans %}
no ip igmp querier
{%- endif %}
{%- if id in additionals.mld_vlans %}
no ipv6 mld querier
ipv6 mld version 1
ipv6 mld enable
{%- endif %}
{%- endif %}
exit
{%- endfor %}