[Checkins] SVN: Products.CMFDefault/trunk/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:01:40 EDT 2010
Log message for revision 111306:
- merged several upgrade steps for the root site manager into one step
- added descriptions for the upgrade steps
Changed:
U Products.CMFDefault/trunk/Products/CMFDefault/upgrade/configure.zcml
U Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to21.py
-=-
Modified: Products.CMFDefault/trunk/Products/CMFDefault/upgrade/configure.zcml
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/upgrade/configure.zcml 2010-04-23 16:00:43 UTC (rev 111305)
+++ Products.CMFDefault/trunk/Products/CMFDefault/upgrade/configure.zcml 2010-04-23 16:01:40 UTC (rev 111306)
@@ -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/trunk/Products/CMFDefault/upgrade/to21.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to21.py 2010-04-23 16:00:43 UTC (rev 111305)
+++ Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to21.py 2010-04-23 16:01:40 UTC (rev 111306)
@@ -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