On fait en sorte que prise_etat gère mieux les prises virtuelles, pour que whos_lc arrête de planter.
This commit is contained in:
parent
cb3f063dc6
commit
15e83e1844
3 changed files with 26 additions and 17 deletions
|
@ -457,4 +457,4 @@ dhcp_servers = ['dhcp.adm.crans.org', 'isc.adm.crans.org']
|
|||
|
||||
# Le bâtiment virtuel dans lequel on place des chambres qui n'existent pas, pour faire
|
||||
# des tests.
|
||||
bat_virtuel = 'v'
|
||||
bats_virtuels = ['v']
|
||||
|
|
|
@ -25,7 +25,7 @@ import netsnmp
|
|||
if '/usr/scripts' not in sys.path:
|
||||
path.append('/usr/scripts')
|
||||
import gestion.secrets_new as secrets
|
||||
from gestion.config import vlans
|
||||
from gestion.config import vlans, bats_virtuels
|
||||
from gestion.annuaires_pg import chbre_prises, all_switchs
|
||||
|
||||
try:
|
||||
|
@ -390,15 +390,25 @@ class hpswitch :
|
|||
prise = prise.replace('-','')
|
||||
return self.get(oid + '.' + prise) == 'up'
|
||||
|
||||
def is_fake(self, prise=0):
|
||||
"""Retourne True ou False selon que le switch est virtuel."""
|
||||
if self.switch.split('-')[0].replace('bat', '') in bats_virtuels:
|
||||
return True
|
||||
return False
|
||||
|
||||
def is_enable(self,prise=0):
|
||||
""" Retoune True ou False suivant si la prise est activée ou non
|
||||
Si prise=all retourne le nombre de prises activées sur le switch """
|
||||
if self.switch.split('-')[0].replace('bat', '') in bats_virtuels:
|
||||
return False
|
||||
if prise != 'all': prise = int(prise)
|
||||
return self.__is('IF-MIB::ifAdminStatus',prise)
|
||||
|
||||
def is_up(self,prise=0) :
|
||||
""" Retoune True ou False suivant si la prise est up
|
||||
Si prise=all retourne le nombre de prises up sur le switch """
|
||||
if self.switch.split('-')[0].replace('bat', '') in bats_virtuels:
|
||||
return False
|
||||
if prise != 'all': prise = int(prise)
|
||||
return self.__is('IF-MIB::ifOperStatus', prise)
|
||||
|
||||
|
@ -439,13 +449,15 @@ class hpswitch :
|
|||
|
||||
def vlans(self, prise = None):
|
||||
"""Récupère les vlans activés sur la prise 'prise'"""
|
||||
result = []
|
||||
if self.switch.split('-')[0].replace('bat', '') in bats_virtuels:
|
||||
return result
|
||||
if not prise:
|
||||
prise = self.prise
|
||||
prise = int(prise)
|
||||
oid_base = 'SNMPv2-SMI::enterprises.11.2.14.11.5.1.7.1.15.3.1.1'
|
||||
oid_format = oid_base + '.%(vlan)d.%(prise)d'
|
||||
oids = self.walk(oid_base)
|
||||
result = []
|
||||
for vlan_name, vlan in vlans.iteritems():
|
||||
if oid_format % {'vlan': vlan, 'prise': prise} in oids:
|
||||
result.append(vlan_name)
|
||||
|
|
|
@ -53,6 +53,8 @@ from affich_tools import *
|
|||
from ldap_crans import is_actif, crans_ldap, AssociationCrans, hostname
|
||||
from ldap_crans import MachineCrans, MachineWifi, BorneWifi
|
||||
from ldap_crans import Adherent
|
||||
from hptools import sw_chbre, ConversationError
|
||||
import gestion.annuaires_pg as annuaires_pg
|
||||
import gestion.config as config
|
||||
import ridtools
|
||||
import user_tests
|
||||
|
@ -613,12 +615,7 @@ def adher_details(adher) :
|
|||
f += coul(u'Chambre invalide\n','violet')
|
||||
else :
|
||||
# Chambre + prise (d'après annuaire)
|
||||
if adher.chbre()[0].lower() != config.bat_virtuel:
|
||||
etat, vlans, cablage = prise_etat(adher.chbre())
|
||||
else:
|
||||
etat = coul(u"Chambre virtuelle", "violet")
|
||||
vlans = ""
|
||||
cablage = coul(u"Factice", "violet")
|
||||
f += coul(u'Chambre : ','gras') + u"%s " % chbre
|
||||
f += u'(%s)' % etat
|
||||
f += u'\n'
|
||||
|
@ -1159,8 +1156,6 @@ def prise_etat(chbre) :
|
|||
cablage = u''
|
||||
try:
|
||||
# On met aussi l'état
|
||||
from hptools import sw_chbre, ConversationError
|
||||
import annuaires_pg
|
||||
prise = sw_chbre(chbre)
|
||||
vlans += ', '.join(prise.vlans())
|
||||
if annuaires_pg.is_crans(chbre[0],chbre[1:]) :
|
||||
|
@ -1202,11 +1197,13 @@ def prise_etat(chbre) :
|
|||
f += u"%s" % macs.pop()
|
||||
count += 1
|
||||
elif not prise.is_enable():
|
||||
if prise.is_fake():
|
||||
f += u', ' + coul(u"Chambre virtuelle", "violet")
|
||||
else:
|
||||
f += u', ' + coul(u'prise désactivée','rouge')
|
||||
else :
|
||||
f += u', activée, lien non détecté'
|
||||
try:
|
||||
import annuaires_pg
|
||||
extra_info = annuaires_pg.chbre_commentaire(chbre[0],chbre[1:]).decode('utf-8')
|
||||
if extra_info:
|
||||
f += u'\n' + ' '*10 + extra_info
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue