def create_catalog(self, device): manage_addZCatalog(device, self.catalog_name, self.catalog_name) catalog = device._getOb(self.catalog_name) catalog.addIndex('path', makeMultiPathIndex('path')) for field in self.fields: field = str(field) # Add two indexes, one for natural sorting sort_field = field + '__sort' catalog.addIndex(field, makeCaseInsensitiveFieldIndex(field)) catalog.addIndex(sort_field, makeCaseInsensitiveFieldIndex(sort_field)) return catalog
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 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 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 cutover(self, dmd): manufacturers = dmd.getDmdRoot('Manufacturers') zcat = manufacturers.productSearch cat = zcat._catalog try: cat.addIndex('getManufacturerName', makeCaseInsensitiveFieldIndex('getManufacturerName')) cat.addIndex('meta_type', makeCaseInsensitiveFieldIndex('meta_type')) cat.addIndex('isOS', FieldIndex('isOS')) zcat.addColumn('id') log.info("Reindexing products. This may take some time...") manufacturers.reIndex() except CatalogError: pass
def createMaintenanceWindowCatalog(dmd): catalog_name = 'maintenanceWindowSearch' manage_addZCatalog(dmd, catalog_name, catalog_name) cat = getToolByName(dmd, catalog_name) id_index = makeCaseInsensitiveFieldIndex('getId') cat._catalog.addIndex('id', id_index) cat.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 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 createMaintenanceWindowCatalog(dmd): catalog_name = "maintenanceWindowSearch" manage_addZCatalog(dmd, catalog_name, catalog_name) cat = getToolByName(dmd, catalog_name) id_index = makeCaseInsensitiveFieldIndex("getId") cat._catalog.addIndex("id", id_index) cat.addColumn("id") cat._catalog.addIndex("getPhysicalPath", makePathIndex("getPhysicalPath")) cat.addColumn("getPhysicalPath")
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._catalog.addIndex('ipAddressAsInt', makeCaseSensitiveFieldIndex('ipAddressAsInt')) zcat._catalog.addIndex('path', makeMultiPathIndex('path'))
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 getCatalog(self): try: return self._getOb(CATALOG_NAME) except AttributeError: from Products.ZCatalog.ZCatalog import manage_addZCatalog # Make catalog for Devices manage_addZCatalog(self, CATALOG_NAME, CATALOG_NAME) zcat = self._getOb(CATALOG_NAME) cat = zcat._catalog for idxname in ['status', 'type', 'user']: cat.addIndex(idxname, makeCaseInsensitiveFieldIndex(idxname)) for idxname in ['scheduled', 'started', 'finished']: cat.addIndex(idxname, DateIndex(idxname)) return zcat
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): """ Make the catalog for device searching """ from Products.ZCatalog.ZCatalog import manage_addZCatalog # Make catalog for Devices manage_addZCatalog(self, self.default_catalog, self.default_catalog) zcat = self._getOb(self.default_catalog) cat = zcat._catalog for idxname in ['id', 'getDeviceIp','getDeviceClassPath','getProdState','titleOrId']: cat.addIndex(idxname, makeCaseInsensitiveFieldIndex(idxname)) cat.addIndex('getPhysicalPath', makePathIndex('getPhysicalPath')) cat.addIndex('path', makeMultiPathIndex('path')) zcat.addColumn('getPrimaryId') zcat.addColumn('id') zcat.addColumn('path')
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 addIndexToCatalog( zCatalog, indexId ): if indexId not in zCatalog.indexes(): cat = zCatalog._catalog cat.addIndex( indexId, makeCaseInsensitiveFieldIndex( indexId ) )