[Checkins] SVN: Products.GenericSetup/trunk/Products/GenericSetup/ Enhance upgrade step logic: make it possible to import steps from other profiles as well. Tests will come later once the Zope 2.10-support is fixed
Wichert Akkerman
wichert at wiggy.net
Thu Mar 5 06:21:10 EST 2009
Log message for revision 97523:
Enhance upgrade step logic: make it possible to import steps from other profiles as well. Tests will come later once the Zope 2.10-support is fixed
Changed:
U Products.GenericSetup/trunk/Products/GenericSetup/CHANGES.txt
U Products.GenericSetup/trunk/Products/GenericSetup/upgrade.py
U Products.GenericSetup/trunk/Products/GenericSetup/zcml.py
-=-
Modified: Products.GenericSetup/trunk/Products/GenericSetup/CHANGES.txt
===================================================================
--- Products.GenericSetup/trunk/Products/GenericSetup/CHANGES.txt 2009-03-05 10:05:02 UTC (rev 97522)
+++ Products.GenericSetup/trunk/Products/GenericSetup/CHANGES.txt 2009-03-05 11:21:10 UTC (rev 97523)
@@ -42,7 +42,7 @@
(https://bugs.launchpad.net/zope-cmf/+bug/259233)
- Add <genericsetup:upgradeDepends> ZCML tag; defines a specialized upgrade
- step that re-applies one or more import steps from the GS profile during
+ step that re-applies one or more import steps from a GS profile during
an upgrade process
- Add 'IChunkedExportContext' interface, allowing RAM-efficient chunked
Modified: Products.GenericSetup/trunk/Products/GenericSetup/upgrade.py
===================================================================
--- Products.GenericSetup/trunk/Products/GenericSetup/upgrade.py 2009-03-05 10:05:02 UTC (rev 97522)
+++ Products.GenericSetup/trunk/Products/GenericSetup/upgrade.py 2009-03-05 11:21:10 UTC (rev 97523)
@@ -145,16 +145,19 @@
"""A specialized upgrade step that re-runs a particular import
step from the profile.
"""
- def __init__(self, title, profile, source, dest, desc, import_steps=[],
- run_deps=False, purge=False, checker=None, sortkey=0):
+ def __init__(self, title, profile, source, dest, desc, import_profile=None,
+ import_steps=[], run_deps=False, purge=False, checker=None,
+ sortkey=0):
super(UpgradeDepends, self).__init__(title, profile, source, dest,
desc, checker, sortkey)
+ self.import_profile = import_profile
self.import_steps = import_steps
self.run_deps = run_deps
self.purge = purge
def doStep(self, tool):
- profile_id = 'profile-%s' % self.profile
+ if self.import_profile is None:
+ profile_id = 'profile-%s' % self.profile
if self.import_steps:
for step in self.import_steps:
tool.runImportStepFromProfile(profile_id, step,
Modified: Products.GenericSetup/trunk/Products/GenericSetup/zcml.py
===================================================================
--- Products.GenericSetup/trunk/Products/GenericSetup/zcml.py 2009-03-05 10:05:02 UTC (rev 97522)
+++ Products.GenericSetup/trunk/Products/GenericSetup/zcml.py 2009-03-05 11:21:10 UTC (rev 97523)
@@ -263,6 +263,10 @@
required=False,
)
+ profile = zope.schema.TextLine(
+ title=u"GenericSetup profile id",
+ required=False)
+
import_steps = zope.configuration.fields.Tokens(
title=u"Import steps to rerun",
required=False,
@@ -295,14 +299,15 @@
args = (step,),
)
-def upgradeDepends(_context, title, profile, description, import_steps=[],
- source='*', destination='*', run_deps=False, purge=False,
- checker=None, sortkey=0):
+def upgradeDepends(_context, title, profile, description, profile=None,
+ import_steps=[], source='*', destination='*',
+ run_deps=False, purge=False, checker=None, sortkey=0):
step = UpgradeDepends(title, profile, source, destination, description,
- import_steps, run_deps, purge, checker, sortkey)
+ profile, import_steps, run_deps, purge, checker,
+ sortkey)
_context.action(
- discriminator = ('upgradeDepends', source, destination, str(import_steps),
- checker, sortkey),
+ discriminator = ('upgradeDepends', source, destination, profile,
+ str(import_steps), checker, sortkey),
callable = _registerUpgradeStep,
args = (step,),
)
@@ -334,17 +339,18 @@
args = (step, self.id),
)
- def upgradeDepends(self, _context, title, description=None, import_steps=[],
- run_deps=False, purge=False, checker=None):
+ def upgradeDepends(self, _context, title, description=None, profile=None,
+ import_steps=[], run_deps=False, purge=False,
+ checker=None):
""" nested upgradeDepends directive """
step = UpgradeDepends(title, self.profile, self.source, self.dest,
- description, import_steps, run_deps, purge,
- checker, self.sortkey)
+ description, profile, import_steps, run_deps,
+ purge, checker, self.sortkey)
if self.id is None:
self.id = str(abs(hash('%s%s%s%s' % (title, self.source, self.dest,
self.sortkey))))
_context.action(
- discriminator = ('upgradeDepends', self.source, self.dest,
+ discriminator = ('upgradeDepends', self.source, self.dest, profile,
str(import_steps), self.sortkey),
callable = _registerNestedUpgradeStep,
args = (step, self.id)
More information about the Checkins
mailing list