diff --git a/changelogs/fragments/collection-list-site-packages.yaml b/changelogs/fragments/collection-list-site-packages.yaml new file mode 100644 index 00000000000..2f169fd77bb --- /dev/null +++ b/changelogs/fragments/collection-list-site-packages.yaml @@ -0,0 +1,3 @@ +bugfixes: +- Fix ansible-galaxy collection list to show collections in site-packages + (https://github.com/ansible/ansible/issues/70147) diff --git a/lib/ansible/cli/galaxy.py b/lib/ansible/cli/galaxy.py index 860a9fb872c..25385e220c7 100644 --- a/lib/ansible/cli/galaxy.py +++ b/lib/ansible/cli/galaxy.py @@ -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 diff --git a/test/integration/targets/ansible-galaxy/runme.sh b/test/integration/targets/ansible-galaxy/runme.sh index b41cdbdf8fa..165601cc62c 100755 --- a/test/integration/targets/ansible-galaxy/runme.sh +++ b/test/integration/targets/ansible-galaxy/runme.sh @@ -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