def afterSetUp(self): super(Testzenbatchdumper, self).afterSetUp() self.zdumper = BatchDeviceDumper(noopts=1) self.zdumper.options = FakeOptions() self.zdumper.options.regex = '.*' self.zdumper.options.prune = False self.zdumper.options.root = '/zport/dmd/Devices/TestZenBatchDumper' self.zloader = BatchDeviceLoader(noopts=1) self.zloader.options = FakeOptions() self.zloader.options.nomodel = True self.zloader.options.nocommit = False # Ensure that both commands get # a real database connection self.zdumper.dmd = self.zloader.dmd self.log = logging.getLogger("zen.BatchDeviceDumper") self.zdumper.log = self.log self.zloader.log = logging.getLogger("zen.BatchDeviceLoader") # Actually add the organizer we use in testing testRoot = self.zdumper.options.root.rsplit('/', 1)[1] self.zdumper.dmd.Devices.manage_addOrganizer(testRoot)
def exportDevices(self, deviceClass='/', options={}): dumper = BatchDeviceDumper(noopts=True) output = StringIO() # Set command-line options dumper.options.root = deviceClass[1:] # Hidden 'option' in BatchDeviceDump dumper.options.pruneLSGO = True self._setOptions(dumper, options) # Export out custom list of properties def isPropExportable(propdict): id = propdict['id'] if id == 'zDeviceTemplate': return True return propdict['islocal'] dumper.isPropExportable = isPropExportable # Don't import out all getter/setter pairs either dumper.ignoreSetters += ( 'setLastChange', 'setHWProductKey', 'setHWSerialNumber', 'setOSProductKey', 'setPriority', ) dumpedCount = dumper.listDeviceTree(output) output.seek(0) data = output.readlines() output.close() # Dump the results in sorted order to make file # comparisons easier. data = '\n'.join(sorted(data)) return data.lstrip('\n'), dumpedCount