diff --git a/CHANGES/8520.feature b/CHANGES/8520.feature new file mode 100644 index 000000000..bbfbb47f4 --- /dev/null +++ b/CHANGES/8520.feature @@ -0,0 +1 @@ +APT repositories may now reference an APT remote, that will automatically be used for syncs. diff --git a/pulp_deb/app/models/repository.py b/pulp_deb/app/models/repository.py index 67c829878..0b7fe16be 100644 --- a/pulp_deb/app/models/repository.py +++ b/pulp_deb/app/models/repository.py @@ -3,16 +3,17 @@ from pulpcore.plugin.repo_version_utils import remove_duplicates, validate_repo_version from pulp_deb.app.models import ( + AptRemote, GenericContent, - ReleaseFile, - PackageIndex, InstallerFileIndex, - Package, InstallerPackage, + Package, + PackageIndex, + PackageReleaseComponent, Release, ReleaseArchitecture, ReleaseComponent, - PackageReleaseComponent, + ReleaseFile, ) @@ -24,15 +25,18 @@ class AptRepository(Repository): TYPE = "deb" CONTENT_TYPES = [ GenericContent, - ReleaseFile, - PackageIndex, InstallerFileIndex, - Package, InstallerPackage, + Package, + PackageIndex, + PackageReleaseComponent, Release, ReleaseArchitecture, ReleaseComponent, - PackageReleaseComponent, + ReleaseFile, + ] + REMOTE_TYPES = [ + AptRemote, ] class Meta: diff --git a/pulp_deb/app/viewsets/repository.py b/pulp_deb/app/viewsets/repository.py index 7cdc74968..4f2d42a4d 100644 --- a/pulp_deb/app/viewsets/repository.py +++ b/pulp_deb/app/viewsets/repository.py @@ -44,11 +44,13 @@ def sync(self, request, pk): Dispatches a sync task. """ repository = self.get_object() - serializer = RepositorySyncURLSerializer(data=request.data, context={"request": request}) + serializer = RepositorySyncURLSerializer( + data=request.data, context={"request": request, "repository_pk": pk} + ) # Validate synchronously to return 400 errors. serializer.is_valid(raise_exception=True) - remote = serializer.validated_data.get("remote") + remote = serializer.validated_data.get("remote", repository.remote) mirror = serializer.validated_data.get("mirror", True) result = enqueue_with_reservation(