From: <sv...@ze...> - 2007-12-27 21:55:09
|
Author: ecn Date: 2007-12-27 16:55:14 -0500 (Thu, 27 Dec 2007) New Revision: 8045 Modified: trunk/Products/ZenModel/Device.py Log: * fixes #1828: change the way ip is transformed into a device name: prefer ptr records over snmp names Modified: trunk/Products/ZenModel/Device.py =================================================================== --- trunk/Products/ZenModel/Device.py 2007-12-27 20:43:32 UTC (rev 8044) +++ trunk/Products/ZenModel/Device.py 2007-12-27 21:55:14 UTC (rev 8045) @@ -99,17 +99,26 @@ log.debug("device version = %s", zSnmpVer) log.debug("device name = %s", snmpname) if not deviceName: + # use the ptr record we already have try: - if snmpname and socket.gethostbyname(snmpname): - deviceName = snmpname + ptrName = '' + if ipobj and ipobj.ptrName: + ptrName = ipobj.ptrName + if ptrName and socket.gethostbyname(ptrName): + deviceName = ptrName except socket.error: pass + + # lookup the ptr record try: - if (not deviceName and ipobj and ipobj.ptrName - and socket.gethostbyname(ipobj.ptrName)): - deviceName = ipobj.ptrName + if not deviceName and ip: + deviceName = socket.gethostbyaddr(ip)[0] except socket.error: pass + + # use the snmpname if not deviceName and snmpname: deviceName = snmpname + + # give up: use ip if not deviceName: log.warn("unable to name device using ip '%s'", ip) deviceName = ip |