diff --git a/gestion/annuaires_pg.py b/gestion/annuaires_pg.py index 15657eb1..8462e0de 100755 --- a/gestion/annuaires_pg.py +++ b/gestion/annuaires_pg.py @@ -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 diff --git a/munin/ping_bat_ b/munin/ping_bat_ index d9202c9e..b9b24954 100755 --- a/munin/ping_bat_ +++ b/munin/ping_bat_ @@ -37,7 +37,7 @@ file_host=`basename $0 | sed 's/^ping_//g' | sed 's/_/-/g'` host=${host:-${file_host:-www.google.com}} if [ "$1" = "config" ]; then - echo host_name `basename $host | sed 's/-//g'` + echo host_name `basename $host` echo graph_title Ping times from $hostname echo 'graph_args --base 1000 -l 0' echo 'graph_vlabel seconds' diff --git a/munin/scripts/hosts_plugins.py b/munin/scripts/hosts_plugins.py index 33d17f9d..b494c3c5 100755 --- a/munin/scripts/hosts_plugins.py +++ b/munin/scripts/hosts_plugins.py @@ -101,7 +101,6 @@ hosts_plugins = { "audimat": "audimat", "batiments": "batiments", "munin": "munin", - "ping_multiprise_v6.adm": "ping_", "stats-ip": "stats-ip", # La suite plus bas... }, @@ -133,11 +132,12 @@ for bat in annuaires.bat_switchs: hosts_plugins["dyson"]["stats-batiment_%s" % bat] = "stats-batiment_" # Ping de tous les switches de bâtiments -for switch in annuaires.all_switchs(): - # Suppression du .adm.crans.org - switch = switch[:switch.index('.')] +for switch in annuaires.all_switchs(hide=[]): + # Suppression du .crans.org pour plus de clarté dans les confs + # (tous les switchs n'étant pas sur adm, on garde quand-même ce suffixe) + switch = switch[:switch.rindex('.crans.org')] switch = switch.replace('-', '_') - hosts_plugins["dyson"]["ping_%s.adm" % switch] = "ping_bat_" + hosts_plugins["dyson"]["ping_%s" % switch] = "ping_bat_" # On rajoute les stats de connexion for host in hosts_plugins.keys():