[switchs.py] gigabit pour adherents et membres actifs

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
This commit is contained in:
Daniel STAN 2012-10-31 03:43:00 +01:00
parent c04010afbb
commit ea60c76344

View file

@ -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):