Beispiel #1
0
    def installCatalog(self):
        '''Create the catalog at the root of Zope if id does not exist.'''
        if 'catalog' not in self.app.objectIds():
            # Create the catalog
            from Products.ZCatalog.ZCatalog import manage_addZCatalog
            manage_addZCatalog(self.app, 'catalog', '')
            self.logger.info('Appy catalog created.')

        # Create a lexicon for ZCTextIndexes
        if 'lexicon' not in self.app.catalog.objectIds():
            from Products.ZCTextIndex.ZCTextIndex import manage_addLexicon
            manage_addLexicon(self.app.catalog, 'lexicon',
                              elements=self.lexiconInfos)

        # Create or update Appy-wide indexes and field-related indexes
        indexInfo = {'State': 'FieldIndex', 'UID': 'FieldIndex',
                     'Title': 'ZCTextIndex', 'SortableTitle': 'FieldIndex',
                     'SearchableText': 'ZCTextIndex', 'Creator': 'FieldIndex',
                     'Created': 'DateIndex', 'ClassName': 'FieldIndex',
                     'Allowed': 'KeywordIndex'}
        tool = self.app.config
        for className in self.config.attributes.iterkeys():
            wrapperClass = tool.getAppyClass(className, wrapper=True)
            for appyType in wrapperClass.__fields__:
                if not appyType.indexed or (appyType.name == 'title'): continue
                n = appyType.name
                indexName = 'get%s%s' % (n[0].upper(), n[1:])
                indexInfo[indexName] = appyType.getIndexType()
        self.installIndexes(indexInfo)
Beispiel #2
0
 def _addLinkCatalog(self, id, indices):
     manage_addZCatalog(self, id, id)
     zcat = self._getOb(id)
     cat = zcat._catalog
     for index, factory in indices:
         cat.addIndex(index, factory(index))
         zcat.addColumn(index)
    def afterSetUp(self):
        """ Adding an OAIServer, a ZCatalog and a ZCatalogHarvester

        """
        manage_addZCatalog(self.app, 'catalog', 'Catalog')
        manage_addOAIServer(self.app, 'oai', title=u'OAI Server')

        manage_addFolder(self.app, 'folder', 'Folder')
        self.app.folder.description = u'Some descr'

        manage_addFolder(self.app, 'folder1', 'Folder1')
        self.app.folder1.description = u'Some descr111'

        self.app.catalog.catalog_object(self.app.folder,
                                        self.app.folder.absolute_url(1))
        self.app.catalog.catalog_object(self.app.folder1,
                                        self.app.folder1.absolute_url(1))

        manage_addZCatalogHarvester(self.app.oai, 'harvester',
                                    title=u'Harvester',
                                    search_meta_types=Folder.meta_type)

        self.server = startZServer()
        self.server_url = 'http://%s:%s/' % (self.server[0],
                                             str(self.server[1]))
 def afterSetUp(self):
     self.setRoles(['Manager'])
     manage_addZCatalog(self.portal, 'zope_catalog', 'Zope Catalog')
     self.portal.zope_catalog.addIndex('getId', 'FieldIndex')
     self.tool = self.portal.archetype_tool
     self.pc = getToolByName(self.portal, 'portal_catalog')
     self.zc = getToolByName(self.portal, 'zope_catalog')
def get_neutron_core_catalog(dmd):
    device_class = dmd.getObjByPath('Devices/OpenStack/Infrastructure')
    catalog_name = 'neutron_core'

    try:
        catalog = getattr(device_class, catalog_name)
    except AttributeError:
        if not hasattr(device_class, catalog_name):
            log.info("Creating neutron core catalog '%s'", catalog_name)
            manage_addZCatalog(device_class, catalog_name, catalog_name)

        zcatalog = device_class._getOb(catalog_name)
        catalog = zcatalog._catalog

        try:
            log.info('Adding integration key index to %s', catalog_name)
            index = makeKeywordIndex('getNeutronIntegrationKeys')

            # Make the index explicitly case sensitive.
            index.PrenormalizeTerm = ''

            catalog.addIndex('getNeutronIntegrationKeys', index)

        except CatalogError:
            # Index already exists.
            pass

        else:
            from .NeutronIntegrationComponent import all_core_components

            for obj in all_core_components(dmd):
                catalog.catalog_object(obj, obj.getPrimaryId())

    return catalog
def get_cinder_implementation_catalog(dmd):
    device_class = dmd.getObjByPath('Devices/OpenStack/Infrastructure')
    catalog_name = 'cinder_implementation'

    try:
        catalog = getattr(device_class, catalog_name)
    except AttributeError:
        if not hasattr(device_class, catalog_name):
            log.info("Creating cinder integration catalog '%s'", catalog_name)
            manage_addZCatalog(device_class, catalog_name, catalog_name)

        zcatalog = device_class._getOb(catalog_name)
        catalog = zcatalog._catalog

        try:
            log.info('Adding integration key index to %s', catalog_name)
            index = makeKeywordIndex('getCinderIntegrationKeys')

            # Make the index explicitly case sensitive.
            index.PrenormalizeTerm = ''

            catalog.addIndex('getCinderIntegrationKeys', index)

        except CatalogError:
            # Index already exists.
            pass

        else:
            # index everything.
            for plugin_name, plugin in zope.component.getUtilitiesFor(ICinderImplementationPlugin):
                plugin.reindex_implementation_components(dmd)

    return catalog
Beispiel #7
0
 def createCatalog(self):
     """Create a catalog for EventClassRecord searching"""
     from Products.ZCatalog.ZCatalog import manage_addZCatalog
     manage_addZCatalog(self, self.default_catalog, self.default_catalog)
     zcat = self._getOb(self.default_catalog)
     zcat.addIndex('eventClassKey', 'FieldIndex')
     zcat.addColumn('getPrimaryId')
Beispiel #8
0
    def installCatalog(self):
        '''Create the catalog at the root of Zope if id does not exist.'''
        if 'catalog' not in self.app.objectIds():
            # Create the catalog
            from Products.ZCatalog.ZCatalog import manage_addZCatalog
            manage_addZCatalog(self.app, 'catalog', '')
            self.logger.info('Appy catalog created.')

        # Create lexicons for ZCTextIndexes
        catalog = self.app.catalog
        lexicons = catalog.objectIds()
        from Products.ZCTextIndex.ZCTextIndex import manage_addLexicon
        if 'xhtml_lexicon' not in lexicons:
            lex = appy.Object(group='XHTML indexer', name='XHTML indexer')
            manage_addLexicon(catalog, 'xhtml_lexicon', elements=[lex])
        if 'text_lexicon' not in lexicons:
            lex = appy.Object(group='Text indexer', name='Text indexer')
            manage_addLexicon(catalog, 'text_lexicon', elements=[lex])
        if 'list_lexicon' not in lexicons:
            lex = appy.Object(group='List indexer', name='List indexer')
            manage_addLexicon(catalog, 'list_lexicon', elements=[lex])

        # Delete the deprecated one if it exists
        if 'lexicon' in lexicons: catalog.manage_delObjects(['lexicon'])

        # Create or update Appy-wide indexes and field-related indexes
        indexInfo = defaultIndexes.copy()
        tool = self.app.config
        for className in self.config.attributes.iterkeys():
            wrapperClass = tool.getAppyClass(className, wrapper=True)
            indexInfo.update(wrapperClass.getIndexes(includeDefaults=False))
        updateIndexes(self, indexInfo)
def manage_addFactsheetFolder(self, title, administrator_email, REQUEST=None):
    "Method for adding a Factsheet container"
    if not title:
        raise ValueError('Name of Folder is mandatory!')
    if not administrator_email:
        raise ValueError('The administrative email is mandatory!')
    if not email_expr.match(administrator_email):
        raise ValueError('Please enter a valid email address!')
    id = slugify(title)
    newFactsheetFolder = FactsheetFolder(id, title, administrator_email)
    self._setObject(id, newFactsheetFolder)
    folder = self._getOb(id)
    manage_addZCatalog(folder, id='catalogue', title='Models catalogue')
    catalogue = folder._getOb('catalogue')
    loadCatalogueMetadata(catalogue)

    #Check for and add a MailHost object
    #ob = getattr(folder, MAILHOST, None)
    #if not ob:
        #manage_addMailHost(self, id=MAILHOST, title=MAILHOST, smtp_host='localhost', smtp_port=25)

    # Alternative way to create a TinyMCE object and to set the configuration
    #manage_addZTinyMCE(folder, id='TinyMCE')
    #TinyMCE = folder._getOb('TinyMCE')
    #conf_file=getattr(TinyMCE, 'advanced.conf')
    #conf_file.manage_saveConfiguration(ZTinyMCE_CONFIGURATION, 'Example configuration')

    return self.manage_main(self, REQUEST)
    def createCatalog(self):
        """Create a catalog for ServiceClass searching"""
        from Products.ZCatalog.ZCatalog import manage_addZCatalog

        manage_addZCatalog(self, self.default_catalog, self.default_catalog)
        zcat = self._getOb(self.default_catalog)
        zcat.addIndex("serviceKeys", "KeywordIndex")
        zcat.addColumn("getPrimaryId")
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 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 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")
Beispiel #14
0
def configure_catalog(container):
    if container._getOb(CATALOG_ID, None) is None:
        manage_addZCatalog(container, CATALOG_ID, title='Naaya Admin Catalog')
        LOG('NaayaAdminTool', INFO, '%s created' % (CATALOG_ID,))
    catalog = container._getOb(CATALOG_ID)

    if 'meta_type' not in catalog.indexes():
        catalog.addIndex(name='meta_type', type='FieldIndex')
        LOG('NaayaAdminTool', INFO, 'cataloging all Naaya sites')
        for site in findNySites(container):
            catalog.catalog_object(site)
        LOG('NaayaAdminTool', INFO, 'finished cataloging all Naaya sites')
Beispiel #15
0
    def create_catalog(context, name, indexes, classname):
        """Return catalog. Create it first if necessary."""
        zcatalog = getattr(context, name, None)
        if not zcatalog:
            from Products.ZCatalog.ZCatalog import manage_addZCatalog
            manage_addZCatalog(context, name, name)
            zcatalog = context._getOb(name)

        if CatalogBase.create_catalog_indexes(zcatalog, indexes):
            CatalogBase.reindex_catalog(context, zcatalog, classname)

        return zcatalog
Beispiel #16
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 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')
Beispiel #18
0
    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')
Beispiel #19
0
def _add_indexes(self):
    app = self.restrictedTraverse('/')

    if not hasattr(app, 'Catalog'):
        manage_addZCatalog(app, 'Catalog', 'Catalog')

    if 'meta_type' not in app.Catalog.indexes():
        app.Catalog.addIndex('meta_type', 'FieldIndex', 'meta_type')

    if 'published' not in app.Catalog.indexes():
        app.Catalog.addIndex('published', 'FieldIndex', 'published')

    if 'release_date' not in app.Catalog.indexes():
        app.Catalog.addIndex('release_date', 'FieldIndex', 'release_date')
Beispiel #20
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 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):
        """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 CreateZenPackPersistenceCatalog(dmd):
    '''
    Create the zenPackPersistence catalog if it does not exist.
    Return the catalog
    '''
    from Products.ZCatalog.ZCatalog import manage_addZCatalog
    from Products.ZenUtils.Search import makeCaseSensitiveFieldIndex
    zcat = getattr(dmd, ZENPACK_PERSISTENCE_CATALOG, None)
    if zcat is None:
        manage_addZCatalog(dmd, ZENPACK_PERSISTENCE_CATALOG,
                                ZENPACK_PERSISTENCE_CATALOG)
        zcat = dmd._getOb(ZENPACK_PERSISTENCE_CATALOG)
        cat = zcat._catalog
        cat.addIndex('getZenPackName',makeCaseSensitiveFieldIndex('getZenPackName'))
        cat.addColumn('id')
        cat.addColumn('getPrimaryId')
    return zcat
Beispiel #24
0
    def _create_catalog(cls, dmd, name):
        from Products.ZCatalog.Catalog import CatalogError
        from Products.ZCatalog.ZCatalog import manage_addZCatalog

        from Products.Zuul.interfaces import ICatalogTool

        spec = cls._catalog_spec(name)
        if not spec:
            return

        deviceclass = dmd.Devices.createOrganizer(spec['deviceclass'])

        if not hasattr(deviceclass, name):
            manage_addZCatalog(deviceclass, name, name)

        zcatalog = deviceclass._getOb(name)
        catalog = zcatalog._catalog

        for propname, propdata in spec['indexes'].items():
            index_type = propdata.get('type')
            if not index_type:
                LOG.error("%s index has no type", propname)
                return

            index_factory = {
                'field': makeFieldIndex,
                'keyword': makeKeywordIndex,
            }.get(index_type.lower())

            if not index_factory:
                LOG.error("%s is not a valid index type", index_type)
                return

            try:
                catalog.addIndex(propname, index_factory(propname))
            except CatalogError:
                # Index already exists.
                pass
            else:
                fqcn = '.'.join((cls.__module__, cls.__name__))
                results = ICatalogTool(dmd.primaryAq()).search(fqcn)
                for brain in results:
                    brain.getObject().index_object()

        return zcatalog
    def _create_catalog(cls, dmd, name):
        from Products.ZCatalog.Catalog import CatalogError
        from Products.ZCatalog.ZCatalog import manage_addZCatalog

        from Products.Zuul.interfaces import ICatalogTool

        spec = cls._catalog_spec(name)
        if not spec:
            return

        deviceclass = dmd.Devices.createOrganizer(spec['deviceclass'])

        if not hasattr(deviceclass, name):
            manage_addZCatalog(deviceclass, name, name)

        zcatalog = deviceclass._getOb(name)
        catalog = zcatalog._catalog

        for propname, propdata in spec['indexes'].items():
            index_type = propdata.get('type')
            if not index_type:
                LOG.error("%s index has no type", propname)
                return

            index_factory = {
                'field': makeFieldIndex,
                'keyword': makeKeywordIndex,
                }.get(index_type.lower())

            if not index_factory:
                LOG.error("%s is not a valid index type", index_type)
                return

            try:
                catalog.addIndex(propname, index_factory(propname))
            except CatalogError:
                # Index already exists.
                pass
            else:
                fqcn = '.'.join((cls.__module__, cls.__name__))
                results = ICatalogTool(dmd.primaryAq()).search(fqcn)
                for brain in results:
                    brain.getObject().index_object()

        return zcatalog
def CreateZenPackPersistenceCatalog(dmd):
    '''
    Create the zenPackPersistence catalog if it does not exist.
    Return the catalog
    '''
    from Products.ZCatalog.ZCatalog import manage_addZCatalog
    from Products.ZenUtils.Search import makeCaseSensitiveFieldIndex
    zcat = getattr(dmd, ZENPACK_PERSISTENCE_CATALOG, None)
    if zcat is None:
        manage_addZCatalog(dmd, ZENPACK_PERSISTENCE_CATALOG,
                           ZENPACK_PERSISTENCE_CATALOG)
        zcat = dmd._getOb(ZENPACK_PERSISTENCE_CATALOG)
        cat = zcat._catalog
        cat.addIndex('getZenPackName',
                     makeCaseSensitiveFieldIndex('getZenPackName'))
        cat.addColumn('id')
        cat.addColumn('getPrimaryId')
    return zcat
 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")
Beispiel #29
0
def CreateRRDTemplatesCatalog(dmd, rebuild=False):
    """
    Create the searchRRDTemplates catalog if it does not already exist.
    Return the catalog.
    """
    from Products.ZCatalog.ZCatalog import manage_addZCatalog
    from Products.ZenUtils.Search import makeCaseSensitiveFieldIndex, \
                                            makePathIndex
    zcat = getattr(dmd, RRDTEMPLATE_CATALOG, None)
    if zcat and rebuild:
        dmd._delObject(RRDTEMPLATE_CATALOG)
        zcat = None
    if zcat is None:
        manage_addZCatalog(dmd, RRDTEMPLATE_CATALOG, RRDTEMPLATE_CATALOG)
        zcat = dmd._getOb(RRDTEMPLATE_CATALOG)
        cat = zcat._catalog
        cat.addIndex('id', makeCaseSensitiveFieldIndex('id'))
        cat.addIndex('getPhysicalPath', makePathIndex('getPhysicalPath'))
    return zcat
Beispiel #30
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 #31
0
    def initialize(self):
        """ Adding a catalog with needed indexes and other stuff """
        catalog_id = DEFAULTS["catalog"]
        manage_addZCatalog(self, catalog_id, "Default catalog")
        catalog_ob = self._getOb(catalog_id)

        # Add Lexicon
        elem = []
        wordSplitter = Empty()
        wordSplitter.group = "Locale Aware Word Splitter"
        wordSplitter.name = "Locale Aware Word Splitter"

        caseNormalizer = Empty()
        caseNormalizer.group = "Case Normalizer"
        caseNormalizer.name = "Case Normalizer"

        stopWords = Empty()
        stopWords.group = "Stop Words"
        stopWords.name = "Remove listed and single char words"

        accentRemover = Empty()
        accentRemover.group = "Accent Normalizer"
        accentRemover.name = "Accent Normalizer"

        elem.append(wordSplitter)
        elem.append(caseNormalizer)
        elem.append(stopWords)
        elem.append(accentRemover)

        try:
            catalog_ob.manage_addProduct["ZCTextIndex"].manage_addLexicon("Lexicon", "Default Lexicon", elem)
        except:
            pass

        self.add_indexes(catalog_ob)
        self.add_metadata(catalog_ob)

        # Add Token folder
        manage_addFolder(self, DEFAULTS["tokens_folder"], "Token storage")
        # Add Namespace folder
        manage_addFolder(self, DEFAULTS["namespaces_folder"], "Namespace storage")
        # Add Dublic Core OAINamespace
        manage_addOAINamespace(self._getOb(DEFAULTS["namespaces_folder"]))
Beispiel #32
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 CreateRRDTemplatesCatalog(dmd, rebuild=False):
    """
    Create the searchRRDTemplates catalog if it does not already exist.
    Return the catalog.
    """
    from Products.ZCatalog.ZCatalog import manage_addZCatalog
    from Products.ZenUtils.Search import makeCaseSensitiveFieldIndex, \
                                            makePathIndex
    zcat = getattr(dmd, RRDTEMPLATE_CATALOG, None)
    if zcat and rebuild:
        dmd._delObject(RRDTEMPLATE_CATALOG)
        zcat = None
    if zcat is None:
        manage_addZCatalog(dmd, RRDTEMPLATE_CATALOG, RRDTEMPLATE_CATALOG)
        zcat = dmd._getOb(RRDTEMPLATE_CATALOG)
        cat = zcat._catalog
        cat.addIndex('id', makeCaseSensitiveFieldIndex('id'))
        cat.addIndex('getPhysicalPath', makePathIndex('getPhysicalPath'))
    return zcat
Beispiel #34
0
def manage_addNyObservatory(parent, REQUEST=None):
    """ """
    id='observatory'
    ob = NyObservatory(id)
    ob.title = 'Naaya Observatory'

    manage_addZCatalog(ob, 'catalog', 'Naaya Observatory Catalog')
    manage_addFieldIndex(ob.catalog, 'type')
    manage_addFieldIndex(ob.catalog, 'latitude')
    manage_addFieldIndex(ob.catalog, 'longitude')
    manage_addFieldIndex(ob.catalog, 'rating')
    manage_addFieldIndex(ob.catalog, 'approved_comment')
    manage_addDateIndex(ob.catalog, 'date')
    manage_addFieldIndex(ob.catalog, 'country')
    manage_addFieldIndex(ob.catalog, 'author')
    manage_addFieldIndex(ob.catalog, 'session_key')

    parent._setObject(id, ob)
    if REQUEST:
        return parent.manage_main(parent, REQUEST, update_menu=1)
    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 #36
0
    def installCatalog(self):
        '''Create the catalog at the root of Zope if id does not exist.'''
        if 'catalog' not in self.app.objectIds():
            # Create the catalog
            from Products.ZCatalog.ZCatalog import manage_addZCatalog
            manage_addZCatalog(self.app, 'catalog', '')
            self.logger.info('Appy catalog created.')

        # Create lexicons for ZCTextIndexes
        catalog = self.app.catalog
        lexicons = catalog.objectIds()
        from Products.ZCTextIndex.ZCTextIndex import manage_addLexicon
        if 'xhtml_lexicon' not in lexicons:
            lex = appy.Object(group='XHTML indexer', name='XHTML indexer')
            manage_addLexicon(catalog, 'xhtml_lexicon', elements=[lex])
        if 'text_lexicon' not in lexicons:
            lex = appy.Object(group='Text indexer', name='Text indexer')
            manage_addLexicon(catalog, 'text_lexicon', elements=[lex])
        if 'list_lexicon' not in lexicons:
            lex = appy.Object(group='List indexer', name='List indexer')
            manage_addLexicon(catalog, 'list_lexicon', elements=[lex])

        # Delete the deprecated one if it exists
        if 'lexicon' in lexicons: catalog.manage_delObjects(['lexicon'])

        # Create or update Appy-wide indexes and field-related indexes
        indexInfo = defaultIndexes.copy()
        tool = self.app.config
        for className in self.config.attributes.iterkeys():
            wrapperClass = tool.getAppyClass(className, wrapper=True)
            indexInfo.update(wrapperClass.getIndexes(includeDefaults=False))
        updateIndexes(self, indexInfo)
        # Re-index index "SearchableText", wrongly defined for Appy < 0.8.3.
        stIndex = catalog.Indexes['SearchableText']
        if stIndex.indexSize() == 0:
            self.logger.info('reindexing SearchableText...')
            catalog.reindexIndex('SearchableText', self.app.REQUEST)
            self.logger.info('done.')
 def afterSetUp(self):
     manage_addZCatalog(self.app, 'catalog', 'Catalog')