(cherry picked from commit f6b3b4b430
)
This commit is contained in:
parent
00caeff928
commit
f41ff33ca6
3 changed files with 20 additions and 8 deletions
2
changelogs/fragments/galaxy-download-scm.yaml
Normal file
2
changelogs/fragments/galaxy-download-scm.yaml
Normal file
|
@ -0,0 +1,2 @@
|
|||
bugfixes:
|
||||
- ansible-galaxy download - fix bug when downloading a collection in a SCM subdirectory
|
|
@ -616,10 +616,9 @@ def download_collections(collections, output_path, apis, validate_certs, no_deps
|
|||
shutil.copy(requirement.b_path, to_bytes(dest_path, errors='surrogate_or_strict'))
|
||||
elif requirement.api is None and requirement.b_path:
|
||||
temp_path = to_text(b_temp_path, errors='surrogate_or_string')
|
||||
scm_build_path = os.path.join(temp_path, 'tmp_build-%s' % collection_filename)
|
||||
os.makedirs(to_bytes(scm_build_path, errors='surrogate_or_strict'), mode=0o0755)
|
||||
temp_download_path = build_collection(os.path.join(temp_path, name), scm_build_path, True)
|
||||
shutil.move(to_bytes(temp_download_path, errors='surrogate_or_strict'), to_bytes(dest_path, errors='surrogate_or_strict'))
|
||||
temp_download_path = build_collection(requirement.b_path, temp_path, True)
|
||||
shutil.move(to_bytes(temp_download_path, errors='surrogate_or_strict'),
|
||||
to_bytes(dest_path, errors='surrogate_or_strict'))
|
||||
else:
|
||||
b_temp_download_path = requirement.download(b_temp_path)
|
||||
shutil.move(b_temp_download_path, to_bytes(dest_path, errors='surrogate_or_strict'))
|
||||
|
|
|
@ -4,20 +4,30 @@
|
|||
state: directory
|
||||
|
||||
- name: download a git repository
|
||||
command: 'ansible-galaxy collection download git+https://github.com/ansible-collections/amazon.aws.git,37875c5b4ba5bf3cc43e07edf29f3432fd76def5'
|
||||
command: >
|
||||
ansible-galaxy collection download
|
||||
git+https://github.com/ansible-collections/amazon.aws.git,37875c5b4ba5bf3cc43e07edf29f3432fd76def5
|
||||
git+https://github.com/AlanCoding/awx.git#awx_collection,750c22a150d04eef1cb625fd4f83cce57949416c
|
||||
args:
|
||||
chdir: '{{ galaxy_dir }}/download'
|
||||
register: download_collection
|
||||
|
||||
- name: check that the file was downloaded
|
||||
- name: check that the amazon.aws collection was downloaded
|
||||
stat:
|
||||
path: '{{ galaxy_dir }}/download/collections/amazon-aws-1.0.0.tar.gz'
|
||||
register: download_collection_actual
|
||||
register: download_collection_amazon_actual
|
||||
|
||||
- name: check that the awx.awx collection was downloaded
|
||||
stat:
|
||||
path: '{{ galaxy_dir }}/download/collections/awx-awx-0.0.1-devel.tar.gz'
|
||||
register: download_collection_awx_actual
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- '"Downloading collection ''amazon.aws'' to" in download_collection.stdout'
|
||||
- download_collection_actual.stat.exists
|
||||
- '"Downloading collection ''awx.awx'' to" in download_collection.stdout'
|
||||
- download_collection_amazon_actual.stat.exists
|
||||
- download_collection_awx_actual.stat.exists
|
||||
|
||||
- name: test the downloaded repository can be installed
|
||||
command: 'ansible-galaxy collection install -r requirements.yml'
|
||||
|
@ -31,6 +41,7 @@
|
|||
- assert:
|
||||
that:
|
||||
- "'amazon.aws' in installed_collections.stdout"
|
||||
- "'awx.awx' in installed_collections.stdout"
|
||||
|
||||
- include_tasks: ./empty_installed_collections.yml
|
||||
when: cleanup
|
||||
|
|
Loading…
Reference in a new issue