diff --git a/CHANGES/+resource-budget.feature b/CHANGES/+resource-budget.feature new file mode 100644 index 000000000..b957a59e8 --- /dev/null +++ b/CHANGES/+resource-budget.feature @@ -0,0 +1 @@ +Take advantage of pulpcore's `ResourceBudget` feature which enables the sync pipeline to keep disk usage down without an excessive performance hit. diff --git a/pulp_ansible/app/tasks/collections.py b/pulp_ansible/app/tasks/collections.py index 5282a582d..e4a7ed480 100644 --- a/pulp_ansible/app/tasks/collections.py +++ b/pulp_ansible/app/tasks/collections.py @@ -41,6 +41,7 @@ ) from pulpcore.plugin.stages import ( ArtifactDownloader, + ArtifactResourceBudget, ArtifactSaver, ContentAssociation, ContentSaver, @@ -213,7 +214,7 @@ async def declarative_content_from_git_repo(remote, url, git_ref=None, metadata_ return d_content -def sync(remote_pk, repository_pk, mirror, optimize): +def sync(remote_pk, repository_pk, mirror, optimize, **kwargs): """ Sync Collections with ``remote_pk``, and save a new RepositoryVersion for ``repository_pk``. @@ -479,11 +480,12 @@ def pipeline_stages(self, new_version): list: List of :class:`~pulpcore.plugin.stages.Stage` instances """ + resource_budget = ArtifactResourceBudget.from_settings() pipeline = [ self.first_stage, QueryExistingArtifacts(), - ArtifactDownloader(), - ArtifactSaver(), + ArtifactDownloader(resource_budget=resource_budget), + ArtifactSaver(resource_budget=resource_budget), QueryExistingContents(), DocsBlobDownloader(), AnsibleContentSaver(new_version), diff --git a/pyproject.toml b/pyproject.toml index 8e71dee9c..7028bbffb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,7 +27,7 @@ dependencies = [ "GitPython>=3.1.24,<3.2", "jsonschema>=4.9,<4.27", "Pillow>=10.3,<13", # Semantic Versioning https://pillow.readthedocs.io/en/stable/releasenotes/versioning.html - "pulpcore>=3.105.0,<3.115", + "pulpcore>=3.111.0,<3.115", "PyYAML>=6.0.2,<7.0", "semantic_version>=2.9,<2.11", ]