Changelog¶
Warning
Until Role-Based Access Control is added to Pulp, REST API is not safe for multi-user use.
Sensitive credentials can be read by any user, e.g. Remote.password
, Remote.client_key
.
3.4.0 (2020-05-27)¶
REST API¶
Features¶
Implemented incremental-exporting for PulpExport. #6136
Added support for S3 and other non-filesystem storage options to pulp import/export functionality. #6456
Optimized imports by having repository versions processed using child tasks. #6484
Added repository type check during Pulp imports. #6532
Added version checking to import process. #6558
Taught PulpExport to export by RepositoryVersions if specified. #6566
Task groups now have an ‘all_tasks_dispatched’ field which denotes that no more tasks will spawn as part of this group. #6591
Taught export how to split export-file into chunk_size bytes. #6736
Bugfixes¶
Remote fields username and password show up in: REST docs, API responses, and are available in the bindings. #6346
Fixed a bug, where the attempt to cancel a completed task lead to a strange response. #6465
Fixed KeyError during OpenAPI schema generation. #6468
Added a missing trailing slash to distribution’s base_url #6507
Fixed a bug where the wrong kind of error was being raised for href parameters of mismatched types. #6521
containers: Fix pulp_rpm 3.3.0 install by replacing the python3-createrepo_c RPM with its build-dependencies, so createrep_c gets installed & built from PyPI #6523
Fixed OpenAPI schema for importer and export APIs. #6556
Normalized export-file-path for PulpExports. #6564
Changed repository viewset to use the general_update and general_delete tasks. This fixes a bug where updating specialized fields of a repository was impossible due to using the wrong serializer. #6569
Only uses multipart OpenAPI Schema when dealing with file fields #6702
Fixed a bug that prevented write_only fields from being present in the API docs and bindings #6775
Added proper headers for index.html pages served by content app. #6802
Removed Content-Encoding header from pulpcore-content responses. #6831
Improved Documentation¶
Adding docs for importing and exporting from Pulp to Pulp. #6364
Add some documentation around TaskGroups. #6641
Introduced a brief explanation about pulp_installer #6674
Added a warning that the REST API is not safe for multi-user use until RBAC is implemented. #6692
Updated the required roles names #6758
Deprecations and Removals¶
Changed repositories field on
/pulp/api/v3/exporters/core/pulp/
from UUIDs to hrefs. #6457Imports now spawn child tasks which can be fetched via the
child_tasks
field of the import task. #6484Content of ssl certificates and keys changed to be return their full value instead of sha256 through REST API. #6691
Replaced PulpExport filename/sha256 fields, with output_info_file, a ‘<filename>’: ‘<hash>’ dictionary. #6736
Plugin API¶
Features¶
Added new NoArtifactContentUploadSerializer and NoArtifactContentUploadViewSet to enable plugin writers to upload content without storing an Artifact #6281
Added view_name_pattern to DetailRelatedField and DetailIdentityField to properly identify wrong resource types. #6521
Added support for Distributions to provide non-Artifact content via a content_handler. #6570
Added constants to the plugin API at
pulpcore.plugin.constants
. #6579TaskGroups now have an ‘all_tasks_dispatched’ field that can be used to notify systems that no further tasks will be dispatched for a TaskGroup. Plugin writers should call “.finish()” on all TaskGroups created once they are done using them to set this field. #6591
Deprecations and Removals¶
Fields: username and password will be returned to the rest API user requesting a Remote #6346
Rehomed QueryModelResource to pulpcore.plugin.importexport. #6514
The
pulpcore.content.handler.Handler.list_directory()
function now returns a set of strings where it returned a string of HTML before. #6570
3.3.0 (2020-04-15)¶
REST API¶
Features¶
Added support for repairing a RepositoryVersion by redownloading corrupted artifact files. Sending a POST request to
/pulp/api/v3/repositories/<plugin>/<type>/<repository-uuid>/versions/<version-number>/repair/
will trigger a task that scans all associated artfacts and attempts to fetch missing or corrupted ones again. #5613Added support for exporting pulp-repo-versions. POSTing to an exporter using the
/pulp/api/v3/exporters/core/pulp/<exporter-uuid>/exports/
API will instantiate a PulpExport entity, which will generate an export-tar.gz file at<exporter.path>/export-<export-uuid>-YYYYMMDD_hhMM.tar.gz
#6135Added API for importing Pulp Exports at
POST /importers/core/pulp/<uuid>/imports/
. #6137Added the new setting CHUNKED_UPLOAD_DIR for configuring a default directory used for uploads #6253
Exported SigningService in plugin api #6256
Added name filter for SigningService #6257
Relationships between tasks that spawn other tasks will be shown in the Task API. #6282
Added a new APIs for PulpExporters and Exports at
/exporters/core/pulp/
and/exporters/core/pulp/<uuid>/exports/
. #6328Added PulpImporter API at
/pulp/api/v3/importers/core/pulp/
. PulpImporters are used for importing exports from Pulp. #6329Added an
ALLOWED_EXPORT_PATHS
setting with list of filesystem locations that exporters can export to. #6335Indroduced ordering keyword, which orders the results by specified field. Pulp objects will by default be ordered by pulp_created if that field exists. #6347
Task Groups added – Plugin writers can spawn tasks as part of a “task group”, which facilitates easier monitoring of related tasks. #6414
Bugfixes¶
Improved the overall performance while syncing very large repositories #6121
Made chunked uploads to be stored in a local file system instead of a default file storage #6253
Fixed 500 error when calling modify on nonexistent repo. #6284
Fixed bug where user could delete repository version 0 but not recreate it by preventing users from deleting repo version 0. #6308
Fixed non unique content units on content list #6347
Properly sort endpoints during generation of the OpenAPI schema. #6372
Improved resync performance by up to 2x with a change to the content stages. #6373
Fixed bug where ‘secret’ fields would be set to the sha256 checksum of the original value. #6402
Fixed pulp containers not allowing commands to be run via absolute path. #6420
Improved Documentation¶
Documented bindings installation for a dev environment #6221
Added documentation for how to write changelog messages. #6336
Cleared up a line in the database settings documentation that was ambiguous. #6384
Updated docs to reflect that S3/Azure are supported and no longer tech preview. #6443
Added tech preview note to docs for importers/exporters. #6454
Renamed ansible-pulp to pulp_installer (to avoid confusion with pulp-ansible) #6461
Fixed missing terms in documentation. #6485
Deprecations and Removals¶
Plugin API¶
Features¶
Tasks can now be spawned from inside other tasks, and these relationships can be explored via the “parent_task” field and “child_tasks” related name on the Task model. #6282
Added a new Export model, serializer, and viewset. #6328
Added models Import and Importer (as well as serializers and viewsets) that can be used for importing data into Pulp. #6329
NamedModelViewSet uses a default ordering of -pulp_created using the StableOrderingFilter. Users using the ordering keyword will be the primary ordering used when specified. #6347
Added two new repo validation methods (validate_repo_version and validate_duplicate_content). #6362
enqueue_with_reservation() provides a new optional argument for “task_group”. #6414
Improved Documentation¶
Deprecations and Removals¶
Changed master model from FileSystemExporter to Exporter. Plugins will still need to extend FileSystemExporter but the master table is now core_exporter. This will require that plugins drop and recreate their filesystem exporter tables. #6328
RepositoryVersion add_content no longer checks for duplicate content. #6362
3.2.0 (2020-02-26)¶
REST API¶
Features¶
Bugfixes¶
Considering base version when removing duplicates #5964
Renames /var/lib/pulp/static/ to /var/lib/pulp/assets/. #5995
Disabled the trimming of leading and trailing whitespace characters which led to a situation where a hash of a certificate computed in Pulp was not equal to a hash generated locally #6025
Repository.latest_version() considering deleted versions #6147
Stopped HttpDownloader sending basic auth credentials to redirect location if domains don’t match. #6227
3.1.1 (2020-02-17)¶
REST API¶
Bugfixes¶
Content with duplicate repo_key_fields raises an error #5567
Resolve content app errors
django.db.utils.InterfaceError: connection already closed
. #6045Fix a bug that could cause an inability to detect an invalid signing script during the validation #6077
Fixing broken S3 redirect #6154
Pin idna==2.8` to avoid a version conflict caused by the idna 2.9 release. #6169
3.1.0 (2020-01-30)¶
REST API¶
Features¶
Allow administrators to add a signing service #5943
Adds
pulpcore.app.authentication.PulpDoNotCreateUsersRemoteUserBackend
which can be used to verify authentication in the webserver, but will not automatically create users likedjango.contrib.auth.backends.RemoteUserBackend
does. #5949Allow Azure blob storage to be used as DEFAULT_FILE_STORAGE for Pulp #5954
Allow to filter publications by
repository_version
andpulp_created
#5968Adds the
ALLOWED_IMPORT_PATHS
setting which can specify the file path prefix thatfile:///
remote paths can import from. #5974Allow the same artifact to be published at multiple relative paths in the same publication. #6037
Bugfixes¶
Improved Documentation¶
Rewrote the Authentication page for more clarity on how to configure Pulp’s authentication. #5949
Deprecations and Removals¶
Removed the
django.contrib.auth.backends.RemoteUserBackend
as a default configured backend insettings.AUTHENTICATION_BACKENDS
. Also removedpulpcore.app.authentication.PulpRemoteUserAuthentication
from the DRF configuration ofDEFAULT_AUTHENTICATION_CLASSES
. #5949Importing from file:/// now requires the configuration of the
ALLOWED_IMPORT_PATHS
setting. Without this configuration, Pulp will not import content fromfile:///
locations correctly. #5974
Plugin API¶
Features¶
Deprecations and Removals¶
The
`Handler._handle_file_response` has been removed. It was renamed to ``_serve_content_artifact
and has the following signature:def _serve_content_artifact(self, content_artifact, headers):
Remove get_or_create_future and does_batch from DeclarativeContent. Replaced by awaiting for resolution on the DeclarativeContent itself. #5668
3.0.1 (2020-01-15)¶
REST API¶
Bugfixes¶
Fix bug where content shows as being added and removed in the same version. #5707
Fix bug where calling Repository new_version() outside of task raises exception. #5894
Adjusts setup.py classifier to show 3.0 as Production/Stable. #5896
Importing from file:/// paths no longer destroys the source repository. #5941
Webserver auth no longer prompts for csrf incorrectly. #5955
Deprecations and Removals¶
Removed
pulpcore.app.middleware.PulpRemoteUserMiddleware
from the default middleware section. Also replacedrest_framework.authentication.RemoteUserAuthentication
withpulpcore.app.authentication.PulpRemoteUserAuthentication
in the Django Rest Framework portion of the config. #5955
3.0.0 (2019-12-11)¶
Note
Task names, e.g. pulpcore.app.tasks.orphan.orphan_cleanup
, are subject to change in future
releases 3.y releases. These are represented in the Task API as the “name” attribute. Please
check future release notes to see when these names will be considered stable. Otherwise, the
REST API pulpcore provides is considered semantically versioned.
3.0.0rc2¶
Comprehensive list of changes and bugfixes for rc 2.
Breaking Changes¶
Default port changes happened in the Ansible Installer for Pulp and pulpcore was updated to match with this PR. Existing installs are unaffected. This was done to avoid conflicts that would prevent Pulp from starting by default in many environments; the previous ports (8000 & 8080) are commonly used by management webGUIs, development webservers, etc.
Publications are now Master/Detail which causes any Publication URL endpoint to change. To give an example from pulp_file see the URL changes made here as an example. See plugin docs compatible with 3.0.0rc2 for more details.
Distributions are now Master/Detail which causes the Distribution URL endpoint to change. To give an example from pulp_file see the URL changes made in this PR as an example. See plugin docs compatible with 3.0.0rc2 for more details.
The semantics of Remote attributes ssl_ca_certificate
, ssl_client_certificate
, and
ssl_client_key
changed even though the field names didn’t. Now these assets are saved directly
in the database instead of on the filesystem, and they are prevented from being read back out to
users after being set for security reasons. This was done with these changes.