Fait en sorte que all_switchs ne forge pas les noms des switches
This commit is contained in:
parent
d7c15ab14b
commit
53bddc87b2
1 changed files with 29 additions and 1 deletions
|
@ -2,8 +2,11 @@
|
|||
|
||||
import os
|
||||
import psycopg2
|
||||
|
||||
from functools import wraps
|
||||
|
||||
import time
|
||||
import socket
|
||||
|
||||
conn = None
|
||||
# : échec définitif, on raise une exception direct
|
||||
|
@ -279,6 +282,26 @@ _HIDDEN_SWITCHES = [
|
|||
'batv-0.adm.crans.org',
|
||||
]
|
||||
|
||||
def guess_switch_fqdn(switch_name):
|
||||
"""Retourne le FQDN d'un switch à partir de son nom"""
|
||||
|
||||
try:
|
||||
return socket.gethostbyname_ex(switch_name)[0]
|
||||
except socket.gaierror:
|
||||
pass
|
||||
|
||||
try:
|
||||
return socket.gethostbyname_ex(switch_name + ".adm.crans.org")[0]
|
||||
except socket.gaierror:
|
||||
pass
|
||||
|
||||
try:
|
||||
return socket.gethostbyname_ex(switch_name + ".crans.org")[0]
|
||||
except socket.gaierror:
|
||||
pass
|
||||
|
||||
raise socket.gaierror
|
||||
|
||||
def all_switchs(bat=None, hide=_SPECIAL_SWITCHES + _HIDDEN_SWITCHES):
|
||||
"""Retourne la liste des switchs pour un batiment.
|
||||
|
||||
|
@ -295,7 +318,12 @@ def all_switchs(bat=None, hide=_SPECIAL_SWITCHES + _HIDDEN_SWITCHES):
|
|||
for b in bat:
|
||||
indexes = set(n/100 for n in uplink_prises[b])
|
||||
for i in indexes:
|
||||
hostname = "bat%s-%s.adm.crans.org" % (b, i)
|
||||
switch_name = "bat%s-%s" % (b, i)
|
||||
try:
|
||||
hostname = guess_switch_fqdn(switch_name)
|
||||
except socket.gaierror:
|
||||
print "Le switch %s ne semble pas exister." % (switch_name,)
|
||||
continue
|
||||
if hostname not in hide:
|
||||
switchs.append(hostname)
|
||||
# on ajoute quand-même le backbone et/ou multiprise-v6 si demandé
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue