I have added the following code to my policy product at https://github.com/Rudd-O/Rudd-O.com/commit/6ad39c37e1838b782a5d549390dbf7b8a3d93eb1
<genericsetup:upgradeDepends
source="15"
destination="16"
profile="ruddocom.policy:default"
title="Apply profile for theme"
sortkey="2"
import_profile="plonetheme.future_imperfect:default"
/>
When upgrading the product using the command line, I get this traceback:
2016-12-03 22:18:47 WARNING Init Class Products.Five.metaclass.RedirectsView has a security declaration for nonexistent method 'errors'
in: Rudd-O.com: before: ruddocom.policy: available=True
in: Rudd-O.com: before: ruddocom.policy: installedVersion=15
in: Rudd-O.com: before: ruddocom.policy: required=True
in: Rudd-O.com: before: ruddocom.policy: newVersion=16
in: Rudd-O.com: before: ruddocom.policy: hasProfile=True
2016-12-03 22:18:48 WARNING ruddocom.policy Not executing <function setupAll at 0x7f992165c7d0> because data file is not there
Traceback (most recent call last):
File "/home/user/optplone/deployments/staging/parts/client1/bin/interpreter", line 282, in <module>
exec(_val)
File "<string>", line 1, in <module>
File "/home/user/optplone/deployments/staging/src/ruddocom.policy/ruddocom/policy/upgrader_embedded.py", line 44, in <module>
a.portal_quickinstaller.upgradeProduct(i)
File "/home/user/optplone/buildout-cache/eggs/Products.CMFPlone-5.0.6-py2.7.egg/Products/CMFPlone/QuickInstallerTool.py", line 103, in upgradeProduct
step.doStep(setup)
File "/home/user/optplone/buildout-cache/eggs/Products.GenericSetup-1.8.3-py2.7.egg/Products/GenericSetup/upgrade.py", line 201, in doStep
ignore_dependencies=ign_deps)
File "/home/user/optplone/buildout-cache/eggs/Products.GenericSetup-1.8.3-py2.7.egg/Products/GenericSetup/tool.py", line 379, in runAllImportStepsFromProfile
dependency_strategy=dependency_strategy)
File "/home/user/optplone/buildout-cache/eggs/Products.GenericSetup-1.8.3-py2.7.egg/Products/GenericSetup/tool.py", line 1414, in _runImportStepsFromContext
message = self._doRunImportStep(step, context)
File "/home/user/optplone/buildout-cache/eggs/Products.GenericSetup-1.8.3-py2.7.egg/Products/GenericSetup/tool.py", line 1226, in _doRunImportStep
return handler(context)
File "/home/user/optplone/buildout-cache/eggs/plone.app.theming-1.3.0-py2.7.egg/plone/app/theming/exportimport/handler.py", line 38, in importTheme
applyTheme(themeInfo)
File "/home/user/optplone/buildout-cache/eggs/plone.app.theming-1.3.0-py2.7.egg/plone/app/theming/utils.py", line 427, in applyTheme
currentTheme = policy.getCurrentTheme()
File "/home/user/optplone/buildout-cache/eggs/plone.app.theming-1.3.0-py2.7.egg/plone/app/theming/policy.py", line 58, in getCurrentTheme
if not settings.rules:
AttributeError: 'NoneType' object has no attribute 'rules'
But, when installing my policy product on a fresh site, or upgrading it through the Web, it all works fine. The theme activates and it operates properly. No traceback appears.
This is the upgrader code in for the command line, present in my policy product:
- https://github.com/Rudd-O/Rudd-O.com/blob/master/src/ruddocom.policy/ruddocom/policy/upgrader.py enables the command-line upgrade
- https://github.com/Rudd-O/Rudd-O.com/blob/master/src/ruddocom.policy/ruddocom/policy/upgrader_embedded.py
The relevant line is:
a.portal_quickinstaller.upgradeProduct(i)
What am I doing wrong there?