diff --git a/gestion/gen_confs/switchs.py b/gestion/gen_confs/switchs.py index 8532c7fc..17ec15c4 100644 --- a/gestion/gen_confs/switchs.py +++ b/gestion/gen_confs/switchs.py @@ -36,6 +36,8 @@ headers_by_model = { 'HP 2610-48':'; J9088A Configuration Editor; Created on release #R.11.54', 'HP 2910al-24G':'; J9145A Configuration Editor; Created on release #W.14.38'} +gigabit_models = ['J9021A', 'J9145A'] + try: any except NameError: @@ -159,7 +161,8 @@ dhcp-snooping""" interface_template = """interface %(prise)i enable name "%(nom)s" - %(no_flowcontrol)sflow-control%(speed)s + %(no_flowcontrol)s flow-control + %(speed)s no lacp exit """ @@ -463,14 +466,24 @@ exit # chambres. chbres = prise_chbres.get(annu_prise, []) + # Pour les switchs gigabit, on bloque le gigabit par défaut, sauf + # pour les membres actifs et les clubs (cf plus bas) + if model in gigabit_models: + prise_params['speed'] = 'speed-duplex auto-10-100' + # Combien de machines sont succeptibles d'etre sur la prise nombre_de_machines = 0 # Pour chaque chambre sur cette prise for chb in chbres: # On selectionne les eventuels adherents y residant - for adherent in self.db.search("chbre=%s%s" % (bat, chb))['adherent']: + residents = self.db.search("chbre=%s%s" % (bat, chb)) + for adherent in residents['adherent']: + if adherent.droits(): #Seuls les membres actifs ont le droit à plus + prise_params['speed'] = '' # On selectionne les machines fixes de l'adherent, et on ajoute le nombre au quota nombre_de_machines += len(adherent.machines_fixes()) + if residents['club']: + prise_params['speed'] = '' # Authentification RADIUS, pas pour les clubs... if not any("cl" in chbre.lower() for chbre in chbres):