def initializeGlobalCatalog(catalog): catalog.addIndex('id', makeCaseSensitiveFieldIndex('id')) catalog.addIndex('uid', makeCaseSensitiveFieldIndex('uid')) catalog.addIndex('meta_type', makeCaseSensitiveFieldIndex('meta_type')) catalog.addIndex('name', makeCaseInsensitiveFieldIndex('name')) catalog.addIndex('ipAddress', makeCaseSensitiveFieldIndex('ipAddress')) catalog.addIndex('objectImplements', makeCaseSensitiveKeywordIndex('objectImplements')) catalog.addIndex('allowedRolesAndUsers', makeCaseSensitiveKeywordIndex('allowedRolesAndUsers')) catalog.addIndex('monitored', makeCaseSensitiveFieldIndex('monitored')) catalog.addIndex('path', makeMultiPathIndex('path')) catalog.addIndex('collectors', makeCaseSensitiveKeywordIndex('collectors')) catalog.addIndex('productKeys', makeCaseSensitiveKeywordIndex('productKeys')) catalog.addIndex('searchKeywords', makeCaseInsensitiveKeywordIndex('searchKeywords')) catalog.addIndex('macAddresses', makeCaseInsensitiveKeywordIndex('macAddresses')) catalog.addColumn('id') catalog.addColumn('uuid') catalog.addColumn('name') catalog.addColumn('meta_type') catalog.addColumn('monitored') catalog.addColumn('collectors') catalog.addColumn('zProperties') catalog.addColumn('searchIcon') catalog.addColumn('searchExcerpt')
def initializeGlobalCatalog(catalog): catalog.addIndex('id', makeCaseSensitiveFieldIndex('id')) catalog.addIndex('uid', makeCaseSensitiveFieldIndex('uid')) catalog.addIndex('meta_type', makeCaseSensitiveFieldIndex('meta_type')) catalog.addIndex('name', makeCaseInsensitiveFieldIndex('name')) catalog.addIndex('ipAddress', makeCaseSensitiveFieldIndex('ipAddress')) catalog.addIndex('objectImplements', makeCaseSensitiveKeywordIndex('objectImplements')) catalog.addIndex('allowedRolesAndUsers', makeCaseSensitiveKeywordIndex('allowedRolesAndUsers')) catalog.addIndex('productionState', makeCaseSensitiveFieldIndex('productionState')) catalog.addIndex('monitored', makeCaseSensitiveFieldIndex('monitored')) catalog.addIndex('path', makeMultiPathIndex('path')) catalog.addIndex('collectors', makeCaseSensitiveKeywordIndex('collectors')) catalog.addIndex('productKeys', makeCaseSensitiveKeywordIndex('productKeys')) catalog.addIndex('searchKeywords', makeCaseInsensitiveKeywordIndex('searchKeywords')) catalog.addIndex('macAddresses', makeCaseInsensitiveKeywordIndex('macAddresses')) catalog.addColumn('id') catalog.addColumn('uuid') catalog.addColumn('name') catalog.addColumn('meta_type') catalog.addColumn('monitored') catalog.addColumn('productionState') catalog.addColumn('collectors') catalog.addColumn('zProperties') catalog.addColumn('searchIcon') catalog.addColumn('searchExcerpt')
def createCatalog(self): """Create a catalog for mibs searching""" from Products.ZCatalog.ZCatalog import manage_addZCatalog # XXX update to use ManagableIndex manage_addZCatalog(self, self.default_catalog, self.default_catalog) zcat = self._getOb(self.default_catalog) cat = zcat._catalog cat.addIndex('oid', makeCaseInsensitiveKeywordIndex('oid')) cat.addIndex('id', makeCaseInsensitiveKeywordIndex('id')) cat.addIndex('summary', makeCaseInsensitiveKeywordIndex('summary')) zcat.addColumn('getPrimaryId') zcat.addColumn('id') zcat.addColumn('oid')
def createCatalog(self): """Create a catalog for rules searching""" from Products.ZCatalog.ZCatalog import manage_addZCatalog # XXX update to use ManagableIndex manage_addZCatalog(self, self.default_catalog, self.default_catalog) zcat = self._getOb(self.default_catalog) cat = zcat._catalog cat.addIndex('ruleSystems', makeCaseInsensitiveKeywordIndex('ruleSystems')) cat.addIndex('ruleGroups', makeCaseInsensitiveKeywordIndex('ruleGroups')) cat.addIndex('propertyType', makeCaseInsensitiveKeywordIndex('propertyType')) cat.addIndex('propertyName', makeCaseInsensitiveKeywordIndex('propertyName')) zcat.addColumn('toRemove') zcat.addColumn('enabled') zcat.addColumn('ruleModuleName')
def createCatalog(self): """Create a catalog for rules searching""" from Products.ZCatalog.ZCatalog import manage_addZCatalog # XXX update to use ManagableIndexcreateRulesetGroup manage_addZCatalog(self, self.default_catalog, self.default_catalog) zcat = self._getOb(self.default_catalog) cat = zcat._catalog cat.addIndex("ruleSystems", makeCaseInsensitiveKeywordIndex("ruleSystems")) cat.addIndex("ruleGroups", makeCaseInsensitiveKeywordIndex("ruleGroups")) cat.addIndex("ruleKey", makeCaseInsensitiveKeywordIndex("ruleKey")) cat.addIndex("ruleValue", makeCaseInsensitiveKeywordIndex("ruleValue")) zcat.addColumn("toRemove") zcat.addColumn("enabled") zcat.addColumn("ruleCurrentMatches") zcat.addColumn("rulePotentialMatches") zcat.addColumn("ruleRulesetName") zcat.addColumn("ruleEventClass")
def cutover(self, dmd): devices = dmd.getDmdRoot('Devices') zcat = devices.componentSearch cat = zcat._catalog try: cat.addIndex('getCollectors', makeCaseInsensitiveKeywordIndex('getCollectors')) cat.addIndex('getParentDeviceName', makeCaseInsensitiveFieldIndex('getParentDeviceName')) print "Reindexing. This may take some time..." zcat.reindexIndex('getCollectors', None) zcat.reindexIndex('getParentDeviceName', None) except CatalogError: pass
def cutover(self, dmd): devices = dmd.getDmdRoot('Devices') zcat = devices.deviceSearch # in version 3 to 4 (and 3.1 to 3.2) we changed how the path index was stored so # we will always need to reindex it idxs = ['path'] # field indexes for indexName in fieldIndexes: try: zcat._catalog.addIndex(indexName, makeCaseInsensitiveFieldIndex(indexName)) idxs.append(indexName) except CatalogError: pass # keyword indexes for indexName in keywordIndexes: try: zcat._catalog.addIndex(indexName, makeCaseInsensitiveKeywordIndex(indexName)) idxs.append(indexName) except CatalogError: pass # permissions try: zcat._catalog.addIndex('allowedRolesAndUsers', makeCaseSensitiveKeywordIndex('allowedRolesAndUsers')) idxs.append('allowedRolesAndUsers') except CatalogError: pass # json in the meta data try: zcat.addColumn('details') except CatalogError: pass # populate the indexes for brain in zcat(): try: brain.getObject().index_object(idxs=idxs, noips=True) except TypeError: # for upgrade the zenpacks may not have loaded the new code yet brain.getObject().index_object(noips=True)
def cutover(self, dmd): cat = dmd.zport.global_catalog try: cat.addIndex('macAddresses', makeCaseInsensitiveKeywordIndex('macAddresses')) if hasattr(cat, 'applyConfig'): cat.applyConfig() except CatalogError as e: if hasattr(dmd.zport, '_hasMacIndex'): return print "Reindexing. This may take some time..." starttotal = time.time() tstart = time.time() i = 0 CHUNK_SIZE = 200 if sys.stdout.isatty() else 25000 # Don't be chatty when logging to file fqdns = ('Products.ZenModel.Device.Device', 'Products.ZenModel.IpInterface.IpInterface', 'ZenPacks.zenoss.ZenVMware.VMwareGuest.VMwareGuest', 'ZenPacks.zenoss.vCloud.VM.VM',) results = ICatalogTool(dmd).search(fqdns[1:]) for brain in results.results: i += 1 try: obj = brain.getObject() except Exception as e: log.exception("Cannot find object at path %s", brain.getPath()) cat.uncatalog_object(brain.getPath()) continue obj.index_object() cat.catalog_object(obj) log.debug("Catalogued object %s", obj.absolute_url_path()) if i % CHUNK_SIZE == 0: self.log_progress("rate=%.2f/sec count=%d" % (CHUNK_SIZE/(time.time() - tstart), i)) tstart = time.time() results = ICatalogTool(dmd).search(fqdns) for brain in results.results: i += 1 try: obj = brain.getObject() except Exception as e: log.exception("Cannot find object at path %s", brain.getPath()) cat.uncatalog_object(brain.getPath()) continue cat.catalog_object(obj) log.debug("Catalogued object %s", obj.absolute_url_path()) if i % CHUNK_SIZE == 0: self.log_progress("rate=%.2f/sec count=%d" % (CHUNK_SIZE/(time.time() - tstart), i)) tstart = time.time() print log.info("Finished total time=%.2f rate=%.2f count=%d", time.time()-starttotal, i/(time.time()-starttotal), i) setattr(dmd.zport, '_hasMacIndex', True)
def cutover(self, dmd): cat = dmd.zport.global_catalog try: cat.addIndex('macAddresses', makeCaseInsensitiveKeywordIndex('macAddresses')) if hasattr(cat, 'applyConfig'): cat.applyConfig() except CatalogError as e: if hasattr(dmd.zport, '_hasMacIndex'): return print "Reindexing. This may take some time..." starttotal = time.time() tstart = time.time() i = 0 CHUNK_SIZE = 200 if sys.stdout.isatty( ) else 25000 # Don't be chatty when logging to file fqdns = ( 'Products.ZenModel.Device.Device', 'Products.ZenModel.IpInterface.IpInterface', 'ZenPacks.zenoss.ZenVMware.VMwareGuest.VMwareGuest', 'ZenPacks.zenoss.vCloud.VM.VM', ) results = ICatalogTool(dmd).search(fqdns[1:]) for brain in results.results: i += 1 try: obj = brain.getObject() except Exception as e: log.exception("Cannot find object at path %s", brain.getPath()) cat.uncatalog_object(brain.getPath()) continue obj.index_object() cat.catalog_object(obj) log.debug("Catalogued object %s", obj.absolute_url_path()) if i % CHUNK_SIZE == 0: self.log_progress("rate=%.2f/sec count=%d" % (CHUNK_SIZE / (time.time() - tstart), i)) tstart = time.time() results = ICatalogTool(dmd).search(fqdns) for brain in results.results: i += 1 try: obj = brain.getObject() except Exception as e: log.exception("Cannot find object at path %s", brain.getPath()) cat.uncatalog_object(brain.getPath()) continue cat.catalog_object(obj) log.debug("Catalogued object %s", obj.absolute_url_path()) if i % CHUNK_SIZE == 0: self.log_progress("rate=%.2f/sec count=%d" % (CHUNK_SIZE / (time.time() - tstart), i)) tstart = time.time() print log.info("Finished total time=%.2f rate=%.2f count=%d", time.time() - starttotal, i / (time.time() - starttotal), i) setattr(dmd.zport, '_hasMacIndex', True)