ZenDMD Tip - Bulk Device Removal
From Zenoss Wiki
Revision as of 23:32, 6 January 2015 by Jan.garaj $7
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()