Issue #7739
closedRequirement.yml code doesn't filter by version
Description
If you use this requirements.yml file[0], you will end up with 3 collection versions. However, you should only have 1 as the two releases for testing.ansible_testing_content are 4.0.4 and 4.0.6[1] which don't match ">=1.0.0,<=2.0.0", and there's only one release of testing.k8s_demo_collection[2].
To reproduce this in a test environment, change this line[3] to use assertEqual since ANSIBLE_COLLECTION_FIXTURE_COUNT is 1.
[1] https://galaxy-dev.ansible.com/api/v2/collections/testing/ansible_testing_content/versions/
[2] https://galaxy.ansible.com/api/v2/collections/testing/k8s_demo_collection/versions/
Related issues
Updated by daviddavis about 4 years ago
Here is a test I wrote:
def test_sync_with_version_requirement(self):
"""Test to sync down a role using a version requirement"""
requirements_file = "collections:\n - name: amazon.aws\n version: \"<0.1.3\""
repo = self.client.post(ANSIBLE_REPO_PATH, gen_repo())
self.addCleanup(self.client.delete, repo["pulp_href"])
collection_remote = self.client.post(
ANSIBLE_COLLECTION_REMOTE_PATH,
gen_ansible_remote(
url=ANSIBLE_GALAXY_COLLECTION_URL_V2.rstrip("/"),
requirements_file=requirements_file,
),
)
self.addCleanup(self.client.delete, collection_remote["pulp_href"])
sync(self.cfg, collection_remote, repo, mirror=True)
repo = self.client.get(repo["pulp_href"])
content_summary = get_content_summary(repo)
self.assertLess(
content_summary[ANSIBLE_COLLECTION_CONTENT_NAME], 3
)
Here's the failure: AssertionError: 10 not less than 3
Updated by fao89 about 4 years ago
- Has duplicate Issue #5309: Download only specified version on requirements.yml added
Updated by fao89 about 4 years ago
- Related to Refactor #7777: As a developer I want collections sync machinery easier to maintain added
Updated by bmbouter about 4 years ago
- Status changed from NEW to ASSIGNED
- Assignee set to bmbouter
Updated by bmbouter about 4 years ago
- Status changed from ASSIGNED to POST
Added by bmbouter about 4 years ago
Updated by bmbouter about 4 years ago
- Status changed from POST to MODIFIED
Applied in changeset pulp_ansible|2ab95bd8a607262c6ec220fd0ab43d6351b10ea9.
Updated by fao89 about 4 years ago
- Status changed from MODIFIED to CLOSED - CURRENTRELEASE
Refactors sync to use asyncio more and many tests
The previous sync machinery design was very complicated due to treating the asynchronous coroutines as synchronous code. This rewrites the sync code to have the coroutines track the work instead.
In doing the rewrite several bugs were fixed also:
It also makes many test improvements:
closes #7739 closes #7741 closes #7777