[Erp5-report] r25458 - /erp5/trunk/products/ERP5Type/Core/Folder.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Thu Feb 5 13:47:17 CET 2009
Author: luke
Date: Thu Feb 5 13:47:04 2009
New Revision: 25458
URL: http://svn.erp5.org?rev=25458&view=rev
Log:
- disallow to do more than one migration, support concurrent case of migration invocation
Modified:
erp5/trunk/products/ERP5Type/Core/Folder.py
Modified: erp5/trunk/products/ERP5Type/Core/Folder.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Core/Folder.py?rev=25458&r1=25457&r2=25458&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Core/Folder.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/Core/Folder.py [utf8] Thu Feb 5 13:47:04 2009
@@ -78,6 +78,9 @@
from zLOG import LOG, PROBLEM, WARNING
import warnings
+# variable to inform about migration process
+migration_process_lock = "_migration_in_progress"
+
REINDEX_SPLIT_COUNT = 100 # if folder containes more than this, reindexing should be splitted.
from Products.ERP5Type.Message import translateString
@@ -441,6 +444,17 @@
Then it will migrate foder from btree to hbtree.
"""
BUNDLE_COUNT = 10
+
+ # if folder is already migrated or migration process is in progress
+ # do not do anything beside logging
+ if getattr(self, migration_process_lock, None) is not None \
+ or self.isHBTree():
+ LOG('migrateToHBTree', WARNING,
+ 'Folder %s already migrated'%(self.getPath(),))
+ return
+ # lock folder migration early
+ setattr(self, migration_process_lock, 1)
+
# we may want to change all objects ids before migrating to new folder type
# set new id generator here so that object created while migration
# got a right id
@@ -479,7 +493,9 @@
and migration
"""
if getattr(self, "_tree", None) is not None:
- delattr(self, "_tree")
+ delattr(self, "_tree")
+ if getattr(self, migration_process_lock, None) is not None:
+ delattr(self, migration_process_lock)
def _launchCopyObjectToHBTree(self, tag):
"""
More information about the Erp5-report
mailing list