Esempio n. 1
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')
Esempio n. 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('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')
Esempio n. 3
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
Esempio n. 4
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)
Esempio n. 5
0
 def cutover(self, dmd):  
     cat = getToolByName(dmd.Devices, 'deviceSearch')
     try:
         cat._catalog.addIndex('path', makeMultiPathIndex('path'))
     except CatalogError:
         # Index already exists
         pass
     try:
         cat.addColumn('path')
     except CatalogError:
         # Column exists
         pass
Esempio n. 6
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'))
Esempio n. 7
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 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)
Esempio n. 9
0
 def get_catalog(self, obj, meta_type):
     """
     @param obj:       A device component for which a type-specific catalog should get got
     @type obj:        DeviceComponent
     @param meta_type: The meta_type the catalog is being created for
     @type meta_type:  str
     @return:          The component type catalog
     @rtype:           ZCatalog
     """
     device = obj.device()
     try:
         catalog = device._getOb(self.catalog_name)
     except AttributeError:
         catalog = self.create_catalog(device)
         self.index_all_of_type(obj, meta_type)
     if 'path' not in catalog._catalog.indexes:
         catalog.addIndex('path', makeMultiPathIndex('path'))
         self.index_all_of_type(obj, meta_type)
     return catalog
Esempio n. 10
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')
Esempio n. 11
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 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')
Esempio n. 13
0
 def cutover(self, dmd):
     idx = dmd.Devices.deviceSearch._catalog.indexes['path']
     idx_parents = getattr(idx, '_index_parents', None)
     if idx_parents is None:
         dmd.Devices.deviceSearch.delIndex('path')
         dmd.Devices.deviceSearch._catalog.addIndex('path', 
                 makeMultiPathIndex('path'))
         # grab each device and manually reindex it
         log.info( 'Reindexing devices.  This may take a while ...' )
         for device in dmd.Devices.getSubDevices_recursive():
             dmd.Devices.deviceSearch.catalog_object(device, idxs=('path',))
             
     idx = dmd.searchRRDTemplates._catalog.indexes['getPhysicalPath']
     if not idx.__class__.__name__=='ExtendedPathIndex':
         templates = dmd.searchRRDTemplates()
         dmd.searchRRDTemplates.delIndex('getPhysicalPath')
         dmd.searchRRDTemplates._catalog.addIndex('getPhysicalPath', 
                 makePathIndex('getPhysicalPath'))
         for template in templates:
             dmd.searchRRDTemplates.catalog_object(template.getObject(), idxs=('getPhysicalPath',))