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 updateNetworkCatalog(self, zcat): idxs = [] # field indexes for indexName in fieldIndexes: try: zcat._catalog.addIndex( indexName, makeCaseInsensitiveFieldIndex(indexName)) idxs.append(indexName) except CatalogError: pass try: zcat._catalog.addIndex( 'ipAddressAsInt', makeCaseSensitiveFieldIndex('ipAddressAsInt')) idxs.append(indexName) except CatalogError: pass # permissions try: zcat._catalog.addIndex( 'allowedRolesAndUsers', makeCaseSensitiveKeywordIndex('allowedRolesAndUsers')) idxs.append('allowedRolesAndUsers') except CatalogError: pass # path index try: zcat._catalog.addIndex('path', makeMultiPathIndex('path')) idxs.append('path') except CatalogError: pass # json in the meta data try: zcat.addColumn('details') except CatalogError: pass i = 0 tstart = time.time() starttotal = time.time() for brain in zcat(): obj = brain.getObject() # we don't want to reindex the links on migrate so explicitly index # from the catalog obj.index_object(idxs=idxs) i += 1 if i % 200 == 0: log.info("rate=%.2f/sec count=%d", 200 / (time.time() - tstart), i) tstart = time.time() log.info("Finished total time=%.2f rate=%.2f count=%d", time.time() - starttotal, i / (time.time() - starttotal), i)
def updateNetworkCatalog(self, zcat): idxs = [] # field indexes for indexName in fieldIndexes: try: zcat._catalog.addIndex(indexName, makeCaseInsensitiveFieldIndex(indexName)) idxs.append(indexName) except CatalogError: pass try: zcat._catalog.addIndex('ipAddressAsInt', makeCaseSensitiveFieldIndex('ipAddressAsInt')) idxs.append(indexName) except CatalogError: pass # permissions try: zcat._catalog.addIndex('allowedRolesAndUsers', makeCaseSensitiveKeywordIndex('allowedRolesAndUsers')) idxs.append('allowedRolesAndUsers') except CatalogError: pass # path index try: zcat._catalog.addIndex('path', makeMultiPathIndex('path')) idxs.append('path') except CatalogError: pass # json in the meta data try: zcat.addColumn('details') except CatalogError: pass i = 0 tstart=time.time() starttotal = time.time() for brain in zcat(): obj = brain.getObject() # we don't want to reindex the links on migrate so explicitly index # from the catalog obj.index_object(idxs=idxs) i+=1 if i % 200 == 0: log.info("rate=%.2f/sec count=%d", 200/(time.time()-tstart), i) tstart=time.time() log.info("Finished total time=%.2f rate=%.2f count=%d", time.time()-starttotal, i/(time.time()-starttotal),i)
def createCatalog(self): """Create a catalog for EventClassRecord 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('productKeys', makeCaseSensitiveKeywordIndex('productKeys')) cat.addIndex('meta_type', makeCaseInsensitiveFieldIndex('meta_type')) cat.addIndex('getManufacturerName', makeCaseInsensitiveFieldIndex('getManufacturerName')) cat.addIndex('isOS', FieldIndex('isOS')) zcat.addColumn('getPrimaryId') zcat.addColumn('id')
def createCatalog(self): """make the catalog for device searching""" from Products.ZCatalog.ZCatalog import manage_addZCatalog # XXX convert to ManagableIndex manage_addZCatalog(self, self.default_catalog, self.default_catalog) zcat = self._getOb(self.default_catalog) cat = zcat._catalog cat.addIndex('id', makeCaseInsensitiveFieldIndex('id')) zcat.addColumn('getPrimaryId') # add new columns fieldIndexes = ['getInterfaceName', 'getDeviceName', 'getInterfaceDescription', 'getInterfaceMacAddress'] for indexName in fieldIndexes: zcat._catalog.addIndex(indexName, makeCaseInsensitiveFieldIndex(indexName)) zcat._catalog.addIndex('allowedRolesAndUsers', makeCaseSensitiveKeywordIndex('allowedRolesAndUsers')) zcat._catalog.addIndex('ipAddressAsInt', makeCaseSensitiveFieldIndex('ipAddressAsInt')) zcat._catalog.addIndex('path', makeMultiPathIndex('path')) zcat.addColumn('details')
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)