From ea60c76344faed6b0b2c174f7429f131915526f9 Mon Sep 17 00:00:00 2001 From: Daniel STAN Date: Wed, 31 Oct 2012 03:43:00 +0100 Subject: [PATCH] [switchs.py] gigabit pour adherents et membres actifs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ignore-this: 3e710596ad27d77ed8b7ebee8eeb32cb Bon, pour pas faire de jaloux (paraît que c'est grave si certains sont avantagés et obtiennent quelque chose qu'on ne leur a jamais promis, sic), proof of concept qu'on peut limiter la synchro d'une prise. À part creuvarder, je vois un seul avantage à cette config: ça forcera les gens qui changent leur prise à mettre à jour la bdd en conséquence. darcs-hash:20121031024300-28565-973f0d1e481486a009c4f15ad7ab5fa3e04a4bfc.gz --- gestion/gen_confs/switchs.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) 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):