[Checkins] SVN: Products.CMFDefault/trunk/Products/CMFDefault/ - added basic upgrade steps
Yvo Schubbe
y.2008 at wcm-solutions.de
Mon Nov 17 08:01:47 EST 2008
Log message for revision 93044:
- added basic upgrade steps
Changed:
U Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt
U Products.CMFDefault/trunk/Products/CMFDefault/configure.zcml
A Products.CMFDefault/trunk/Products/CMFDefault/upgrade/
A Products.CMFDefault/trunk/Products/CMFDefault/upgrade/__init__.py
A Products.CMFDefault/trunk/Products/CMFDefault/upgrade/configure.zcml
A Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to21.py
A Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to22.py
-=-
Modified: Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt 2008-11-17 12:59:58 UTC (rev 93043)
+++ Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt 2008-11-17 13:01:46 UTC (rev 93044)
@@ -4,6 +4,9 @@
2.2.0 (unreleased)
------------------
+- upgrade: Added basic upgrade steps.
+ So far they just allow to add and upgrade the root site manager.
+
- DiscussionTool: Make sure to only ask "real" content for their type
information when checking whether discussions are allowed or not.
Modified: Products.CMFDefault/trunk/Products/CMFDefault/configure.zcml
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/configure.zcml 2008-11-17 12:59:58 UTC (rev 93043)
+++ Products.CMFDefault/trunk/Products/CMFDefault/configure.zcml 2008-11-17 13:01:46 UTC (rev 93044)
@@ -7,6 +7,8 @@
<include package=".formlib"/>
+ <include package=".upgrade"/>
+
<include file="content.zcml"/>
<include file="exportimport.zcml"/>
Added: Products.CMFDefault/trunk/Products/CMFDefault/upgrade/__init__.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/upgrade/__init__.py (rev 0)
+++ Products.CMFDefault/trunk/Products/CMFDefault/upgrade/__init__.py 2008-11-17 13:01:46 UTC (rev 93044)
@@ -0,0 +1,16 @@
+##############################################################################
+#
+# Copyright (c) 2008 Zope Corporation and Contributors. All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""CMFDefault upgrade steps.
+
+$Id$
+"""
Property changes on: Products.CMFDefault/trunk/Products/CMFDefault/upgrade/__init__.py
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: svn:keywords
+ Id
Added: svn:eol-style
+ native
Added: Products.CMFDefault/trunk/Products/CMFDefault/upgrade/configure.zcml
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/upgrade/configure.zcml (rev 0)
+++ Products.CMFDefault/trunk/Products/CMFDefault/upgrade/configure.zcml 2008-11-17 13:01:46 UTC (rev 93044)
@@ -0,0 +1,22 @@
+<configure
+ xmlns="http://namespaces.zope.org/zope"
+ xmlns:genericsetup="http://namespaces.zope.org/genericsetup"
+ i18n_domain="cmf_default">
+
+ <genericsetup:upgradeStep
+ source="2.0"
+ destination="2.1"
+ title="Upgrade CMFDefault from 2.0 to 2.1 (only site object)"
+ profile="Products.CMFDefault:default"
+ handler=".to21.upgrade_default"
+ />
+
+ <genericsetup:upgradeStep
+ source="2.1"
+ destination="2.2"
+ title="Upgrade CMFDefault from 2.1 to 2.2 (only site object)"
+ profile="Products.CMFDefault:default"
+ handler=".to22.upgrade_default"
+ />
+
+</configure>
Property changes on: Products.CMFDefault/trunk/Products/CMFDefault/upgrade/configure.zcml
___________________________________________________________________
Added: svn:eol-style
+ native
Added: Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to21.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to21.py (rev 0)
+++ Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to21.py 2008-11-17 13:01:46 UTC (rev 93044)
@@ -0,0 +1,85 @@
+##############################################################################
+#
+# Copyright (c) 2008 Zope Corporation and Contributors. All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Upgrade steps to CMFDefault 2.1.
+
+$Id$
+"""
+import logging
+
+from Acquisition import aq_base
+from Acquisition import aq_inner
+from Acquisition import aq_parent
+from five.localsitemanager import find_next_sitemanager
+from five.localsitemanager.registry import FiveVerifyingAdapterLookup
+from five.localsitemanager.registry import PersistentComponents
+from zope.component import getMultiAdapter
+from zope.component.globalregistry import base
+from zope.component.interfaces import ComponentLookupError
+
+from Products.GenericSetup.context import SetupEnviron
+from Products.GenericSetup.interfaces import IBody
+
+_XML = """\
+<?xml version="1.0"?>
+<componentregistry>
+ <adapters/>
+ <utilities>
+ <utility interface="Products.CMFCore.interfaces.IDiscussionTool"
+ object="portal_discussion"/>
+ <utility interface="Products.CMFCore.interfaces.IMetadataTool"
+ object="portal_metadata"/>
+ <utility interface="Products.CMFCore.interfaces.IPropertiesTool"
+ object="portal_properties"/>
+ <utility interface="Products.CMFCore.interfaces.ISiteRoot" object=""/>
+ <utility interface="Products.CMFCore.interfaces.ISyndicationTool"
+ object="portal_syndication"/>
+ <utility interface="Products.CMFCore.interfaces.IUndoTool"
+ object="portal_undo"/>
+ <utility interface="Products.GenericSetup.interfaces.ISetupTool"
+ object="portal_setup"/>
+ <utility interface="Products.MailHost.interfaces.IMailHost"
+ object="MailHost"/>
+ </utilities>
+</componentregistry>
+"""
+
+def upgrade_default(tool):
+ """2.0.x to 2.1.0 upgrade step handler
+ """
+ portal = aq_parent(aq_inner(tool))
+ logger = logging.getLogger('GenericSetup.upgrade')
+ upgrade_CMFSite_object(aq_base(portal), logger)
+
+def upgrade_CMFSite_object(portal, logger):
+ try:
+ components = portal.getSiteManager()
+ except ComponentLookupError:
+ 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)
+ else:
+ if components.utilities.LookupClass != FiveVerifyingAdapterLookup:
+ # for CMF 2.1 beta instances
+ components.__parent__ = portal
+ components.utilities.LookupClass = FiveVerifyingAdapterLookup
+ components.utilities._createLookup()
+ components.utilities.__parent__ = components
+ logger.info('LookupClass replaced.')
+ if not tuple(components.registeredUtilities()):
+ getMultiAdapter((components, SetupEnviron()), IBody).body = _XML
+ logger.info('Utility registrations added.')
Property changes on: Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to21.py
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: svn:keywords
+ Id
Added: svn:eol-style
+ native
Added: Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to22.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to22.py (rev 0)
+++ Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to22.py 2008-11-17 13:01:46 UTC (rev 93044)
@@ -0,0 +1,33 @@
+##############################################################################
+#
+# Copyright (c) 2008 Zope Corporation and Contributors. All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Upgrade steps to CMFDefault 2.2.
+
+$Id$
+"""
+import logging
+
+from Acquisition import aq_inner
+from Acquisition import aq_parent
+
+def upgrade_default(tool):
+ """2.1.x to 2.2.0 upgrade step handler
+ """
+ portal = aq_parent(aq_inner(tool))
+ logger = logging.getLogger('GenericSetup.upgrade')
+ upgrade_CMFSite_object(portal, logger)
+
+def upgrade_CMFSite_object(portal, logger):
+ components = portal.getSiteManager()
+ if components.__name__ != '++etc++site':
+ components.__name__ = '++etc++site'
+ logger.info('Site manager name changed.')
Property changes on: Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to22.py
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: svn:keywords
+ Id
Added: svn:eol-style
+ native
More information about the Checkins
mailing list