Beispiel #1
0
 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
Beispiel #2
0
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')
Beispiel #3
0
    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')
Beispiel #4
0
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 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 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
Beispiel #7
0
    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
Beispiel #8
0
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 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')
Beispiel #11
0
    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'))
Beispiel #14
0
    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
Beispiel #16
0
 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
Beispiel #17
0
    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
Beispiel #18
0
    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)
Beispiel #20
0
    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')
Beispiel #21
0
    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)
Beispiel #23
0
def addIndexToCatalog( zCatalog, indexId ):
    if indexId not in zCatalog.indexes():
        cat = zCatalog._catalog
        cat.addIndex( indexId, makeCaseInsensitiveFieldIndex( indexId ) )