Utilise les réglages roles et topologie option pour reconfig les switchs

This commit is contained in:
chirac 2018-07-11 23:58:16 +02:00
parent 7d7c7f2f13
commit 3d7c9d98be
2 changed files with 22 additions and 38 deletions

12
main.py
View file

@ -34,7 +34,7 @@ class Switch:
def __init__(self):
self.additionnal = None
self.all_vlans = api_client.list("machines/vlan/")
self.all_roles = api_client.list("machines/role/")
self.settings = api_client.view("preferences/optionaltopologie/")
# Import du fichier template dans une variable "template"
self.hp_tpl = ENV.get_template("templates/hp.tpl")
self.conf = None
@ -75,20 +75,16 @@ class Switch:
dhcpv6_snooping_vlans = [vlan["vlan_id"] for vlan in self.all_vlans if vlan["dhcpv6_snooping"]]
igmp_vlans = [vlan["vlan_id"] for vlan in self.all_vlans if vlan["igmp"]]
mld_vlans = [vlan["vlan_id"] for vlan in self.all_vlans if vlan["mld"]]
ntp_servers = [server["servers"] for server in self.all_roles if server["role_type"] == "ntp-server"][0]
log_servers = [server["servers"] for server in self.all_roles if server["role_type"] == "log-server"][0]
dhcp_servers = [server["servers"] for server in self.all_roles if server["role_type"] == "dhcp"][0]
radius_servers = [server["servers"] for server in self.all_roles if server["role_type"] == "radius-server"][0]
ra_guarded = [str(port['port']) for port in self.switch['ports'] if port['get_port_profil']['ra_guard']]
loop_protected = [str(port['port']) for port in self.switch['ports'] if port['get_port_profil']['loop_protect']]
self.additionals = {'ra_guarded' : ra_guarded, 'loop_protected' : loop_protected, 'vlans' : vlans, 'arp_protect_vlans' : arp_protect_vlans, 'dhcp_snooping_vlans' : dhcp_snooping_vlans, 'dhcpv6_snooping_vlans' : dhcpv6_snooping_vlans, 'ntp_servers': ntp_servers, 'log_servers': log_servers, 'dhcp_servers' : dhcp_servers, 'radius_servers' : radius_servers, 'igmp_vlans' : igmp_vlans, 'mld_vlans': mld_vlans}
self.additionals = {'ra_guarded' : ra_guarded, 'loop_protected' : loop_protected, 'vlans' : vlans, 'arp_protect_vlans' : arp_protect_vlans, 'dhcp_snooping_vlans' : dhcp_snooping_vlans, 'dhcpv6_snooping_vlans' : dhcpv6_snooping_vlans, 'igmp_vlans' : igmp_vlans, 'mld_vlans': mld_vlans}
def gen_conf_hp(self):
"""Génère la config pour ce switch hp"""
self.preprocess_hp()
self.conf = self.hp_tpl.render(switch=self.switch, additionals=self.additionals)
self.conf = self.hp_tpl.render(switch=self.switch, settings=self.settings, additionals=self.additionals)
def check_and_get_login(self):
"""Récupère les login/mdp du switch, renvoie false si ils sont indisponibles"""
@ -119,7 +115,7 @@ class Switch:
"tftp_server_address": {"server_address":
{"ip_address":
{"version":"IAV_IP_V4",
"octets":"10.231.100.249"}}},
"octets":self.settings["switchs_management_interface_ip"]}}},
}
# Nous lançons la requête de type POST.
post_restore = requests.post(url_restore, data=json.dumps(data), headers=self.headers)