[annuaires/munin] rajouts de switchs

This commit is contained in:
Daniel STAN 2013-05-10 19:16:23 +02:00
parent 15bc866616
commit d059fb154b
3 changed files with 31 additions and 29 deletions

View file

@ -82,7 +82,7 @@ def reverse(batiment, prise = None):
if not ret:
raise ValueError("Batiment inexistant")
return ret
@_need_conn
def is_crans(batiment, chambre):
"""Chambre cablee au Cr@ns ?"""
@ -137,25 +137,26 @@ uplink_prises={ 'a' :
301 : 'uplink->batc-0', 302 : 'uplink->batc-1',
303 : 'uplink->batc-2', 324 : 'uplink->backbone' },
'g' :
{
{
21 : 'libre-service', 22 : 'uplink->backbone',
23 : 'libre-service', 24 : 'uplink->batg-8',
149 : 'uplink->batg-8', 150 : 'libre-service',
249 : 'uplink->batg-8', 250 : 'uplink->batg-3',
325 : 'uplink->batg-8', 326 : 'libre-service',
449 : 'uplink->batg-9', 450 : 'uplink->batg-5',
549 : 'uplink->batg-9', 550 : 'uplink->batg-6',
649 : 'uplink->batg-9', 650 : 'uplink->batg-5',
725 : 'uplink->batg-9', 726 : 'libre-service',
801 : 'uplink->batg-1', 802 : 'uplink->batg-2',
803 : 'uplink->batg-3', 821 : 'uplink->batg-0',
823 : 'uplink->batg-9',
@ -207,7 +208,7 @@ uplink_prises={ 'a' :
'p' :
{
49 : 'uplink->batp-4',
149: 'uplink->batp-4',
149: 'uplink->batp-4',
249: 'uplink->batp-4',
350: 'uplink->batp-4',
# On ne génère pas la conf de batp-4 automatiquement, mais ses uplinks
@ -217,7 +218,7 @@ uplink_prises={ 'a' :
405: 'libre-service', 406: 'uplink->bato-1',
},
'o' :
{
{
25 : 'uplink->bato-1', 26 : 'libre-service',
101 : 'uplink->bato-0', 121: 'uplink->NRD',
122: 'uplink->backbone', 123: 'uplink->backbone (unused)',
@ -250,29 +251,30 @@ uplink_prises={ 'a' :
},
}
def all_switchs(bat=None):
def all_switchs(bat=None, hide=['backbone.adm.crans.org',
'multiprise-v6.adm.crans.org',
'batk-0.crans.org']):
"""Retourne la liste des switchs pour un batiment.
Si bat est donné, seulement pour le bâtiment demandé, sinon pour
tous les bâtiments. bat peut être une liste aussi. Le backbone n'est
pas pris en compte. La convention est batx-y sauf si y=0 et on a donc
simplement batx"""
def cmp(x,y):
if int(x[5]) < int(y[5]): return 1
if x[3] < y[3]: return 1
return -1
if bat == None:
bat = bat_switchs
if type(bat) not in [ tuple, list ] :
bat = [bat]
switchs = []
for b in map(lambda x: x.lower(), bat):
dup = map(lambda x: x[0], reverse(b).keys())
# dup contient des elements en double
for n in list(dict(zip(dup,[None]*len(dup)))):
switchs.append("bat%s-%s.adm.crans.org" % (b, n))
switchs.sort(cmp)
for b in bat:
indexes = set(n/100 for n in uplink_prises[b])
for i in indexes:
switchs.append("bat%s-%s.adm.crans.org" % (b, i))
# on ajoute quand-même le backbone et/ou multiprise-v6 si demandé
switchs += set(['backbone.adm.crans.org', 'multiprise-v6.adm.crans.org',
'batk-0.crans.org']).difference(hide)
switchs.sort()
return switchs
# Locaux clubs : lecture dans chbre_prises et ajout des locaux dans les bats non