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.
|
||||
import gestion
|
||||
import gestion.annuaires_pg
|
||||
import gestion.hptools2 as hptools2
|
||||
|
||||
import lc_ldap.attributs as attributs
|
||||
|
||||
|
@ -34,15 +35,62 @@ def try_import(lib):
|
|||
|
||||
|
||||
def prise_etat(chbre):
|
||||
# Ici, on utilise le module gestion importé
|
||||
# Il faudrait remplacer cet import là par une
|
||||
# fonction prise_etat propre à lc_ldap, pour
|
||||
# ne plus en avoir besoin ci-après.
|
||||
gestion.whos = try_import(u"gestion.whos")
|
||||
gestion.whos.style = style
|
||||
if chbre=="????":
|
||||
return style("Chambre invalide", "violet")
|
||||
return gestion.whos.prise_etat(chbre)[0]
|
||||
"""Récupère l'état d'une prise"""
|
||||
bat = chbre[0].lower()
|
||||
chbre = chbre[1:]
|
||||
prise = gestion.annuaires_pg.chbre_prises(batiment=bat, chambre=chbre)
|
||||
|
||||
swid, port = int(prise[0]), int(prise[1:])
|
||||
switch_name = "bat%s-%s.adm.crans.org" % (bat, swid)
|
||||
|
||||
# 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):
|
||||
if isinstance(t, attributs.Attr):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue