[Checkins] SVN: Products.CMFDefault/branches/2.2/Products/CMFDefault/upgrade/ - merged several upgrade steps for the root site manager into one step

Yvo Schubbe y.2010 at wcm-solutions.de
Fri Apr 23 12:00:43 EDT 2010


Log message for revision 111305:
  - merged several upgrade steps for the root site manager into one step
  - added descriptions for the upgrade steps

Changed:
  U   Products.CMFDefault/branches/2.2/Products/CMFDefault/upgrade/configure.zcml
  U   Products.CMFDefault/branches/2.2/Products/CMFDefault/upgrade/to21.py

-=-
Modified: Products.CMFDefault/branches/2.2/Products/CMFDefault/upgrade/configure.zcml
===================================================================
--- Products.CMFDefault/branches/2.2/Products/CMFDefault/upgrade/configure.zcml	2010-04-23 16:00:23 UTC (rev 111304)
+++ Products.CMFDefault/branches/2.2/Products/CMFDefault/upgrade/configure.zcml	2010-04-23 16:00:43 UTC (rev 111305)
@@ -39,53 +39,42 @@
       sortkey="3">
 
     <genericsetup:upgradeStep
-        title="Add root site manager"
-        handler=".to21.add_root_site_manager"
+        title="Upgrade root site manager"
+        description="Add site manager if missing. Modify LookupClass and
+                     utility registrations if necessary."
+        handler=".to21.upgrade_root_site_manager"
         checker=".to21.check_root_site_manager"
         />
 
     <genericsetup:upgradeStep
-        title="Upgrade root lookup class"
-        handler=".to21.upgrade_root_lookup_class"
-        checker=".to21.check_root_lookup_class"
-        />
-
-    <genericsetup:upgradeStep
         title="Upgrade root properties"
+        description="Add 'email_charset' property if missing."
         handler=".to21.upgrade_root_properties"
         checker=".to21.check_root_properties"
         />
 
     <genericsetup:upgradeStep
         title="Upgrade type properties"
+        description="Replace usage of old constructor methods by IFactory
+                     utilities."
         handler=".to21.upgrade_type_properties"
         checker=".to21.check_type_properties"
         />
 
     <genericsetup:upgradeStep
         title="Upgrade actions tool"
+        description="Add 'interfaces' action if missing."
         handler=".to21.upgrade_actions_tool"
         checker=".to21.check_actions_tool"
         />
 
     <genericsetup:upgradeStep
         title="Upgrade skins tool"
+        description="Replace directory keys of DirectoryViews."
         handler=".to21.upgrade_skins_tool"
         checker=".to21.check_skins_tool"
         />
 
-    <genericsetup:upgradeStep
-        title="Unregister bad utility registrations"
-        handler=".to21.unregister_bad_utilities"
-        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
@@ -105,66 +94,78 @@
 
     <genericsetup:upgradeStep
         title="Upgrade setup tool"
+        description="Remove obsolete local step registrations."
         handler=".to22.upgrade_setup_tool"
         checker=".to22.check_setup_tool"
         />
 
     <genericsetup:upgradeStep
         title="Upgrade root site manager"
+        description="Reset the name of the site manager."
         handler=".to22.upgrade_root_site_manager"
         checker=".to22.check_root_site_manager"
         />
 
     <genericsetup:upgradeStep
         title="Upgrade root properties"
+        description="Add 'enable_actionicons' property if missing."
         handler=".to22.upgrade_root_properties"
         checker=".to22.check_root_properties"
         />
 
     <genericsetup:upgradeStep
         title="Upgrade type properties"
+        description="Replace 'content_icon' by icon_expr' properties and add
+                     'add_view_expr' properties if missing."
         handler=".to22.upgrade_type_properties"
         checker=".to22.check_type_properties"
         />
 
     <genericsetup:upgradeStep
         title="Upgrade type actions"
+        description="Set action icon expressions."
         handler=".to22.upgrade_type_actions"
         checker=".to22.check_type_actions"
         />
 
     <genericsetup:upgradeStep
         title="Add Single-state workflow"
+        description="Add the Single-state workflow if missing."
         handler=".to22.add_singlestate_workflow"
         checker=".to22.check_singlestate_workflow"
         />
 
     <genericsetup:upgradeStep
         title="Upgrade Discussion Item workflow"
+        description="Set Single-state workflow for Discussion Item type."
         handler=".to22.upgrade_discussionitem_workflow"
         checker=".to22.check_discussionitem_workflow"
         />
 
     <genericsetup:upgradeStep
         title="Upgrade workflow definitions"
+        description="Set action icon expressions."
         handler=".to22.upgrade_workflow_definitions"
         checker=".to22.check_workflow_definitions"
         />
 
     <genericsetup:upgradeStep
         title="Upgrade action properties"
+        description="Set action icon expressions."
         handler=".to22.upgrade_action_properties"
         checker=".to22.check_action_properties"
         />
 
     <genericsetup:upgradeStep
         title="Upgrade catalog columns"
+        description="Replace 'getIcon' by 'getIconURL'."
         handler=".to22.upgrade_catalog_columns"
         checker=".to22.check_catalog_columns"
         />
 
     <genericsetup:upgradeStep
-        title="Upgrade Dublin Core metadata definitions"
+        title="Upgrade metadata tool"
+        description="Update Dublin Core metadata definition."
         handler=".to22.upgrade_dcmi_metadata"
         checker=".to22.check_dcmi_metadata"
         />

Modified: Products.CMFDefault/branches/2.2/Products/CMFDefault/upgrade/to21.py
===================================================================
--- Products.CMFDefault/branches/2.2/Products/CMFDefault/upgrade/to21.py	2010-04-23 16:00:23 UTC (rev 111304)
+++ Products.CMFDefault/branches/2.2/Products/CMFDefault/upgrade/to21.py	2010-04-23 16:00:43 UTC (rev 111305)
@@ -23,7 +23,6 @@
 from five.localsitemanager.registry import FiveVerifyingAdapterLookup
 from five.localsitemanager.registry import PersistentComponents
 from zope.component import getMultiAdapter
-from zope.component import getSiteManager
 from zope.component.globalregistry import base
 from zope.component.interfaces import ComponentLookupError
 from zope.dottedname.resolve import resolve
@@ -83,56 +82,110 @@
 </object>
 """
 
+_BAD_UTILITIES = [
+         'Products.CMFCalendar.interfaces.ICalendarTool',
+         'Products.CMFCore.interfaces.IActionsTool',
+         'Products.CMFCore.interfaces.ICatalogTool',
+         'Products.CMFCore.interfaces.IContentTypeRegistry',
+         'Products.CMFCore.interfaces.ISkinsTool',
+         'Products.CMFCore.interfaces.ITypesTool',
+         'Products.CMFCore.interfaces.IURLTool',
+         'Products.CMFCore.interfaces.IConfigurableWorkflowTool',
+         'Products.CMFCore.interfaces.IMembershipTool',
+         'Products.CMFCore.interfaces.IRegistrationTool',
+         ]
+
+_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_root_site_manager(tool):
     """2.0.x to 2.1.0 upgrade step checker
     """
-    portal = aq_base(aq_parent(aq_inner(tool)))
+    portal = aq_parent(aq_inner(tool))
     try:
-        portal.getSiteManager()
-        return False
+        # We have to call setSite to make sure we have a site with a proper
+        # acquisition context.
+        setSite(portal)
+        sm = portal.getSiteManager()
+        if sm.utilities.LookupClass != FiveVerifyingAdapterLookup:
+            return True
     except ComponentLookupError:
         return True
 
-def add_root_site_manager(tool):
+    for tool_interface in _BAD_UTILITIES:
+        try:
+            iface = resolve(tool_interface)
+        except ImportError:
+            continue
+
+        if sm.queryUtility(iface) is not None:
+            return True
+
+    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 upgrade_root_site_manager(tool):
     """2.0.x to 2.1.0 upgrade step handler
     """
     logger = logging.getLogger('GenericSetup.upgrade')
-    portal = aq_base(aq_parent(aq_inner(tool)))
-    next = find_next_sitemanager(portal)
-    if next is None:
-        next = base
-    name = '/'.join(portal.getPhysicalPath())
-    components = PersistentComponents(name, (next,))
-    components.__parent__ = portal
-    portal.setSiteManager(components)
-    logger.info("Site manager '%s' added." % name)
-    getMultiAdapter((components, SetupEnviron()), IBody).body = _COMPONENTS_XML
-    logger.info('Utility registrations added.')
-
-def check_root_lookup_class(tool):
-    """2.1 beta to 2.1.0 upgrade step checker
-    """
-    portal = aq_base(aq_parent(aq_inner(tool)))
+    portal = aq_parent(aq_inner(tool))
     try:
-        components = portal.getSiteManager()
-    except ComponentLookupError:
-        return False
-    return components.utilities.LookupClass != FiveVerifyingAdapterLookup
+        setSite(portal)
+        sm = portal.getSiteManager()
+        if sm.utilities.LookupClass != FiveVerifyingAdapterLookup:
+            sm.__parent__ = aq_base(portal)
+            sm.utilities.LookupClass = FiveVerifyingAdapterLookup
+            sm.utilities._createLookup()
+            sm.utilities.__parent__ = sm
+            logger.info('LookupClass replaced.')
+        else:
+            for tool_interface in _BAD_UTILITIES:
+                try:
+                    iface = resolve(tool_interface)
+                except ImportError:
+                    continue
 
-def upgrade_root_lookup_class(tool):
-    """2.1 beta to 2.1.0 upgrade step handler
-    """
-    logger = logging.getLogger('GenericSetup.upgrade')
-    portal = aq_base(aq_parent(aq_inner(tool)))
-    components = portal.getSiteManager()
-    components.__parent__ = portal
-    components.utilities.LookupClass = FiveVerifyingAdapterLookup
-    components.utilities._createLookup()
-    components.utilities.__parent__ = components
-    logger.info('LookupClass replaced.')
-    getMultiAdapter((components, SetupEnviron()), IBody).body = _COMPONENTS_XML
-    logger.info('Utility registrations replaced.')
+                if sm.queryUtility(iface) is not None:
+                    sm.unregisterUtility(provided=iface)
+                    logger.info('Unregistered utility for %s' % tool_interface)
 
+            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))
+            return
+    except ComponentLookupError:
+        next = find_next_sitemanager(portal)
+        if next is None:
+            next = base
+        name = '/'.join(portal.getPhysicalPath())
+        sm = PersistentComponents(name, (next,))
+        sm.__parent__ = aq_base(portal)
+        portal.setSiteManager(sm)
+        logger.info("Site manager '%s' added." % name)
+    getMultiAdapter((sm, SetupEnviron()), IBody).body = _COMPONENTS_XML
+    logger.info('Utility registrations added.')
+
 def check_root_properties(tool):
     """2.0.x to 2.1.0 upgrade step checker
     """
@@ -246,109 +299,3 @@
             if dirpath not in _dirreg.listDirectories():
                 obj._dirpath = _getCurrentKeyFormat(dirpath)
                 logger.info("DirectoryView '%s' changed." % obj.getId())
-
-BAD_UTILITIES = [
-         'Products.CMFCalendar.interfaces.ICalendarTool',
-         'Products.CMFCore.interfaces.IActionsTool',
-         'Products.CMFCore.interfaces.ICatalogTool',
-         'Products.CMFCore.interfaces.IContentTypeRegistry',
-         'Products.CMFCore.interfaces.ISkinsTool',
-         'Products.CMFCore.interfaces.ITypesTool',
-         'Products.CMFCore.interfaces.IURLTool',
-         'Products.CMFCore.interfaces.IConfigurableWorkflowTool',
-         'Products.CMFCore.interfaces.IMembershipTool',
-         'Products.CMFCore.interfaces.IRegistrationTool',
-         ]
-
-def check_bad_utilities(tool):
-    """2.1.0-beta to 2.1.0 upgrade step checker
-    """
-    portal = aq_parent(aq_inner(tool))
-    try:
-        # We have to call setSite to make sure we have a site with a proper
-        # acquisition context.
-        setSite(portal)
-        sm = getSiteManager(portal)
-    except ComponentLookupError:
-        return False
-
-    for utility in BAD_UTILITIES:
-        try:
-            iface = resolve(utility)
-        except ImportError:
-            continue
-
-        if sm.queryUtility(iface) is not None:
-            return True
-
-    return False
-
-def unregister_bad_utilities(tool):
-    """2.1.0-beta to 2.1.0 upgrade step handler
-    """
-    logger = logging.getLogger('GenericSetup.upgrade')
-    portal = aq_parent(aq_inner(tool))
-
-    # We have to call setSite to make sure we have a site with a proper
-    # acquisition context.
-    setSite(portal)
-
-    sm = getSiteManager(portal)
-    for dotted_path in BAD_UTILITIES:
-        try:
-            iface = resolve(dotted_path)
-        except ImportError:
-            continue
-
-        if sm.queryUtility(iface) is not None:
-            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))
-    try:
-        setSite(portal)
-        sm = getSiteManager(portal)
-    except ComponentLookupError:
-        return False
-
-    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