diff --git a/gestion/hptools.py b/gestion/hptools.py index cf4692a5..d23a8daa 100644 --- a/gestion/hptools.py +++ b/gestion/hptools.py @@ -262,6 +262,27 @@ class hpswitch : # Pas de MAC trouvée return [] + def where_is_mac(self, mac) : + """Retrouve la prise correspondant à une adresse MAC donnée""" + if self.__debug : self.__logDest.write("HP DEBUG : where_is_mac(mac=%s)\n" % mac) + # On va transformer l'adresse MAC cherchée pour la mettre au format 0A 0A 0A 0A 0A 0A + mac = mac.upper() + mac = filter(lambda x: x in "0123456789ABCDEF", mac) # 0A0A0A0A0A0A + mac = "%s %s %s %s %s %s" % (mac[0:2], mac[2:4], mac[4:6], + mac[6:8], mac[8:10], mac[10:12]) + + # On interroge le switch + data = self.walk('SNMPv2-SMI::enterprises.11.2.14.11.5.1.9.4.2.1.2'); + + # On cherche dans data la bonne adresse MAC + for (onesnmp, onemac) in data.iteritems(): + if onemac[1:-2] == mac: + return int(onesnmp.split(".")[12]) + + # On a rien trouvé + return None + + def set_prise_mac(self,prise='',mac='') : """ Défini les adresses mac autorisées sur une prise. @@ -390,7 +411,7 @@ class hpswitch : elif mode[0] == 1000 : if code == 8 : code += 1 elif code == 2 : raise ValueError('Mode invelide %s' % mode) - else code += 1 + else: code += 1 self.set('CONFIG-MIB::hpSwitchPortFastEtherMode.%s' % prise,'i',code)