Collection list site packages (#70173)

* ansible-galaxy collection list and verify now utilize collections in site-packages.

This is a short term fix for #70147.  The long term fix needs to handle
install (but that discussion is also bound up in how upgrade is going to
work and where things can get installed so it's deferred for 2.11.)

* Add test for ansible-galaxy collection list with site-packages

* Fix sanity issue

Co-authored-by: David Moreau Simard <moi@dmsimard.com>
Co-authored-by: Jordan Borean <jborean93@gmail.com>
This commit is contained in:
Toshio Kuratomi 2020-12-10 15:59:33 -08:00 committed by GitHub
parent 0a60e5e341
commit e7dee73774
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 18 additions and 2 deletions

View file

@ -0,0 +1,3 @@
bugfixes:
- Fix ansible-galaxy collection list to show collections in site-packages
(https://github.com/ansible/ansible/issues/70147)

View file

@ -44,6 +44,7 @@ from ansible.parsing.dataloader import DataLoader
from ansible.parsing.yaml.loader import AnsibleLoader
from ansible.playbook.role.requirement import RoleRequirement
from ansible.template import Templar
from ansible.utils.collection_loader import AnsibleCollectionConfig
from ansible.utils.display import Display
from ansible.utils.plugin_docs import get_versioned_doclink
@ -165,7 +166,8 @@ class GalaxyCLI(CLI):
collections_path = opt_help.argparse.ArgumentParser(add_help=False)
collections_path.add_argument('-p', '--collection-path', dest='collections_path', type=opt_help.unfrack_path(pathsep=True),
default=C.COLLECTIONS_PATHS, action=opt_help.PrependListAction,
default=AnsibleCollectionConfig.collection_paths,
action=opt_help.PrependListAction,
help="One or more directories to search for collections in addition "
"to the default COLLECTIONS_PATHS. Separate multiple paths "
"with '{0}'.".format(os.path.pathsep))
@ -1288,7 +1290,7 @@ class GalaxyCLI(CLI):
collections_search_paths = set(context.CLIARGS['collections_path'])
collection_name = context.CLIARGS['collection']
default_collections_path = C.config.get_configuration_definition('COLLECTIONS_PATHS').get('default')
default_collections_path = AnsibleCollectionConfig.collection_paths
warnings = []
path_found = False

View file

@ -422,6 +422,17 @@ f_ansible_galaxy_status \
unset ANSIBLE_COLLECTIONS_PATH
f_ansible_galaxy_status \
"collection list with collections installed from python package"
mkdir -p test-site-packages
ln -s "${galaxy_testdir}/local/ansible_collections" test-site-packages/ansible_collections
ansible-galaxy collection list
PYTHONPATH="./test-site-packages/:$PYTHONPATH" ansible-galaxy collection list | tee out.txt
grep ".ansible/collections/ansible_collections" out.txt
grep "test-site-packages/ansible_collections" out.txt
## end ansible-galaxy collection list