[gen_confs/switchs.py] on récupère la première ligne de la conf depuis le switch
Ignore-this: 28adbb199ef5bd83b58f20ea4320505b darcs-hash:20090302143657-bd074-c53e93c464eb46cf527e4431c208fda82a5570a0.gz
This commit is contained in:
parent
eb82b03462
commit
8905c9ca16
2 changed files with 33 additions and 25 deletions
|
@ -129,16 +129,16 @@ def tableau(data, titre=None, largeur=None, alignement=None, format=None):
|
||||||
|
|
||||||
titre : liste des titres
|
titre : liste des titres
|
||||||
Si none, n'affiche pas de ligne de titre
|
Si none, n'affiche pas de ligne de titre
|
||||||
|
|
||||||
largeur : liste des largeurs des colonnes, '*' met la plus grande
|
largeur : liste des largeurs des colonnes, '*' met la plus grande
|
||||||
largeur possible.
|
largeur possible.
|
||||||
Si None, réduit aux max chaque colonne
|
Si None, réduit aux max chaque colonne
|
||||||
|
|
||||||
alignement : liste des alignements : c = centrer
|
alignement : liste des alignements : c = centrer
|
||||||
g = gauche
|
g = gauche
|
||||||
d = droit
|
d = droit
|
||||||
Si None, met c pour chaque colonne
|
Si None, met c pour chaque colonne
|
||||||
|
|
||||||
format : liste des formats : s = string
|
format : liste des formats : s = string
|
||||||
o = octet
|
o = octet
|
||||||
Si None, s pour chaque colonne
|
Si None, s pour chaque colonne
|
||||||
|
@ -150,16 +150,16 @@ def tableau(data, titre=None, largeur=None, alignement=None, format=None):
|
||||||
nbcols = len(titre)
|
nbcols = len(titre)
|
||||||
else :
|
else :
|
||||||
return u'Aucune donnée'
|
return u'Aucune donnée'
|
||||||
|
|
||||||
# Formats
|
# Formats
|
||||||
#########
|
#########
|
||||||
if not format :
|
if not format :
|
||||||
format = ['s'] * nbcols
|
format = ['s'] * nbcols
|
||||||
|
|
||||||
def reformate(data, format):
|
def reformate(data, format):
|
||||||
if format == 's':
|
if format == 's':
|
||||||
return unicode(data)
|
return unicode(data)
|
||||||
|
|
||||||
elif format == 'o' :
|
elif format == 'o' :
|
||||||
data = float(data)
|
data = float(data)
|
||||||
if data > 1024**3:
|
if data > 1024**3:
|
||||||
|
@ -170,9 +170,9 @@ def tableau(data, titre=None, largeur=None, alignement=None, format=None):
|
||||||
return str(round(data/1024, 1)) + 'ko'
|
return str(round(data/1024, 1)) + 'ko'
|
||||||
else:
|
else:
|
||||||
return str(round(data, 1)) + 'o'
|
return str(round(data, 1)) + 'o'
|
||||||
|
|
||||||
data = [ [ reformate(ligne[i],format[i]) for i in range(nbcols) ] for ligne in data ]
|
data = [ [ reformate(ligne[i],format[i]) for i in range(nbcols) ] for ligne in data ]
|
||||||
|
|
||||||
# Largeurs
|
# Largeurs
|
||||||
##########
|
##########
|
||||||
if not largeur :
|
if not largeur :
|
||||||
|
@ -183,23 +183,23 @@ def tableau(data, titre=None, largeur=None, alignement=None, format=None):
|
||||||
if largeur[i] in ['*',-1] :
|
if largeur[i] in ['*',-1] :
|
||||||
largeur[i] = max(cols - sum([l for l in largeur if l != '*']) - nbcols - 1, 3)
|
largeur[i] = max(cols - sum([l for l in largeur if l != '*']) - nbcols - 1, 3)
|
||||||
break
|
break
|
||||||
|
|
||||||
# Alignement
|
# Alignement
|
||||||
############
|
############
|
||||||
if not alignement :
|
if not alignement :
|
||||||
alignement = ['c'] * nbcols
|
alignement = ['c'] * nbcols
|
||||||
|
|
||||||
def aligne (data, alignement, largeur) :
|
def aligne (data, alignement, largeur) :
|
||||||
# Longeur sans les chaines de formatage
|
# Longeur sans les chaines de formatage
|
||||||
l = len(re.sub('\x1b\[1;([0-9]|[0-9][0-9])m','',data))
|
l = len(re.sub('\x1b\[1;([0-9]|[0-9][0-9])m','',data))
|
||||||
|
|
||||||
# Alignement
|
# Alignement
|
||||||
if l > largeur :
|
if l > largeur :
|
||||||
# découpage d'une chaine trop longue
|
# découpage d'une chaine trop longue
|
||||||
regexp = re.compile('\x1b\[1;([0-9]|[0-9][0-9])m')
|
regexp = re.compile('\x1b\[1;([0-9]|[0-9][0-9])m')
|
||||||
new_data = u''
|
new_data = u''
|
||||||
new_len = 0
|
new_len = 0
|
||||||
|
|
||||||
# On laisse la mise en forme et on coupe les caratères affichés
|
# On laisse la mise en forme et on coupe les caratères affichés
|
||||||
while True :
|
while True :
|
||||||
s = regexp.search(data)
|
s = regexp.search(data)
|
||||||
|
@ -217,21 +217,21 @@ def tableau(data, titre=None, largeur=None, alignement=None, format=None):
|
||||||
data = data[1:]
|
data = data[1:]
|
||||||
if not data :
|
if not data :
|
||||||
return new_data + '*'
|
return new_data + '*'
|
||||||
|
|
||||||
elif l == largeur :
|
elif l == largeur :
|
||||||
return data
|
return data
|
||||||
|
|
||||||
elif alignement == 'g' :
|
elif alignement == 'g' :
|
||||||
return u' ' + data + u' '*(largeur-l-1)
|
return u' ' + data + u' '*(largeur-l-1)
|
||||||
|
|
||||||
elif alignement == 'd' :
|
elif alignement == 'd' :
|
||||||
return u' '*(largeur-l-1) + data + u' '
|
return u' '*(largeur-l-1) + data + u' '
|
||||||
|
|
||||||
else :
|
else :
|
||||||
return u' '*((largeur-l)/2) + data + u' '*((largeur-l+1)/2)
|
return u' '*((largeur-l)/2) + data + u' '*((largeur-l+1)/2)
|
||||||
|
|
||||||
data = [ [ aligne(ligne[i],alignement[i],largeur[i]) for i in range(nbcols) ] for ligne in data ]
|
data = [ [ aligne(ligne[i],alignement[i],largeur[i]) for i in range(nbcols) ] for ligne in data ]
|
||||||
|
|
||||||
# Le titre
|
# Le titre
|
||||||
##########
|
##########
|
||||||
if titre :
|
if titre :
|
||||||
|
@ -245,14 +245,14 @@ def tableau(data, titre=None, largeur=None, alignement=None, format=None):
|
||||||
# Les données
|
# Les données
|
||||||
#############
|
#############
|
||||||
chaine += u'\n'.join([sep_col + sep_col.join([ligne[i] for i in range(nbcols)]) + sep_col for ligne in data])
|
chaine += u'\n'.join([sep_col + sep_col.join([ligne[i] for i in range(nbcols)]) + sep_col for ligne in data])
|
||||||
|
|
||||||
return chaine
|
return chaine
|
||||||
|
|
||||||
def get_screen_size():
|
def get_screen_size():
|
||||||
"""Retourne la taille de l'écran.
|
"""Retourne la taille de l'écran.
|
||||||
|
|
||||||
Sous la forme d'un tuble (lignes, colonnes)"""
|
Sous la forme d'un tuble (lignes, colonnes)"""
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from termios import TIOCGWINSZ
|
from termios import TIOCGWINSZ
|
||||||
from struct import pack, unpack
|
from struct import pack, unpack
|
||||||
|
@ -291,18 +291,18 @@ class anim :
|
||||||
self.iter = iter
|
self.iter = iter
|
||||||
sys.stdout.write(self.txt)
|
sys.stdout.write(self.txt)
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
|
|
||||||
def reinit(self) :
|
def reinit(self) :
|
||||||
""" Efface la ligne courrante et
|
""" Efface la ligne courrante et
|
||||||
affiche : truc................. """
|
affiche : truc................. """
|
||||||
sys.stdout.write(el + self.txt)
|
sys.stdout.write(el + self.txt)
|
||||||
if self.iter :
|
if self.iter :
|
||||||
sys.stdout.write(' '*28)
|
sys.stdout.write(' '*28)
|
||||||
sys.stdout.write(el + self.txt)
|
sys.stdout.write(el + self.txt)
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
|
|
||||||
def cycle(self) :
|
def cycle(self) :
|
||||||
""" Efface la ligne courrante et
|
""" Efface la ligne courrante et
|
||||||
affiche : truc..................?
|
affiche : truc..................?
|
||||||
? caratère variant à chaque appel """
|
? caratère variant à chaque appel """
|
||||||
sys.stdout.write(el + self.txt)
|
sys.stdout.write(el + self.txt)
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
Dans tous les cas FAIRE LE SNMP A LA MAIN (script hpttols)
|
Dans tous les cas FAIRE LE SNMP A LA MAIN (script hpttols)
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import string, sys, os, commands, smtplib
|
import string, sys, os, commands, smtplib, tempfile
|
||||||
|
|
||||||
sys.path.append('/usr/scripts/gestion')
|
sys.path.append('/usr/scripts/gestion')
|
||||||
from hptools import hpswitch, sw_chbre
|
from hptools import hpswitch, sw_chbre
|
||||||
|
@ -31,7 +31,7 @@ class switch(gen_config) :
|
||||||
# Répertoire ou écire les fichiers de conf
|
# Répertoire ou écire les fichiers de conf
|
||||||
CONF_REP='/tmp/' # avec un / derrière
|
CONF_REP='/tmp/' # avec un / derrière
|
||||||
|
|
||||||
config = """; Configuration Editor; Created on release #H.08.86
|
config = """%(switch_config_header)s
|
||||||
|
|
||||||
hostname "%(switch)s"
|
hostname "%(switch)s"
|
||||||
;-------------------------------------------------------- Snmp
|
;-------------------------------------------------------- Snmp
|
||||||
|
@ -253,6 +253,14 @@ exit
|
||||||
# Batiment et numéro du switch
|
# Batiment et numéro du switch
|
||||||
bat = switch[3].lower()
|
bat = switch[3].lower()
|
||||||
sw_num = int(switch[5])
|
sw_num = int(switch[5])
|
||||||
|
old_config = NamedTemporaryFile()
|
||||||
|
res, msg = commands.getstatusoutput("scp bat%s-%i:cfg/startup-config %s" % (bat, sw_num, old_config.name))
|
||||||
|
|
||||||
|
if not res:
|
||||||
|
raise RuntimeError(u"Erreur : impossible de récupérer l'ancienne configuration du switch")
|
||||||
|
|
||||||
|
params['switch_config_header'] = old_config.readline()
|
||||||
|
old_config.close()
|
||||||
|
|
||||||
# Conf radius
|
# Conf radius
|
||||||
sys.path.append('/usr/scripts/gestion/secrets')
|
sys.path.append('/usr/scripts/gestion/secrets')
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue