[Zope-Checkins] CVS: Zope/lib/python/Products/ZCatalog - ZCatalog.py:1.131

Chris Withers chris at simplistix.co.uk
Thu May 27 11:07:26 EDT 2004


Update of /cvs-repository/Zope/lib/python/Products/ZCatalog
In directory cvs.zope.org:/tmp/cvs-serv18150

Modified Files:
	ZCatalog.py 
Log Message:
- Removed unused imports
- refactored slightly
- logged when object cannot be resolved on re-indexing of an index
- made manage_reindexIndex more efficient.


=== Zope/lib/python/Products/ZCatalog/ZCatalog.py 1.130 => 1.131 ===
--- Zope/lib/python/Products/ZCatalog/ZCatalog.py:1.130	Fri Mar 19 08:25:34 2004
+++ Zope/lib/python/Products/ZCatalog/ZCatalog.py	Thu May 27 11:07:25 2004
@@ -35,9 +35,10 @@
      import PluggableIndexInterface
 from Products.PluginIndexes.TextIndex import Splitter
 import urllib, time, types
-import string
+import string, logging
 from IZCatalog import IZCatalog
 
+LOG = logging.getLogger('Zope.ZCatalog')
 
 manage_addZCatalogForm=DTMLFile('dtml/addZCatalog',globals())
 
@@ -446,17 +447,20 @@
 
 
     def reindexIndex(self, name, REQUEST):
-        paths = self._catalog.uids.keys()
-
-        for p in paths:
+        if isinstance(name, str):
+            name = (name,)
+        for p in self._catalog.uids.keys():
             obj = self.resolve_path(p)
             if not obj:
                 obj = self.resolve_url(p, REQUEST)
-            if obj is not None:
+            if obj is None:
+                LOG.error('reindexIndex could not resolve '
+                          'an object from the uid %r.' % (uid))
+            else:
                 # don't update metadata when only reindexing a single
                 # index via the UI
                 try:
-                    self.catalog_object(obj, p, idxs=[name],
+                    self.catalog_object(obj, p, idxs=name,
                                         update_metadata=0)
                 except TypeError:
                     # Fall back to Zope 2.6.2 interface. This is necessary for
@@ -467,7 +471,7 @@
                     warn('catalog_object interface of %s not up to date'
                          % self.__class__.__name__,
                          DeprecationWarning)
-                    self.catalog_object(obj, p, idxs=[name])
+                    self.catalog_object(obj, p, idxs=name)
 
     def manage_reindexIndex(self, ids=None, REQUEST=None, RESPONSE=None,
                             URL1=None):
@@ -477,11 +481,7 @@
                 message='No items were specified!',
                 action = "./manage_catalogIndexes",)
 
-        if isinstance(ids, types.StringType):
-            ids = (ids,)
-
-        for name in ids:
-            self.reindexIndex(name, REQUEST)
+        self.reindexIndex(ids, REQUEST)
 
         if REQUEST and RESPONSE:
             RESPONSE.redirect(




More information about the Zope-Checkins mailing list