ZENDMD Tip - Delete Networks

From Zenoss Wiki
This is the approved revision of this page, as well as being the most recent.
Jump to: navigation, search

If you delete lots of devices, the networks discovered that were associated with them never get cleaned up. There's no way in the GUI to select lots of networks and delete them - you can only do them individually.

I wanted to delete all networks except 192.168.10.0. This script deletes ALL IP V4 networks except 192.168.10.0.

Create delete_networks with:

#!/usr/bin/env zendmd
# Delete all networks except 192.168.10.0
# Note that this also deletes all ipaddresses in those networks
# In practise, this means that the IP interface addresses get lost for any interface not in 192.168.10.0;
#   however remodeling devices will re-add those ipaddresses and will also add them and any related
#   networks back to the Networks hierarchy.
#
for netid in dmd.Networks.objectIds(spec="IpNetwork"):
    try:
        print "Deleting network %s" % netid
        if netid == '192.168.10.0':
            print 'Dont delete %s' % (netid)
            continue
        dmd.Networks._delObject(netid)
        commit()
    except Exception, e:
        print "%s: %s" % (netid, str(e))
 
dmd.Networks.reIndex()

Take a zenoss backup (zenbackup) before doing this!

To test, comment out the dmd.Networks._delObject(netid) line.

Make it executable and run it as the zenoss user.