[gestion/hptools] Correction de bugs

* Plus besoin de faire de requête ldap
 * Correction de la récupération du nombre de prises

darcs-hash:20100211145443-bd074-6333f33e9efa98c59bbf34c5d6c8c18bfb290bdf.gz
This commit is contained in:
Antoine Durand-Gasselin 2010-02-11 15:54:43 +01:00
parent fcdf94565f
commit fce734a464

View file

@ -127,6 +127,7 @@ class snmp :
if version == '1' or version == '2c' : if version == '1' or version == '2c' :
self.options = "-v %s -c '%s' %s " % ( version, community, host ) self.options = "-v %s -c '%s' %s " % ( version, community, host )
elif version =='3' : elif version =='3' :
self.fetch_engineid()
self.options = "-v 3 -e %s -u %s -a %s -A '%s' -l authNoPriv" % ( self._engineid, username, authentication_protocol, authentication_pass ) self.options = "-v 3 -e %s -u %s -a %s -A '%s' -l authNoPriv" % ( self._engineid, username, authentication_protocol, authentication_pass )
if privacy_pass : if privacy_pass :
self.options += " -x DES -X '%s' -l authPriv" % privacy_pass self.options += " -x DES -X '%s' -l authPriv" % privacy_pass
@ -134,6 +135,13 @@ class snmp :
else : else :
raise ValueError('Version incorrecte') raise ValueError('Version incorrecte')
def get_mac(self):
s, r = getstatusoutput("arp -a %s | perl -nle '{print $& if /00(:[0-9a-f]{2}){5}/}'" % self.host)
return r
def fetch_engineid(self):
self._engineid = '0000000b000%s0' % self.get_mac().replace(':', '')
def __init_ldap(self): def __init_ldap(self):
try: try:
self._machine = cl.search("host=%(host)s" % {'host': self.host})["machineCrans"][0] self._machine = cl.search("host=%(host)s" % {'host': self.host})["machineCrans"][0]
@ -313,7 +321,7 @@ class hpswitch :
def nb_prises(self) : def nb_prises(self) :
""" Retourne le nombre de prises du switch """ """ Retourne le nombre de prises du switch """
if self.__debug : self.__logDest.write("HP DEBUG : nb_prises()\n") if self.__debug : self.__logDest.write("HP DEBUG : nb_prises()\n")
return int(findall(r'Switch 26([0-9]{2})', self.version())[0]) return int(self.get('SNMPv2-SMI::mib-2.17.1.2.0'))
def version(self) : def version(self) :
""" Retourne la version du firmware du switch """ """ Retourne la version du firmware du switch """