Commit c1cce482 authored by Hamza Dely's avatar Hamza Dely

Ajout de l'interface d'inscription des switches

parent bbd2bb1c
......@@ -410,6 +410,9 @@ NETs_primaires = {
'wifi-serveurs' : [
'138.231.148.0/27',
],
'switches' : [
'10.231.100.0/24',
],
'bornes' : [
'10.231.148.0/24',
],
......@@ -479,7 +482,9 @@ rid_primaires = {
# Rid pour les serveurs wifi
'wifi-serveurs' : [(3072,3103),],
# Rid pour les bornes
'bornes' : [(57344, 57600),],
'bornes' : [(57344, 57599),],
# Rid pour les switches
'switches' : [(57600, 57855),],
# Rid pour machines spéciales
'special' : [(4096, 6143),],
# Rid pour les serveurs v6-only
......@@ -549,6 +554,9 @@ prefix = {
'adm-v6' : [
'2a01:240:fe3d:c804::/64',
],
'switches' :[
'fd01:240:fe3d:c804::/64',
],
'wifi' : [
'2a01:240:fe3d:c04::/64',
],
......@@ -597,6 +605,7 @@ ip_ula_radius='fda8:5d34:a228:c04:7261:6469:7573:3031'
domains = {
'machineFixe': 'crans.org',
'machineCrans': 'crans.org',
'switchCrans': 'switches.crans.org',
'machineWifi': 'wifi.crans.org',
'borneWifi': 'wifi.crans.org',
}
......@@ -609,7 +618,7 @@ vlans = {
'wifi' : 3,
'bornes' : 3,
# VLan pour le wifi de l'ens
'switchs' : 4,
'switches' : 4,
# VLan des gens qui paient
'adherent' : 1,
# VLan des inconnus
......
......@@ -46,7 +46,7 @@ class Dialog(certificat.Dialog, blacklist.Dialog):
to_display_machine_crans = [(a.prise, 10)]
to_display_switchs = [(a.nombrePrises, 10)]
to_display_switch = [(a.host, 40), (a.macAddress, 17), (a.ipHostNumber, 15), (a.nombrePrises, 10)]
# Quel séparateur on utilise pour les champs multivalué
separateur = ' '
......@@ -76,13 +76,15 @@ class Dialog(certificat.Dialog, blacklist.Dialog):
hostend = ".crans.org"
# Les machines Crans/bornes sont gérées de façon plus souple.
elif realm in ['bornes', 'wifi-serveurs', 'serveurs'] or objectClass in ['machineCrans', 'borneWifi']:
elif realm in ['bornes', 'wifi-serveurs', 'serveurs', 'switches'] or objectClass in ['machineCrans', 'borneWifi', 'switchCrans']:
if realm == 'serveurs':
hostend = ".crans.org"
elif realm == 'adm':
hostend = ".adm.crans.org"
elif realm == 'wifi-serveurs':
hostend = ".wifi.crans.org"
elif realm == "switches":
hostend = ".switches.crans.org"
elif realm == 'bornes':
hostend = ".borne.wifi.crans.org"
if not '.' in host:
......@@ -176,6 +178,8 @@ class Dialog(certificat.Dialog, blacklist.Dialog):
# Les bornes wifi et machines Crans ont un to_display différent
if objectClass == 'borneWifi':
to_display += to_display_borne
if objectClass == 'switchCrans':
to_display = to_display_switch
if objectClass == 'machineCrans':
to_display += to_display_machine_crans
# Les swicths sont des machines crans, avec un noms particulier
......@@ -214,9 +218,9 @@ class Dialog(certificat.Dialog, blacklist.Dialog):
"""Juste un raccourci vers edit_boolean_attributs spécifique aux machines"""
a = attributs
attribs = [a.dnsIpv6]
if machine['objectClass'][0] == 'borneWifi' or machine['objectClass'][0] == 'machineCrans':
if machine['objectClass'][0] in ['borneWifi', 'machineCrans', 'switchCrans']:
attribs += [a.statut]
if machine['objectClass'][0] == 'borneWifi':
if machine['objectClass'][0] in ['borneWifi']:
attribs += [a.hotspot, a.pontwifi]
return self.edit_boolean_attributs(
obj=machine,
......@@ -233,7 +237,7 @@ class Dialog(certificat.Dialog, blacklist.Dialog):
sinon, on en cherche une dans la base ldap
"""
if machine is None:
machine = self.select(["machineFixe", "machineWifi", "machineCrans", "borneWifi"], "Recherche d'une machine pour modification", cont=cont)
machine = self.select(["machineFixe", "machineWifi", "machineCrans", "borneWifi", "switchCrans"], "Recherche d'une machine pour modification", cont=cont)
a = attributs
menu_droits = {
'Information' : [a.parent, a.cableur, a.nounou],
......@@ -328,14 +332,16 @@ class Dialog(certificat.Dialog, blacklist.Dialog):
'Wifi' : [a.nounou],
'Wifi-serveur' : [a.nounou],
'Adm' : [a.nounou],
'Switch' : [a.nounou],
})
menu.update({
'Fixe' : {'text' : "Ajouter un serveur sur le vlan adherent", 'objectClass':'machineCrans', 'realm':'serveurs'},
'Wifi' : {'text': 'Ajouter une borne WiFi sur le vlan wifi (ip privée)', 'objectClass':'borneWifi', 'realm':'bornes'},
'Wifi-serveur' : {'text': 'Ajouter un serveur sur le vlan wifi', 'objectClass':'machineCrans', 'realm':'wifi-serveurs'},
'Adm' : {'text' : "Ajouter un serveur sur le vlan adm, ou sans controle sur le nom d'hote et l'ip", "objectClass":"machineCrans", 'realm':'adm'},
'Switch' : {'text' : "Ajouter un switch sur le VLAN 4 (Switches)", "objectClass":"switchCrans", 'realm':'switches'},
})
menu_order += ['Adm','Wifi-serveur']
menu_order += ['Adm', 'Switch', 'Wifi-serveur']
def box(default_item=None):
return self.dialog.menu(
"Type de Machine ?",
......@@ -400,7 +406,7 @@ class Dialog(certificat.Dialog, blacklist.Dialog):
def delete_machine(self, cont, machine=None):
"""Permet la suppression d'une machine de la base ldap"""
if machine is None:
machine = self.select(["machineFixe", "machineWifi", "machineCrans", "borneWifi"], "Recherche d'une machine pour supression", cont=cont)
machine = self.select(["machineFixe", "machineWifi", "machineCrans", "borneWifi", "switchCrans"], "Recherche d'une machine pour supression", cont=cont)
def todo(machine):
if self.confirm_item(item=machine, title="Voulez vous vraiement supprimer la machine ?", defaultno=True):
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment