X-Git-Url: https://scm.cri.minesparis.psl.eu/git/Plinn.git/blobdiff_plain/12d3a4e2539507b7740d48499fbb33c349cca11e..959d888c17d1403d2eeecc19bc4b5e2c8d1debf6:/_zctl/rebuild-catalog.py diff --git a/_zctl/rebuild-catalog.py b/_zctl/rebuild-catalog.py deleted file mode 100644 index 29a948b..0000000 --- a/_zctl/rebuild-catalog.py +++ /dev/null @@ -1,57 +0,0 @@ -from argparse import ArgumentParser -import os.path -from Acquisition import aq_base -from zope.site.hooks import setSite -from Products.CMFCore.CMFCatalogAware import CMFCatalogAware -import transaction - -count = 0 - -def checkContents(ob) : - global count - try : - print ob.absolute_url() - except Exception, e: - print >> errorLog, '%s/%s' % (ob.aq_parent.absolute_url(), ob.aq_base.id) - print >> errorLog, getattr(ob, 'portal_type', getattr(ob, 'meta_type', '')) - print >> errorLog, e - print >> errorLog - - if isinstance(aq_base(ob), CMFCatalogAware) : - assert ob._getCatalogTool() - try : - ctool.indexObject(ob) - count = count + 1 - if count % 1000 == 0 : - transaction.commit() - print count, 'commit.' - except Exception, e: - print >> errorLog, '%s/%s' % (ob.aq_parent.absolute_url(), ob.aq_base.id) - print >> errorLog, e - - if hasattr(aq_base(ob), 'objectItems') : - obs = ob.objectItems() - for k, v in obs : - checkContents(v) - - -parser = ArgumentParser(description="Rebuild entire catalog by walking contents tree.") -parser.add_argument('portal_path') -parser.add_argument('--error-log', help='Error log file. Default: ~/catalog-rebuild-error.log', - default='~/catalog-rebuild-error.log', required=False, dest='errorLogPath') - -args = parser.parse_args() -portal = app.unrestrictedTraverse(args.portal_path) -setSite(portal) -ctool = portal.portal_catalog -errorLogPath = os.path.expanduser(args.errorLogPath) -errorLog = open(errorLogPath, 'w') - -try : - checkContents(portal) - transaction.commit() - print count - print 'Done.' -finally : - errorLog.close() -