Zenoss and DHCP
zendmd
dev=find('hp7410.skills-1st.co.uk')
print dev.id
print dev.title
print dev.manageIp
Python script that checks dns lookups against the id of a device and it's manageIp field.
#!/usr/bin/env python
# Author: Jane Curry
# Date: 10th July 2012
# Copyright: Skills 1st Ltd
# Description: Check dns resolution has not changed
# expects dev/id and dev/manageIp as input parameters
#
# Updates:
#
# Perform initial imports.
import os, sys, getopt
import logging
# Perform Zenoss specific imports.
import Globals
from Products.ZenUtils.ZenScriptBase import ZenScriptBase
from transaction import commit
if len(sys.argv) < 3:
sys.exit('Usage: %s dev/id dev/manageIp ' % sys.argv[0])
name=sys.argv[1]
#print 'name is' + name
ip=sys.argv[2].strip()
# dig +short simply returns one or more IP addresses that DNS resolves for the supplied name
nameres = os.popen('dig +short %s' % (name) )
if ip in (i.strip() for i in nameres.readlines() ):
print 'No DNS change - OK | statusvar=0'
sys.exit(0)
else:
print 'Change in DNS - WARNING | statusvar=1'
# Get first response again from dig
nameres = os.popen('dig +short %s' % (name) )
dnsip = nameres.readline().strip()
dmd = ZenScriptBase(connect=True).dmd
dev=dmd.Devices.findDevice(name)
dev.setManageIp(dnsip)
commit()
sys.exit(1)