[Zope-CMF] GenericSetup and PluggableAuthService

Jens Vagelpohl jens at dataflake.org
Wed Dec 30 10:19:15 EST 2009


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Wichert Akkerman wrote:
> On 2009-12-30 15:35, Jens Vagelpohl wrote:
>> The reason I thought this list of steps may (should?) change is that for
>> example the PluggableAuthService profiles (both of which are BASE
>> profiles) explicitly define what steps they provide with an
>> import_steps.xml and export_steps.xml file. My assumption was that if
>> you have one of the PAS profiles set as the baseline profile, and then
>> select "Current base profile" on the Import tab, then the list of steps
>> would reflect what the PAS profile import_steps.xml contains.
> 
> I am wondering if the CMFCore import/export steps are registered for 
> Interface instead of ISiteRoot? You should only see steps that are 
> registered for the current context, and since a PAS user folder is not 
> an ISiteRoot the CMF import and export steps should not show up or be run.

Looking at the code it appears steps (import and export) are not
registered for interfaces. Only profiles are. However, even that
registration by interface for profiles isn't considered in the ZMI in
the base profile or extension profile select lists that show up on the
Profiles and Import ZMI tabs.

I have now gotten things to work by going through all import handlers in
CMFCore and making sure they don't do anything if their handled content
does not exist. Some already failed gracefully, others didn't. Looks
like a simple oversight and lack of usage outside of the CMF.

Another item that does not work is the Snapshot tab and the export of
all steps when inside the PluggableAuthService instance. The failure
looks like this:

Traceback (innermost last):
  Module ZPublisher.Publish, line 127, in publish
  Module ZPublisher.mapply, line 77, in mapply
  Module ZPublisher.Publish, line 47, in call_object
  Module Products.GenericSetup.tool, line 586, in manage_exportAllSteps
  Module Products.GenericSetup.tool, line 351, in runAllExportSteps
  Module Products.GenericSetup.tool, line 1022, in _doRunExportSteps
  Module Products.GenericSetup.components, line 530, in
exportComponentRegistry
  Module Products.GenericSetup.utils, line 495, in _exportBody
  Module Products.GenericSetup.components, line 63, in _exportNode
  Module Products.GenericSetup.components, line 373, in _extractAdapters
  Module Products.GenericSetup.utils, line 72, in _getDottedName
ValueError: Cannot compute dotted name: <zope.component.zcml.ProxyView
object at 0x10471b550>

In the debugger I see that the object in question is a absolute_url
adapter residing in the base component registry in the site root. IMHO
the components exporter should not look at the base registry at all,
only a local registry if one exists in the folder the tool sits in. Correct?

jens

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.8 (Darwin)

iEYEARECAAYFAks7b3MACgkQRAx5nvEhZLLoVACgr9wNv68luLJ0OPt/Sg5tLprN
FPYAmweOR7V3LpPng+7vUiEgMPNCodo/
=6MvA
-----END PGP SIGNATURE-----


More information about the Zope-CMF mailing list