diff --git a/gestion/hptools.py b/gestion/hptools.py index b09e7f99..7c8e8c1c 100755 --- a/gestion/hptools.py +++ b/gestion/hptools.py @@ -182,20 +182,25 @@ class snmp : """ return self.__exec('snmpset -O vq %s %s %s %s' % (self.options, oid, typ, val ) ) - def walk(self,base_oid, bin_comp=False) : + def walk(self,base_oid, bin_comp=False, output='x'): """ Retourne le résultat de snmpwalk le retour est un dictionnaire { oid : valeur } """ if bin_comp: return snmp.bin_walk(self, base_oid) - lignes = self.__exec('snmpwalk -Ox %s %s' % (self.options, base_oid ) ).split('\n') + if output not in list('abeEfnqQsStTuUvxX'): + output = 'q' + lignes = self.__exec('snmpwalk -O%s %s %s' % (output, self.options, base_oid ) ).split('\n') result = {} for ligne in lignes: try: oid, valeur = ligne.split('Hex-STRING: ') - result[oid] = valeur - except: - pass + except ValueError: + try: + oid, valeur = ligne.split(' ', 1) + except ValueError: + continue + result[oid] = valeur return result def bin_walk(self, base_oid):