Pulp 3.12.0 is Generally Available!
Let's take a look at the main updates and enhancements as part of this release.
This release also includes a plethora of bugfixes as well as some nice enhancements to Pulpcore and the Plugin API. For a full overview of changes, check out the changlog.
Support added for automatic publishing and distributing #7626¶
Functionality has been added to Pulpcore so that when the content of a repository is updated, the repository can be automatically published and redistributed. This feature paves the way for future content plugin releases to add support for automatically publishing or distributing the new repository version after it has been created. Check the release notes of upcoming content plugins to see when this feature becomes supported.
New Checksum validation steps¶
Pulp can prohibit or allow checksums by setting the ALLOWED_CONTENT_CHECKSUMS
setting.
As part of this release, a number of validation steps have been added to help to ensure that you can debug and manage content checksums that are synched as part of the on-demand sync process.
New documenation has been also added for the ALLOWED_CONTENT_CHECKSUMS setting.
A new warning has been added to the on-demand sync process to check if remote artifacts are detected with checksums that do not correspond with the ALLOWED_CONTENT_CHECKSUMS
. #7985
During a sync of on-demand content, a new check is performed and throws an error if forbidden checksums are detected. #8423
As part of #7989 more enhancements updates were made to handle the exception that gets raised on the client side.
Increased flexibility with deleting repository versions #8454¶
With this release, it is now possible to delete the original repository version (RepoVersion 0
). As long as you have more than one repository version, you can now delete RepoVersion 0
.
Breaking changes and behavior changes¶
PulpExporter: Update and Delete become asynchronous #7438¶
The Update and Delete endpoints of PulpExporter
have been changed to become asynchronous. This change provides proper locking on resources.
Note that this is a breaking change.
Deprecation warnings added to log level WARNING. #8499 ¶
In previous versions of Pulp, no one could see deprecation warnings for features. With this release, if the log level is set to WARNING
, you'll now find deprecation warnings included in your logs.
You can disable this by adjusting the log level of pulpcore.deprecation
.
Updates to the Plugin API¶
This release includes the following updates to the Plugin API.
New callback method for autopublishing #7626¶
A new callback method on_new_version()
has been added to Repository
. This runs when a new repository version has been created. The addition of this method paves the way for future plugin releases to add support for automatically publishing or distributing the new repository version after it has been created.
New logging options for DigestValidationError
and SizeValidationError
#8357¶
A url
option has been added as a possible argument to DigestValidationError
and SizeValidationError
exceptions, so that you can better locate the url of the requested files.
A new Distribution MasterModel #8384¶
This release provides a new MasterModel pulpcore.plugin.models.Distribution
that replaces the BaseDistribution pulpcore.plugin.models.BaseDistribution
model.
You will have to define a migration to move your data from pulpcore.plugin.models.BaseDistribution
to pulpcore.plugin.models.Distribution
. See the pulp_file
migration 0009 as a reference example.#8385
This new model now contains the repository
, repository_version
, and publication
fields that are supposed to move off of the detail models where they are located with pulpcore.plugin.models.BaseDistribution
.
- A new serializer
pulpcore.plugin.serializer.DistributionSerializer
has been added to use withpulpcore.plugin.models.Distribution
. - The viewset
pulpcore.plugin.viewset.DistributionViewSet
replaces the deprecatedpulpcore.plugin.viewset.BaseDistributionViewSet
. - The new
pulpcore.plugin.viewset.NewDistributionFilter
filter pairs with theDistribution
model.
Object deprecations as part of this change¶
BaseDistribution object | Replaced by |
---|---|
pulpcore.plugin.models.BaseDistribution |
pulpcore.plugin.models.Distribution |
pulpcore.plugin.viewset.BaseDistributionViewSet |
pulpcore.plugin.viewset.DistributionViewSet |
pulpcore.plugin.serializer.BaseDistributionSerializer |
pulpcore.plugin.serializer.DistributionSerializer |
pulpcore.plugin.serializer.PublicationDistributionSerializer |
pulpcore.plugin.serializer.DistributionSerializer |
pulpcore.plugin.serializer.RepositoryVersionDistributionSerializer |
Define the publication field directly on your detail distribution object. |
pulpcore.plugin.viewset.DistributionFilter |
pulpcore.plugin.viewset.NewDistributionFilter |
Checksum type enforcement for downloader¶
As part of this release, checksum filtering in Remote.get_downloader
has been removed and checksum type enforcement has been added to BaseDownloader itself.
New Dispatch API #8496¶
A new pulpcore.plugin.tasking.dispatch
endpoint has been added . This replaces the
pulpcore.plugin.tasking.enqueue_with_reservation
endpoint.
The functionality is the same except for the following:
* It returns a pulpcore.plugin.models.Task
instead of an RQ object
* It does not support the options
keyword argument
Additionally the pulpcore.plugin.viewsets.OperationPostponedResponse
has been updated to support both
the dispatch
and enqueue_with_reservation
endpoints.
Removals¶
Checksum type filtering has been removed from pulpcore.plugin.models.Remote.get_downloader
and pulpcore.plugin.stages.DeclarativeArtifact.download
#8435.
Plugin API Deprecations¶
The usage of non-JSON serializable types of args
and kwargs
to tasks is deprecated. Future releases of pulpcore may discontinue accepting complex argument types. Note, UUID objects are not JSON serializable.
A deprecated warning is logged if a non-JSON serializable is used#8505.
Tasking object enqueue_with_reservation
deprecation #8496¶
As part of a future move away from RQ, the pulpcore.plugin.tasking.enqueue_with_reservation
object has been deprecated.
Instead use the pulpcore.plugin.tasking.dispatch
interface.
If you have any comments or questions about anything you read here, we'd be happy to hear from you at pulp-list@redhat.com
.