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
|
# Le bâtiment virtuel dans lequel on place des chambres qui n'existent pas, pour faire
|
||||||
# des tests.
|
# des tests.
|
||||||
bat_virtuel = 'v'
|
bats_virtuels = ['v']
|
||||||
|
|
|
@ -25,7 +25,7 @@ import netsnmp
|
||||||
if '/usr/scripts' not in sys.path:
|
if '/usr/scripts' not in sys.path:
|
||||||
path.append('/usr/scripts')
|
path.append('/usr/scripts')
|
||||||
import gestion.secrets_new as secrets
|
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
|
from gestion.annuaires_pg import chbre_prises, all_switchs
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
@ -390,17 +390,27 @@ class hpswitch :
|
||||||
prise = prise.replace('-','')
|
prise = prise.replace('-','')
|
||||||
return self.get(oid + '.' + prise) == 'up'
|
return self.get(oid + '.' + prise) == 'up'
|
||||||
|
|
||||||
def is_enable(self,prise=0) :
|
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
|
""" 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 """
|
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)
|
if prise != 'all': prise = int(prise)
|
||||||
return self.__is('IF-MIB::ifAdminStatus',prise)
|
return self.__is('IF-MIB::ifAdminStatus',prise)
|
||||||
|
|
||||||
def is_up(self,prise=0) :
|
def is_up(self,prise=0) :
|
||||||
""" Retoune True ou False suivant si la prise est up
|
""" Retoune True ou False suivant si la prise est up
|
||||||
Si prise=all retourne le nombre de prises up sur le switch """
|
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)
|
if prise != 'all': prise = int(prise)
|
||||||
return self.__is('IF-MIB::ifOperStatus',prise)
|
return self.__is('IF-MIB::ifOperStatus', prise)
|
||||||
|
|
||||||
def nom(self,nom=None,prise=0) :
|
def nom(self,nom=None,prise=0) :
|
||||||
""" Retourne ou attribue le nom à la prise fournie """
|
""" Retourne ou attribue le nom à la prise fournie """
|
||||||
|
@ -439,13 +449,15 @@ class hpswitch :
|
||||||
|
|
||||||
def vlans(self, prise = None):
|
def vlans(self, prise = None):
|
||||||
"""Récupère les vlans activés sur la prise 'prise'"""
|
"""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:
|
if not prise:
|
||||||
prise = self.prise
|
prise = self.prise
|
||||||
prise = int(prise)
|
prise = int(prise)
|
||||||
oid_base = 'SNMPv2-SMI::enterprises.11.2.14.11.5.1.7.1.15.3.1.1'
|
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'
|
oid_format = oid_base + '.%(vlan)d.%(prise)d'
|
||||||
oids = self.walk(oid_base)
|
oids = self.walk(oid_base)
|
||||||
result = []
|
|
||||||
for vlan_name, vlan in vlans.iteritems():
|
for vlan_name, vlan in vlans.iteritems():
|
||||||
if oid_format % {'vlan': vlan, 'prise': prise} in oids:
|
if oid_format % {'vlan': vlan, 'prise': prise} in oids:
|
||||||
result.append(vlan_name)
|
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 is_actif, crans_ldap, AssociationCrans, hostname
|
||||||
from ldap_crans import MachineCrans, MachineWifi, BorneWifi
|
from ldap_crans import MachineCrans, MachineWifi, BorneWifi
|
||||||
from ldap_crans import Adherent
|
from ldap_crans import Adherent
|
||||||
|
from hptools import sw_chbre, ConversationError
|
||||||
|
import gestion.annuaires_pg as annuaires_pg
|
||||||
import gestion.config as config
|
import gestion.config as config
|
||||||
import ridtools
|
import ridtools
|
||||||
import user_tests
|
import user_tests
|
||||||
|
@ -613,12 +615,7 @@ def adher_details(adher) :
|
||||||
f += coul(u'Chambre invalide\n','violet')
|
f += coul(u'Chambre invalide\n','violet')
|
||||||
else :
|
else :
|
||||||
# Chambre + prise (d'après annuaire)
|
# Chambre + prise (d'après annuaire)
|
||||||
if adher.chbre()[0].lower() != config.bat_virtuel:
|
|
||||||
etat, vlans, cablage = prise_etat(adher.chbre())
|
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 += coul(u'Chambre : ','gras') + u"%s " % chbre
|
||||||
f += u'(%s)' % etat
|
f += u'(%s)' % etat
|
||||||
f += u'\n'
|
f += u'\n'
|
||||||
|
@ -1159,8 +1156,6 @@ def prise_etat(chbre) :
|
||||||
cablage = u''
|
cablage = u''
|
||||||
try:
|
try:
|
||||||
# On met aussi l'état
|
# On met aussi l'état
|
||||||
from hptools import sw_chbre, ConversationError
|
|
||||||
import annuaires_pg
|
|
||||||
prise = sw_chbre(chbre)
|
prise = sw_chbre(chbre)
|
||||||
vlans += ', '.join(prise.vlans())
|
vlans += ', '.join(prise.vlans())
|
||||||
if annuaires_pg.is_crans(chbre[0],chbre[1:]) :
|
if annuaires_pg.is_crans(chbre[0],chbre[1:]) :
|
||||||
|
@ -1201,12 +1196,14 @@ def prise_etat(chbre) :
|
||||||
f += u', '
|
f += u', '
|
||||||
f += u"%s" % macs.pop()
|
f += u"%s" % macs.pop()
|
||||||
count += 1
|
count += 1
|
||||||
elif not prise.is_enable() :
|
elif not prise.is_enable():
|
||||||
f+= u', ' + coul(u'prise désactivée','rouge')
|
if prise.is_fake():
|
||||||
|
f += u', ' + coul(u"Chambre virtuelle", "violet")
|
||||||
|
else:
|
||||||
|
f += u', ' + coul(u'prise désactivée','rouge')
|
||||||
else :
|
else :
|
||||||
f+= u', activée, lien non détecté'
|
f += u', activée, lien non détecté'
|
||||||
try:
|
try:
|
||||||
import annuaires_pg
|
|
||||||
extra_info = annuaires_pg.chbre_commentaire(chbre[0],chbre[1:]).decode('utf-8')
|
extra_info = annuaires_pg.chbre_commentaire(chbre[0],chbre[1:]).decode('utf-8')
|
||||||
if extra_info:
|
if extra_info:
|
||||||
f += u'\n' + ' '*10 + extra_info
|
f += u'\n' + ' '*10 + extra_info
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue