ansible-collections / cloud.common

Common files for the Cloud collections
GNU General Public License v3.0
16 stars 23 forks source link

“Turbo” server clobbers `PYTHONPATH` #136

Open domq opened 1 year ago

domq commented 1 year ago
SUMMARY
ISSUE TYPE
COMPONENT NAME

cloud.common

ANSIBLE VERSION
ansible [core 2.13.11]
  config file = /Users/quatrava/.ansible.cfg
  configured module search path = ['/Users/quatrava/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /Users/quatrava/Dev/ops/xaasible-ops/ansible-deps-cache/python-libs/lib/python/site-packages/ansible
  ansible collection location = /Users/quatrava/Dev/ops/xaasible-ops/ansible-deps-cache
  executable location = /Users/quatrava/Dev/ops/xaasible-ops/ansible-deps-cache/python-libs/bin/ansible
  python version = 3.11.4 (main, Jun 20 2023, 16:59:59) [Clang 14.0.3 (clang-1403.0.22.14.1)]
  jinja version = 3.1.2
  libyaml = True
COLLECTION VERSION

# /Users/quatrava/Dev/ops/xaasible-ops/ansible-deps-cache/python-libs/lib/python/site-packages/ansible_collections
Collection                    Version
----------------------------- -------
amazon.aws                    3.4.0
ansible.netcommon             3.1.0
ansible.posix                 1.4.0
ansible.utils                 2.6.1
ansible.windows               1.11.0
arista.eos                    5.0.1
awx.awx                       21.4.0
azure.azcollection            1.13.0
check_point.mgmt              2.3.0
chocolatey.chocolatey         1.3.0
cisco.aci                     2.2.0
cisco.asa                     3.1.0
cisco.dnac                    6.5.3
cisco.intersight              1.0.19
cisco.ios                     3.3.0
cisco.iosxr                   3.3.0
cisco.ise                     2.5.0
cisco.meraki                  2.10.1
cisco.mso                     2.0.0
cisco.nso                     1.0.3
cisco.nxos                    3.1.0
cisco.ucs                     1.8.0
cloud.common                  2.1.2
cloudscale_ch.cloud           2.2.2
community.aws                 3.5.0
community.azure               1.1.0
community.ciscosmb            1.0.5
community.crypto              2.5.0
community.digitalocean        1.21.0
community.dns                 2.3.1
community.docker              2.7.1
community.fortios             1.0.0
community.general             5.5.0
community.google              1.0.0
community.grafana             1.5.2
community.hashi_vault         3.2.0
community.hrobot              1.5.2
community.libvirt             1.2.0
community.mongodb             1.4.2
community.mysql               3.4.0
community.network             4.0.1
community.okd                 2.2.0
community.postgresql          2.2.0
community.proxysql            1.4.0
community.rabbitmq            1.2.2
community.routeros            2.2.1
community.sap                 1.0.0
community.sap_libs            1.2.0
community.skydive             1.0.0
community.sops                1.3.0
community.vmware              2.8.0
community.windows             1.11.0
community.zabbix              1.8.0
containers.podman             1.9.4
cyberark.conjur               1.1.0
cyberark.pas                  1.0.14
dellemc.enterprise_sonic      1.1.1
dellemc.openmanage            5.5.0
dellemc.os10                  1.1.1
dellemc.os6                   1.0.7
dellemc.os9                   1.0.4
f5networks.f5_modules         1.19.0
fortinet.fortimanager         2.1.5
fortinet.fortios              2.1.7
frr.frr                       2.0.0
gluster.gluster               1.0.2
google.cloud                  1.0.2
hetzner.hcloud                1.8.1
hpe.nimble                    1.1.4
ibm.qradar                    2.0.0
ibm.spectrum_virtualize       1.9.0
infinidat.infinibox           1.3.3
infoblox.nios_modules         1.3.0
inspur.sm                     2.0.0
junipernetworks.junos         3.1.0
kubernetes.core               2.3.2
mellanox.onyx                 1.0.0
netapp.aws                    21.7.0
netapp.azure                  21.10.0
netapp.cloudmanager           21.19.0
netapp.elementsw              21.7.0
netapp.ontap                  21.22.0
netapp.storagegrid            21.10.0
netapp.um_info                21.8.0
netapp_eseries.santricity     1.3.1
netbox.netbox                 3.7.1
ngine_io.cloudstack           2.2.4
ngine_io.exoscale             1.0.0
ngine_io.vultr                1.1.2
openstack.cloud               1.8.0
openvswitch.openvswitch       2.1.0
ovirt.ovirt                   2.2.3
purestorage.flasharray        1.13.0
purestorage.flashblade        1.9.0
purestorage.fusion            1.0.2
sensu.sensu_go                1.13.1
servicenow.servicenow         1.0.6
splunk.es                     2.0.0
t_systems_mms.icinga_director 1.31.0
theforeman.foreman            3.4.0
vmware.vmware_rest            2.2.0
vyos.vyos                     3.0.1
wti.remote                    1.0.4

# /Users/quatrava/Dev/ops/xaasible-ops/ansible-deps-cache/ansible_collections
Collection         Version
------------------ -------
ansible.posix      1.5.4
cloud.common       2.1.4
kubernetes.core    2.4.0
vmware.vmware_rest 2.3.1
CONFIGURATION
OS / ENVIRONMENT
STEPS TO REPRODUCE
  1. Run Ansible with PYTHONPATH set (e.g. out of a virtualenv)
  2. Ensure that one of the requirements e.g. aiohttp is installed within the PYTHONPATH, but not globally
  3. Run any task that relies on cloud.common.plugins.module_utils.turbo, such as vmware.vmware_rest.content_locallibrary
EXPECTED RESULTS

The task should succeed, or complain about bad parameters, or SSL verification for my phony setup, or something.

ACTUAL RESULTS
fatal: [vsphere-test]: FAILED! => {"changed": false, "msg": "Failed to import the required Python library (aiohttp) on SCXMACQUATRAVAUXD's Python /usr/local/Cellar/python@3.11/3.11.4_1/bin/python3.11. Please read the module documentation and install it in the appropriate location. If the required library is installed, but Ansible is using the wrong Python interpreter, please consult the documentation on ansible_python_interpreter"}
domq commented 1 year ago

The cause is that plugins/module-utils/turbo/common.py clobbers PYTHONPATH, instead of trying to salvage the parts explicitly set by the caller.

domq commented 6 months ago

Hello, what is your feedback on the issue + pull request?

domq commented 1 day ago

Project looks dead, withdrawing my PR.