==================
REST API
--------
Features
~~~~~~~~
- Made uploaded chunks to be stored as separate files in the default storage. This feature removes
the need for a share storage of pulp api nodes, as the chunks are now stored individually in the
shared storage and are therefore accessible by all nodes.
:redmine:`4498`
- Add support for logging messages with a correlation id that can either be autogenerated or passed in
with a ``Correlation-ID`` header. This feature is provided as a tech preview in pulpcore 3.9.
:redmine:`4689`
- Added progress reporting for pulp imports.
:redmine:`6559`
- Exposed ``aiohttp.ClientTimeout`` fields in ``Remote`` as ``connect_timeout``,
``sock_connect_timeout``, ``sock_read_timeout``, and ``total_timeout``.
This replaces the previous hard-coded 600 second timeout for sock_connect and sock_read,
giving per-``Remote`` control of all four ``ClientTimeout`` fields to the user.
:redmine:`7201`
- Enabled users to add checksums to ALLOWED_CONTENT_CHECKSUMS by allowing them to populate checksums
with handle-artifact-checksums command.
:redmine:`7561`
- Added version information to api docs.
:redmine:`7569`
- Made signing services to be immutable. This requires content signers to create a new signing
service explicitly when a change occurs.
:redmine:`7701`
- Added support for repairing Pulp by detecting and redownloading missing or corrupted artifact files. Sending a POST request to ``/pulp/api/v3/repair/`` will trigger a task that scans all artifacts for missing and corrupted files in Pulp storage, and will attempt to redownload them from the original remote. Specifying ``verify_checksums=False`` when POSTing to the same endpoint will skip checking the hashes of the files (corruption detection) and will instead just look for missing files.
The ``verify_checksums`` POST parameter was added to the existing "repository version repair" endpoint as well.
:redmine:`7755`
- Added check to prevent Pulp to start if there are Artifacts with forbidden checksums.
:redmine:`7914`
Bugfixes
~~~~~~~~
- Fixed a serious bug data integrity bug where some Artifact files could be silently deleted from storage in specific circumstances.
:redmine:`7676`
- Moved the initial creation of access_policies to post_migrate signal.
This enforces their existance both with migrate and flush.
:redmine:`7710`
- Fixed incremental export to happen if start_version provided, even if last_export is null.
:redmine:`7716`
- Fixed a file descriptor leak during repository version repair operations.
:redmine:`7735`
- Fixed bug where exporter directory existed and was writable but not owned by worker process and thus
not chmod-able.
:redmine:`7829`
- Properly namespaced the `viewset_name` in `AccessPolicy` to avoid naming conflicts in plugins.
:redmine:`7845`
- Update jquery version from 3.3.1 to 3.5.1 in API.html template. It is the version provided by djangorestframework~=3.12.2
:redmine:`7850`
- Prevented a Redis failure scenario from causing the tasking system to back up due to "tasking system
locks" not being released, even on worker restart.
:redmine:`7907`
- Use subclassed plugin downloaders during the pulp repair.
:redmine:`7909`
Improved Documentation
~~~~~~~~~~~~~~~~~~~~~~
- Added requirement to record a demo with PRs of substantial change.
:redmine:`7703`
- Removed outdated reference stating Pulp did not have an SELinux policy.
:redmine:`7793`
Removals
~~~~~~~~
- The local file system directory used for uploaded chunks is specified by the setting
CHUNKED_UPLOAD_DIR. Users are encouraged to remove all uncommitted uploaded files before
applying this change.
:redmine:`4498`
Misc
~~~~
- :redmine:`7690`, :redmine:`7753`, :redmine:`7902`, :redmine:`7890`
Plugin API
----------
Features
~~~~~~~~
- Added pre_save hook to Artifact to enforce checksum rules implied by ALLOWED_CONTENT_CHECKSUMS.
:redmine:`7696`
- Enabled plugin writers to retrieve a request object from a serializer when look ups are
performed from within the task serializer.
:redmine:`7718`
- Expose ProgressReportSerializer through `pulpcore.plugin`
:redmine:`7759`
- Allowed plugin writers to access the models Upload and UploadChunk
:redmine:`7833`
- Exposed ``pulpcore.plugin.constants.ALL_KNOWN_CONTENT_CHECKSUMS``.
:redmine:`7897`
- Added ``UnsupportedDigestValidationError`` to ``pulpcore.plugins.exceptions``. Going
forward, plugin authors can expect to find all unique exceptions under
``pulpcore.plugin.exceptions``.
:redmine:`7908`
Deprecations
~~~~~~~~~~~~
- Plugins are encouraged to define a ``version`` attribute on their subclass of
``PulpPluginAppConfig``. If undefined while Pulp loads a warning is now shown to encourage plugin
writers to implement this attribute, which will be required starting in pulpcore==3.10.
:redmine:`6671`
- Using the ViewSet's classname to identify its AccessPolicy has been deprecated and is slated for removal in 3.10.
Instead the urlpattern is supposed to be used.
Plugins with existing AccessPolicies should add a data migration to rename their AccessPolicies:
::
access_policy = AccessPolicy.get(viewset_name="MyViewSet")
access_policy.viewset_name = "objectclass/myplugin/myclass"
access_policy.save()
:redmine:`7845`
- The ``pulpcore.plugin.models.UnsupportedDigestValidationError`` is being deprecated and
will be removed in 3.10.
It can now be found at ``pulpcore.plugin.exceptions.UnsupportedDigestValidationError``
instead; please change any code that imports it to access it from its new location.
:redmine:`7908`