[Checkins] SVN: Products.CMFDefault/trunk/Products/CMFDefault/ - add upgrade step for tool utility registration from older

Jens Vagelpohl jens at dataflake.org
Wed Dec 9 14:18:59 EST 2009


Log message for revision 106354:
  - add upgrade step for tool utility registration from older
    migration script in CMFCore
  

Changed:
  U   Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt
  U   Products.CMFDefault/trunk/Products/CMFDefault/upgrade/configure.zcml
  U   Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to21.py

-=-
Modified: Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt	2009-12-09 19:17:38 UTC (rev 106353)
+++ Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt	2009-12-09 19:18:59 UTC (rev 106354)
@@ -5,8 +5,8 @@
 ------------------------
 
 - Upgrade steps: Merged faulty utility registration fixup script
-  from Products.CMFCore for pre-2.1.0 instances into a GenericSetup
-  upgrade step
+  and tool utility registration from Products.CMFCore for 
+  pre-2.1.0 instances into a GenericSetup upgrade step
 
 - WorkflowTool/DiscussionItem: Create a set of GenericSetup 
   upgrade steps to instantiate the new single-state workflow 

Modified: Products.CMFDefault/trunk/Products/CMFDefault/upgrade/configure.zcml
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/upgrade/configure.zcml	2009-12-09 19:17:38 UTC (rev 106353)
+++ Products.CMFDefault/trunk/Products/CMFDefault/upgrade/configure.zcml	2009-12-09 19:18:59 UTC (rev 106354)
@@ -62,6 +62,12 @@
         checker=".to21.check_bad_utilities"
         />
 
+    <genericsetup:upgradeStep
+        title="Register tool utilities"
+        handler=".to21.handle_tool_utility_registrations"
+        checker=".to21.check_tool_utility_registrations"
+        />
+
   </genericsetup:upgradeSteps>
 
   <genericsetup:upgradeStep

Modified: Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to21.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to21.py	2009-12-09 19:17:38 UTC (rev 106353)
+++ Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to21.py	2009-12-09 19:18:59 UTC (rev 106354)
@@ -208,4 +208,49 @@
             sm.unregisterUtility(provided=iface)
             logger.info('Unregistered utility for %s' % dotted_path)
 
+_TOOL_UTILITIES = (
+    ('portal_uidgenerator', 'Products.CMFUid.interfaces.IUniqueIdGenerator'),
+    ('portal_uidannotation', 'Products.CMFUid.interfaces.IUniqueIdAnnotationManagement'),
+    ('portal_uidhandler', 'Products.CMFUid.interfaces.IUniqueIdHandler'),
+    ('portal_actionicons', 'Products.CMFActionIcons.interfaces.IActionIconsTool'),
+)
+    
+def check_tool_utility_registrations(tool):
+    """2.1.0-alpha to 2.1.0 upgrade step checker
+    """
+    portal = aq_parent(aq_inner(tool))
+    setSite(portal)
+    sm = getSiteManager(portal)
 
+    for tool_id, tool_interface in _TOOL_UTILITIES:
+        tool_obj = getToolByName(portal, tool_id, default=None)
+        try:
+            iface = resolve(tool_interface)
+        except ImportError:
+            continue
+
+        if tool_obj is not None and sm.queryUtility(iface) is None:
+            return True
+
+    return False
+             
+def handle_tool_utility_registrations(tool):
+    """2.1.0-alpha to 2.1.0 upgrade step handler
+    """
+    logger = logging.getLogger('GenericSetup.upgrade')
+    portal = aq_parent(aq_inner(tool))
+    setSite(portal)
+    sm = getSiteManager(portal)
+
+    for tool_id, tool_interface in _TOOL_UTILITIES:
+        tool_obj = getToolByName(portal, tool_id, default=None)
+        try:
+            iface = resolve(tool_interface)
+        except ImportError:
+            continue
+
+        if tool_obj is not None and sm.queryUtility(iface) is None:
+            sm.registerUtility(tool_obj, iface)
+            logger.info('Registered %s for interface %s' % (
+                                                tool_id, tool_interface))
+



More information about the checkins mailing list