Skip to main content

Read Zope configuration state from profile dirs / tarballs

Project description

Overview of GenericSetup

This product provides a mini-framework for expressing the configured state of a Zope Site as a set of filesystem artifacts. These artifacts consist of declarative XML files, which spell out the configuration settings for each “tool” in the site , and supporting scripts / templates, in their “canonical” filesystem representations.

Configurations Included

The setup_tool knows how to export / import configurations and scripts for the following components of a site:

  • itself :)

  • removal / creation of specified tools

  • the role / permission map on the “site” object (its parent)

  • properties of the site object

  • “Placeful” utilities and adapters registered in the local site manager. Placeless utilities can only be imported.

Extending The Tool

Third-party products extend the tool by registering handlers for import / export of their unique tools.

Providing Profiles

GenericSetup doesn’t ship with any profile. They have to be provided by third-party products and depend on the registered handlers.


GenericSetup Product Changelog

1.5.0b1 (2009-09-25)

  • LP #388380: removed obsolute STX docs from the package directory.

  • Made export / import features for old-school TextIndex (removed in Zope 2.12) conditional.

  • Added support for import / export of subscribers from component registry.

  • Adapter removal.

  • Fix utility removal so utility is not added when it is missing from the local component registry.

  • Fixed component handler to use for not for_ in adapter directive. To support import of existing profiles for_ is used as a fallback.

  • Changed testing.py to directly load zope.traversing’s ZCML instead of going via the Five traversing.zcml BBB shim.

  • Added new feature to the component handler. For factory based utilities you can now specify an additional id. All factory based utilities will now by default be added to the site manager (being an ObjectManager itself) as an object and this persistent object is registered as the utility. On removal both the registration and the object are removed. The new id argument is used to specify the id of the object as set via __name__. This change makes these utilities introspectable in the ZMI and clearly separates the persistent object and utility registration aspect.

  • Adjusted TarballImportContext to work with Python 2.6’s tarfile module.

  • Cleaned up / normalized imports:

    o Don’t import from Globals; instead, use real locations.

    o Make other imports use the actual source module, rather than an

    intermediate (e.g., prefer importing ‘ClassSecurityInfo’ from ‘AccessControl.SecurityInfo’ rather than from ‘AccessControl’).

    o Avoid relative imports, which will break in later versions of Python.

  • events: Added ‘handleProfileImportedEvent’ subscriber. After a full import it updates ‘last version for profile’.

  • UpgradeSteps: Improved listUpgradeSteps behavior. If versions and checker are specified for a step, the checker is used as an additional restriction.

  • Don’t fail when a sub-item cannot be adapted after creation when importing a folder. (https://bugs.launchpad.net/zope-cmf/+bug/300315)

  • Avoid even an explicit purge of the rolemap if no XML file is present in a given context. (https://bugs.launchpad.net/zope-cmf/+bug/279294)

  • Component registry import: Add the ability to unregister a component by specifying the “remove” attribute inside a utility node. (https://bugs.launchpad.net/zope-cmf/+bug/161728)

  • Property import/export tests: Add testing for non-ASCII properties. (https://bugs.launchpad.net/zope-cmf/+bug/202356) (https://bugs.launchpad.net/zope-cmf/+bug/242588)

  • Add ‘IChunkedImportContext’ interface, allowing RAM-efficient chunked reads of large files, and implement for ‘DirectoryImportContext’. (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 a GS profile during an upgrade process

  • Add ‘IChunkedExportContext’ interface, allowing RAM-efficient chunked writes of large files, and implement for ‘DirectoryExportContext’. (https://bugs.launchpad.net/zope-cmf/+bug/257365)

  • Provide default for dependencies when processing metadata.xml, to avoid a KeyError. (https://bugs.launchpad.net/zope-cmf/+bug/255301)

  • Handle utility factories cleanly if zope.component >=3.5.0 is used.

  • tool and utils: Removed deprecated code.

  • Update PropertyManagerHelpers to make it possible to remove elements from a property by adding a remove=”True” attribute to the element. This can also be used to reorder elements since new elements are always added at the end of the list.

  • Made PropertyManagerHelpers class work for non-PropertyManager objects

    o Derived classes can supply a ‘_PROPERTIES’ scehma, which is then used

    to mock up a temporary propertysheet for the object. The adapter’s methods (‘_extractProperties’, ‘_purgeProperties’, ‘_initProperties’) then run against that propertysheet.

  • Added logic to respect the destination of upgrade steps when determining their applicability.

  • Enhanced the readability of the upgrades tab on the tool.

  • Changed upgrade logic to set the current version after an upgrade to the destination version of the last step run, instead of the current profile version.

  • Use the parse_version function from pkg_resources to normalize versions before comparing them inside the upgrade code. This ensures pre-release versions are handled correctly. Also use the normalize code when sorting versions on the tools ZMI upgrades page.

  • Fixed the upgrade step directive schema. Description is not required.

  • Introduced a new IComponentsHandlerBlacklist interface. You can register named utilities for it and provide sequences of interfaces which should not be handled by the standard components registry adapter. This allows more specialized export/import handlers to take full control over the components they care about.

  • When loading multiple profiles reload the list of steps to use after each import. https://bugs.launchpad.net/zope-cmf/+bug/213905

1.4.5 (unreleased)

  • Added a for_=None parameter to tool.py:listProfileInfo to have the same signature as registry.py:listProfileInfo, so profiles can be filtered by interfaces.

1.4.5 (2009-06-20)

  • events: Added ‘handleProfileImportedEvent’ subscriber. After a full import, it updates ‘last version for profile’. (Backported from trunk)

  • Added a for_=None parameter to tool.py:listProfileInfo to have the same signature as registry.py:listProfileInfo, so profiles can be filtered by interfaces.

1.4.4 (2009-05-15)

1.4.2.2 (2008-09-22)

  • Packaging update: version of 1.4.2.1 said ‘1.4.2’.

1.4.2.1 (2008-09-22)

  • Packaging update: version of 1.4.2 said ‘1.4.2dev’.

1.4.2 (2008-09-22)

1.4.1 (2008-05-27)

1.4.0 (2008-03-23)

  • Make getProfileImportDate handle situations where one object’s id is a prefix of another id.

1.4.0-beta (2008-02-07)

  • During object manager imports do not throw an error when trying to remove an object that was already removed.

  • utils: Added MarkerInterfaceHelpers.

  • Added default values to the registerProfile ZCML directive.

  • Add a ZMI interface to find and remove invalid steps from the persistent registries.

  • All GenericSetup import and export steps are now registered globally.

  • Remove duplicated test (https://bugs.launchpad.net/zope-cmf/+bug/174910)

  • Don’t create empty ‘import_steps.xml’ and ‘export_steps.xml’ files.

  • Fix relative paths for profile dependencies.

  • Add support for context dependencies in profiles.

  • Deprecate the version field for import steps.

  • Deprecate reading of version.txt to get the version for a profile.

  • Fire events before and after importing.

  • Use zcml to register import and export steps.

1.3.3 (2007-12-29)

  • Be more careful in checking context id validity.

  • tool: Fixed toolset import handler not to initialize tools again, when they already exist in the site.

1.3.2 (2007-09-11)

  • Ignore import and export step handlers that we can not resolve.

  • Restore the import context after running steps from a profile so we do not break on nested calls.

  • components: Provide log output when purging utilities or adapters.

  • components: Fixed an undefined variable name in a log message.

1.3.1 (2007-08-08)

  • components: correct the object path for the site root to be the empty string.

  • components: Made output more diff friendly.

  • utils: Added warnings to old code. ImportConfiguratorBase and ExportConfiguratorBase will become deprecated as soon as GenericSetup itself no longer uses them. HandlerBase is now deprecated.

  • components: Added ‘components_xmlconfig.html’ form. This view allows to inspect and edit component registrations. It is also available under the ZMI tab ‘manage_components’.

1.3 (2007-07-26)

  • components: Removed non-functional support for registering objects in nested folders. We only support objects available in the component registry’s parent now. The component registry needs to be either acquisition wrapped or have a __parent__ pointer to get to the parent.

1.3-beta (2007-07-12)

  • Guard against situations where encoded text may be compared by the differ. (http://www.zope.org/Collectors/CMF/471)

  • Extend the ZCatalog import/export mechanism to allow removal of metadata columns in addition to adding them. (http://www.zope.org/Collectors/CMF/483)

  • Made sure we register Acquisition free objects as utilities in the components handler.

  • Profiles now support version numbers; setup tool tracks profile versions during upgrades.

  • Added support for nested ‘upgradeStep’ directives; expanded upgrade step registry into a real registry object and not just a dictionary.

  • Added support for ‘metadata.xml’ in the profile (read during profile registration) to register profile description, version, and dependencies.

  • Deprecated runImportStep and runAllImportSteps in favor of runImportStepFromProfile and runAllImportStepsFromProfile.

  • Merged CPS’s upgradeStep ZCML directive, w/ corresponding tool support.

  • Added a “last imported” date to the list of extension profiles, and to the baseline profile.

  • Renamed the “Properties” tab to “Profiles”.

  • Removed the ‘create_report’ decoy in the ZMI view methods: there was never any UI for passing any value other than the default, anyway, and the report objects are too useful to omit.

  • Refactored the “Properties” tab to separate baseline profiles from extension profiles, marking the option to reset the baseline as potentially dangerous for sites which already have one. Allow importing one or more extension profiles directly (all steps) from the “Properties” tab.

  • No longer read the toolset xml and update the toolset regustry on import context change. Doing this only during the toolset step import should be sufficient.

  • testing: The test base classes no longer set up any ZCML. This change is not backwards compatible. If you are using these base classes for testing custom handlers, you have to add the necessary ZCML setup and tear down. Using test layers is recommended.

  • Added support for importing-exporting Zope 3 component registries by folding in Hanno Schlichting’s GSLocalAddons product.

1.2-beta (2006-09-20)

  • tool: Added support for uploading a tarball on the “Import” tab (i.e., one produced on the export tab).

  • docs: Added SampleSite demo product.

  • ProfileRegistry: Added ‘registerProfile’ ZCML directive. Using the old registerProfile method in initialize() is now deprecated. See doc/profiles.txt for details.

  • ProfileRegistry: ‘product’ should now be the module name. For backwards compatibility ‘product’ is still first looked up in Products before searching the default module search path.

  • ZCTextIndex handler: Fixed ‘indexed_attr’ import. (http://www.zope.org/Collectors/CMF/436)

  • docs: Added ‘Registering Profiles’ section to profiles.txt.

  • Added support for PageTemplate import/export, modeled closely after existing PythonScript support

  • The dependency sorting was highly reliant on steps being added in the right order to work. If import step A depends on import step B which depends on step C, and step C gets processed early, and they were processed in the order A, C, B, then the dependency order would be incorrect. This is now fixed by keeping tack of steps with unresolved dependencies, and trying again after inserting everything else.

1.1 (2006-04-16)

  • ZCatalog handler: Implemented the ‘remove’ directive for indexes. This allows to write extension profiles that remove or replace indexes.

  • getExportStepRegistry had the wrong security declaration

1.1-beta2 (2006-03-26)

  • No changes - tag created to coincide with CMF 2.0.0-beta2

1.1-beta (2006-03-08)

  • Allowed subclasses of DAVAwareFileAdapter to override the filename in which the file is stored.

  • Added a doc directory including some basic documentation.

  • Made GenericSetup a standalone package independent of the CMF

  • Added for_ argument to profile registry operations. A profile may be registered and queried as appropriate to a specific site interface; the default value, ‘None’, indicates that the profile is relevant to any site. Note that this is essentially an adapter lookup; perhaps we should reimplement it so.

  • Forward ported changes from GenericSetup 0.11 and 0.12 (which were created in a separate repository).

  • A sequence property with the purge=”False” attribute will not be purged, but merged (the sequences are treated as sets, which means that duplicates are removed). This is useful in extension profiles.

  • Don’t export or purge read-only properties. Correctly purge non-deletable int/float properties.

  • Correctly quote XML on export.

1.0 (2005-09-23)

  • CVS tag: GenericSetup-1_0

  • Forward-ported i18n support from CMF 1.5 branch.

  • Forward ported BBB for old instances that stored properties as lists from CMFSetup.

  • Forward ported fix for tools with non unique IDs from CMFSetup.

0.12 (2005-08-29)

  • CVS tag: GenericSetup-0_12

  • Import requests now create reports (by default) which record any status messages generated by the profile’s steps.

0.11 (2005-08-23)

  • CVS tag: GenericSetup-0_11

  • Added report of messages generated by import to the “Import” tab.

  • Consolidated ISetupContext implementation into base class, ‘SetupContextBase’.

  • Added ‘note’, ‘listNotes’, and ‘clearNotes’ methods to ISetupContext, to allow plugins to record information about the state of the operation.

0.10 (2005-08-11)

  • CVS tag: GenericSetup-0_10

  • Added TarballImportContext, including full test suite.

0.9 (2005-08-08)

  • CVS tag: GenericSetup-0_9

  • Initial version, cut down from CMFSetup-1.5.3


Download

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Products.GenericSetup-1.5.0b1.tar.gz (123.4 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page