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:
Pierre-Elliott Bécue 2015-03-02 20:59:59 +01:00
parent cb3f063dc6
commit 15e83e1844
3 changed files with 26 additions and 17 deletions

View file

@ -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,17 +390,27 @@ class hpswitch :
prise = prise.replace('-','')
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
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)
return self.__is('IF-MIB::ifOperStatus', prise)
def nom(self,nom=None,prise=0) :
""" Retourne ou attribue le nom à la prise fournie """
@ -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)