ZenDMD Tip - Bulk Device Removal
From Zenoss Wiki
This is the approved revision of this page, as well as being the most recent.
Below is the script to achieve bulk devices deletion on Zenoss : Thanks to Ryan Matt, Daniel Rich of Zenoss Community for contribution .
- Copy and paste the content in .py format . Make sure file named devicelist.txt is in same directory as this script . Script can be downloaded from https://gist.github.com/hackeys/6367951#file-bulkdevicedeletion-py
#!/usr/bin/env python# #import the stuff that zendmd needs and create the dmd context import Globalsfrom Products.ZenUtils.ZenScriptBase import ZenScriptBase from transaction import commit dmd = ZenScriptBase(connect=True, noopts=True).dmd # import the stuff that zep needs from Products.Zuul import getFacade, listFacades from zenoss.protocols.jsonformat import from_dict from zenoss.protocols.protobufs.zep_pb2 import EventSummary from Products.ZenEvents.events2.proxy import EventSummaryProxy # function to delete device def delDevice(host): zep = getFacade('zep') zep_host_filter = zep.createEventFilter(element_identifier=host) zep.closeEventSummaries(eventFilter=zep_host_filter) dev = dmd.Devices.findDeviceByIdExact(host) if dev: dev.deleteDevice() commit() # read list of devices from a file and delete them if they exist f = open('devicelist.txt') lines = f.read().splitlines() for l in lines: d = None d = dmd.Devices.findDevice(l) if d: print 'Deleting: %s (%s)' % (d.getDeviceName(), d.getManageIp()) delDevice(l) else: print 'Device %s does not exist.' % (l)f.close()