[hptools] On contourne les macs indélicates (genre "ord(r):ord(a):ord(d):ord(i):ord(u):ord(s)")

Ignore-this: 41ab1e2013da859fbbe7965565191e77

darcs-hash:20091011024124-ffbb2-9d9b652c0b9aee1a68acc16c1b8dd0cd975b27b9.gz
This commit is contained in:
Nicolas Dandrimont 2009-10-11 04:41:24 +02:00
parent 36c523e640
commit b8392ae781

View file

@ -224,7 +224,15 @@ class hpswitch :
if self.__debug : self.__logDest.write("HP DEBUG : show_prise_mac(prise=%s)\n" % prise)
try:
data = self.walk('STATISTICS-MIB::hpSwitchPortFdbAddress.%d' % int(prise))
return map(lambda x:findall('".*"',":".join(x.lower().split(' ')))[0][1:-2],data.values())
macs = []
for value in data.itervalues():
mac = findall('".*"', value)[0][1:-1]
if ' ' in mac:
macs.append(":".join(mac.lower().split(" ")))
else:
macs.append(":".join("%02x" % ord(digit) for digit in mac))
print macs
return macs
except ValueError:
# Pas de MAC trouvée
return []
@ -243,7 +251,10 @@ class hpswitch :
# On cherche dans data la bonne adresse MAC
for (onesnmp, onemac) in data.iteritems():
if onemac[1:-2] == mac:
onemac = findall('".*"', onemac)[0][1:-1]
if ' ' not in onemac:
onemac = " ".join("%02x" % ord(digit) for digit in mac)
if onemac.startswith(mac):
return int(onesnmp.split(".")[1])
# On a rien trouvé