diff --git a/pulp_file/app/serializers.py b/pulp_file/app/serializers.py index e29d93cc1b..27b61d56db 100644 --- a/pulp_file/app/serializers.py +++ b/pulp_file/app/serializers.py @@ -115,7 +115,7 @@ class FilePublicationSerializer(PublicationSerializer): required=False, allow_null=True, ) - checkpoint = serializers.BooleanField(default=False) + checkpoint = serializers.BooleanField(required=False) class Meta: model = FilePublication @@ -134,7 +134,7 @@ class FileDistributionSerializer(DistributionSerializer): queryset=models.Publication.objects.exclude(complete=False), allow_null=True, ) - checkpoint = serializers.BooleanField(default=False) + checkpoint = serializers.BooleanField(required=False) class Meta: fields = DistributionSerializer.Meta.fields + ("publication", "checkpoint") diff --git a/pulp_file/app/tasks/publishing.py b/pulp_file/app/tasks/publishing.py index 3893fe580a..3b40f4a969 100644 --- a/pulp_file/app/tasks/publishing.py +++ b/pulp_file/app/tasks/publishing.py @@ -26,6 +26,7 @@ def publish(manifest, repository_version_pk, checkpoint=False): Args: manifest (str): Filename to use for manifest file. repository_version_pk (str): Create a publication from this repository version. + checkpoint (bool): Whether to create a checkpoint publication. """ repo_version = RepositoryVersion.objects.get(pk=repository_version_pk) diff --git a/pulp_file/app/viewsets.py b/pulp_file/app/viewsets.py index a71a6c1eae..86b7ef4a3a 100644 --- a/pulp_file/app/viewsets.py +++ b/pulp_file/app/viewsets.py @@ -435,14 +435,13 @@ def create(self, request): manifest = serializer.validated_data.get("manifest") checkpoint = serializer.validated_data.get("checkpoint") + kwargs = {"repository_version_pk": str(repository_version.pk), "manifest": manifest} + if checkpoint: + kwargs["checkpoint"] = True result = dispatch( tasks.publish, shared_resources=[repository_version.repository], - kwargs={ - "repository_version_pk": str(repository_version.pk), - "manifest": manifest, - "checkpoint": checkpoint, - }, + kwargs=kwargs, ) return OperationPostponedResponse(result, request) diff --git a/pulpcore/app/migrations/0129_distribution_checkpoint_publication_checkpoint.py b/pulpcore/app/migrations/0130_distribution_checkpoint_publication_checkpoint.py similarity index 91% rename from pulpcore/app/migrations/0129_distribution_checkpoint_publication_checkpoint.py rename to pulpcore/app/migrations/0130_distribution_checkpoint_publication_checkpoint.py index c0c3ea9f4c..48bf83ecaf 100644 --- a/pulpcore/app/migrations/0129_distribution_checkpoint_publication_checkpoint.py +++ b/pulpcore/app/migrations/0130_distribution_checkpoint_publication_checkpoint.py @@ -6,7 +6,7 @@ class Migration(migrations.Migration): dependencies = [ - ("core", "0128_domain_pulp_labels"), + ("core", "0129_content_pulp_labels"), ] operations = [ diff --git a/pulpcore/tests/functional/api/using_plugin/test_checkpoint.py b/pulpcore/tests/functional/api/using_plugin/test_checkpoint.py index 32b6814f53..2a4563f718 100644 --- a/pulpcore/tests/functional/api/using_plugin/test_checkpoint.py +++ b/pulpcore/tests/functional/api/using_plugin/test_checkpoint.py @@ -132,10 +132,8 @@ def test_checkpoint_artifact_is_served(self, setup, http_get, checkpoint_url): assert pub_2_response == pub_1_response lines = pub_1_response.strip().split("\n") - artifact_names = [line.split(",")[0] for line in lines] - assert len(artifact_names) == 2 - assert "0" in artifact_names - assert "1" in artifact_names + artifact_names = {line.split(",")[0] for line in lines} + assert artifact_names == {"0", "1"} @pytest.mark.parallel def test_non_checkpoint_timestamp_is_redirected(self, setup, http_get, checkpoint_url):