prise_etat autonome. Ainsi on ne dépend plus de ldap_crans.
This commit is contained in:
parent
514857a19c
commit
2711dd12d7
1 changed files with 57 additions and 9 deletions
|
@ -12,6 +12,7 @@ import gestion.config as config
|
||||||
# script continue à fonctionner.
|
# script continue à fonctionner.
|
||||||
import gestion
|
import gestion
|
||||||
import gestion.annuaires_pg
|
import gestion.annuaires_pg
|
||||||
|
import gestion.hptools2 as hptools2
|
||||||
|
|
||||||
import lc_ldap.attributs as attributs
|
import lc_ldap.attributs as attributs
|
||||||
|
|
||||||
|
@ -34,15 +35,62 @@ def try_import(lib):
|
||||||
|
|
||||||
|
|
||||||
def prise_etat(chbre):
|
def prise_etat(chbre):
|
||||||
# Ici, on utilise le module gestion importé
|
"""Récupère l'état d'une prise"""
|
||||||
# Il faudrait remplacer cet import là par une
|
bat = chbre[0].lower()
|
||||||
# fonction prise_etat propre à lc_ldap, pour
|
chbre = chbre[1:]
|
||||||
# ne plus en avoir besoin ci-après.
|
prise = gestion.annuaires_pg.chbre_prises(batiment=bat, chambre=chbre)
|
||||||
gestion.whos = try_import(u"gestion.whos")
|
|
||||||
gestion.whos.style = style
|
swid, port = int(prise[0]), int(prise[1:])
|
||||||
if chbre=="????":
|
switch_name = "bat%s-%s.adm.crans.org" % (bat, swid)
|
||||||
return style("Chambre invalide", "violet")
|
|
||||||
return gestion.whos.prise_etat(chbre)[0]
|
# Si le switch est virtuel, on évite de perdre du temps à query
|
||||||
|
# ledit switch qui a une forte proba d'être down.
|
||||||
|
if bat in config.bats_virtuels:
|
||||||
|
cablage = style(u"Câblée au Crans", "bleu")
|
||||||
|
lien = style(u"Prise %s%s virtuelle" % (bat, prise), "violet")
|
||||||
|
return u", ".join([lien, cablage])
|
||||||
|
|
||||||
|
switch = hptools2.HPSwitch(switch_name)
|
||||||
|
vlan_list = switch.get_vlans(port)
|
||||||
|
|
||||||
|
vlans = u" " * (13 + len(chbre))
|
||||||
|
vlans += u"Vlan%s : " % (u's' if len(vlan_list) > 1 else u"",) + style(u", ".join([unicode(vlan) for vlan in vlan_list]), "orange")
|
||||||
|
|
||||||
|
cablage = u" " * (13 + len(chbre))
|
||||||
|
|
||||||
|
if gestion.annuaires_pg.is_crans(bat, chbre):
|
||||||
|
cablage += style(u"Câblée au Crans", "bleu")
|
||||||
|
else:
|
||||||
|
cablage += style(u"Câblée au CROUS", "jaune")
|
||||||
|
|
||||||
|
if not gestion.annuaires_pg.is_connected(bat, chbre):
|
||||||
|
cablage += style(u" [à valider]", "rouge")
|
||||||
|
|
||||||
|
lien = u"Prise %s" % (switch.ports[port].name(),)
|
||||||
|
|
||||||
|
if not switch.is_enabled(port) == 'up':
|
||||||
|
lien += u", " + style(u'désactivée', 'rouge')
|
||||||
|
else:
|
||||||
|
lien += u", " + style(u'activée', 'cyan')
|
||||||
|
if not switch.is_up(port) == 'up':
|
||||||
|
lien += u", " + style(u'aucune machine détectée', 'jaune')
|
||||||
|
else:
|
||||||
|
lien += u", " + style(u'lien actif', 'vert')
|
||||||
|
macs = []
|
||||||
|
compteur = 0
|
||||||
|
for mac in switch.show_port_macs(port)[0]:
|
||||||
|
# Toutes les 3 macs, on met un retour à la ligne pour plus de
|
||||||
|
# clarté.
|
||||||
|
if compteur % 3 == 0 and compteur > 0:
|
||||||
|
mac = u'\n' + u' ' * (13 + len(chbre)) + u'MACs: %s' % (mac,)
|
||||||
|
macs.append(mac)
|
||||||
|
compteur += 1
|
||||||
|
lien += u"," + style(u'\n%sMACs: %s' % (u" " * (13 + len(chbre)), u",".join(macs)), 'violet')
|
||||||
|
extra_info = gestion.annuaires_pg.chbre_commentaire(bat, chbre).decode('utf-8')
|
||||||
|
if extra_info:
|
||||||
|
lien += u"\nNote : %s" % (extra_info,)
|
||||||
|
|
||||||
|
return u",\n".join([lien, vlans, cablage])
|
||||||
|
|
||||||
def timeformat(t, format):
|
def timeformat(t, format):
|
||||||
if isinstance(t, attributs.Attr):
|
if isinstance(t, attributs.Attr):
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue