diff --git a/pulpcore/pulpcore/app/models/publication.py b/pulpcore/pulpcore/app/models/publication.py index b850a4ae4d..9b48cb1260 100644 --- a/pulpcore/pulpcore/app/models/publication.py +++ b/pulpcore/pulpcore/app/models/publication.py @@ -6,6 +6,7 @@ class Publication(Model): """ Fields: + complete (models.BooleanField): State tracking; for internal use. Indexed. created (models.DatetimeField): When the publication was created UTC. Relations: @@ -14,12 +15,18 @@ class Publication(Model): create this Publication. """ + complete = models.BooleanField(default=False) created = models.DateTimeField(auto_now_add=True) publisher = models.ForeignKey('Publisher', on_delete=models.CASCADE) repository_version = models.ForeignKey('RepositoryVersion', on_delete=models.CASCADE) + class Meta: + indexes = [ + models.Index(fields=['complete']), + ] + class PublishedFile(Model): """ diff --git a/pulpcore/pulpcore/app/serializers/repository.py b/pulpcore/pulpcore/app/serializers/repository.py index 255f80e178..3aef5be0b8 100644 --- a/pulpcore/pulpcore/app/serializers/repository.py +++ b/pulpcore/pulpcore/app/serializers/repository.py @@ -226,7 +226,7 @@ class DistributionSerializer(ModelSerializer): publication = serializers.HyperlinkedRelatedField( allow_null=True, help_text=_('The publication being served as defined by this distribution'), - queryset=models.Publication.objects.all(), + queryset=models.Publication.objects.exclude(complete=False), view_name='publications-detail' ) base_url = BaseURLField( diff --git a/pulpcore/pulpcore/app/viewsets/repository.py b/pulpcore/pulpcore/app/viewsets/repository.py index a6142f912d..8a13b9cb05 100644 --- a/pulpcore/pulpcore/app/viewsets/repository.py +++ b/pulpcore/pulpcore/app/viewsets/repository.py @@ -244,7 +244,7 @@ class PublicationViewSet(GenericNamedModelViewSet, mixins.ListModelMixin, mixins.DestroyModelMixin): endpoint_name = 'publications' - queryset = Publication.objects.all() + queryset = Publication.objects.exclude(complete=False) serializer_class = PublicationSerializer