F5Networks / f5-ansible

Imperative Ansible modules for F5 BIG-IP products
GNU General Public License v3.0
375 stars 231 forks source link

bigip_device_info module - 'HTTPError' object has no attribute 'headers' #1586

Closed glenpekarcsik closed 4 years ago

glenpekarcsik commented 4 years ago
ISSUE TYPE
COMPONENT NAME

bigip_device_info

ANSIBLE VERSION

ansible 2.9.1 config file = /etc/ansible/ansible.cfg configured module search path = [u'/home/pekargl/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python2.7/site-packages/ansible executable location = /usr/bin/ansible python version = 2.7.5 (default, Jun 11 2019, 14:33:56) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]

PYTHON VERSION

Python 2.7.5

BIGIP VERSION

BIG-IP 13.1.1.5 Build 0.70.4 Engineering Hotfix

CONFIGURATION

N/A

OS / ENVIRONMENT

Red Hat Enterprise Linux Server release 7.7 (Maipo)

SUMMARY

When running the bigip_device_info module, I am getting a 'HTTPError' object has no attribute 'headers' error.

STEPS TO REPRODUCE

Run a playbook with the following module:

EXPECTED RESULTS

Return values from the F5 device for the bigip_device_info module.

ACTUAL RESULTS

TASK [Collect BIG-IP facts] ** task path: /home/pekargl/git/waf_dev/waf00_wafansible/playbooks/asm_f5_gather_facts.yml:24

ESTABLISH LOCAL CONNECTION FOR USER: pekargl EXEC /bin/sh -c 'echo ~pekargl && sleep 0' EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /home/pekargl/.ansible/tmp/ansible-tmp-1575553284.09-124019356269474 `" && echo ansible-tmp-1575553284.09-124019356269474="` echo /home/pekargl/.ansible/tmp/ansible-tmp-1575553284.09-124019356269474 `" ) && sleep 0' Using module file /usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_device_info.py PUT /home/pekargl/.ansible/tmp/ansible-local-35399cclykR/tmp0pA0RO TO /home/pekargl/.ansible/tmp/ansible-tmp-1575553284.09-124019356269474/AnsiballZ_bigip_device_info.py EXEC /bin/sh -c 'chmod u+x /home/pekargl/.ansible/tmp/ansible-tmp-1575553284.09-124019356269474/ /home/pekargl/.ansible/tmp/ansible-tmp-1575553284.09-124019356269474/AnsiballZ_bigip_device_info.py && sleep 0' EXEC /bin/sh -c '/usr/bin/python /home/pekargl/.ansible/tmp/ansible-tmp-1575553284.09-124019356269474/AnsiballZ_bigip_device_info.py && sleep 0' EXEC /bin/sh -c 'rm -f -r /home/pekargl/.ansible/tmp/ansible-tmp-1575553284.09-124019356269474/ > /dev/null 2>&1 && sleep 0' The full traceback is: Traceback (most recent call last): File "/home/pekargl/.ansible/tmp/ansible-tmp-1575553284.09-124019356269474/AnsiballZ_bigip_device_info.py", line 102, in _ansiballz_main() File "/home/pekargl/.ansible/tmp/ansible-tmp-1575553284.09-124019356269474/AnsiballZ_bigip_device_info.py", line 94, in _ansiballz_main invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS) File "/home/pekargl/.ansible/tmp/ansible-tmp-1575553284.09-124019356269474/AnsiballZ_bigip_device_info.py", line 40, in invoke_module runpy.run_module(mod_name='ansible.modules.network.f5.bigip_device_info', init_globals=None, run_name='__main__', alter_sys=True) File "/usr/lib64/python2.7/runpy.py", line 176, in run_module fname, loader, pkg_name) File "/usr/lib64/python2.7/runpy.py", line 82, in _run_module_code mod_name, mod_fname, mod_loader, pkg_name) File "/usr/lib64/python2.7/runpy.py", line 72, in _run_code exec code in run_globals File "/tmp/ansible_bigip_device_info_payload_7SSOkQ/ansible_bigip_device_info_payload.zip/ansible/modules/network/f5/bigip_device_info.py", line 16266, in File "/tmp/ansible_bigip_device_info_payload_7SSOkQ/ansible_bigip_device_info_payload.zip/ansible/modules/network/f5/bigip_device_info.py", line 16259, in main File "/tmp/ansible_bigip_device_info_payload_7SSOkQ/ansible_bigip_device_info_payload.zip/ansible/modules/network/f5/bigip_device_info.py", line 15999, in exec_module File "/tmp/ansible_bigip_device_info_payload_7SSOkQ/ansible_bigip_device_info_payload.zip/ansible/modules/network/f5/bigip_device_info.py", line 16075, in execute_managers File "/tmp/ansible_bigip_device_info_payload_7SSOkQ/ansible_bigip_device_info_payload.zip/ansible/module_utils/network/f5/icontrol.py", line 598, in modules_provisioned File "/tmp/ansible_bigip_device_info_payload_7SSOkQ/ansible_bigip_device_info_payload.zip/ansible/module_utils/network/f5/bigip.py", line 36, in api File "/tmp/ansible_bigip_device_info_payload_7SSOkQ/ansible_bigip_device_info_payload.zip/ansible/module_utils/network/f5/bigip.py", line 86, in connect_via_basic_auth File "/tmp/ansible_bigip_device_info_payload_7SSOkQ/ansible_bigip_device_info_payload.zip/ansible/module_utils/network/f5/icontrol.py", line 232, in get File "/tmp/ansible_bigip_device_info_payload_7SSOkQ/ansible_bigip_device_info_payload.zip/ansible/module_utils/network/f5/icontrol.py", line 222, in send File "/tmp/ansible_bigip_device_info_payload_7SSOkQ/ansible_bigip_device_info_payload.zip/ansible/module_utils/network/f5/icontrol.py", line 163, in update_response File "/tmp/ansible_bigip_device_info_payload_7SSOkQ/ansible_bigip_device_info_payload.zip/ansible/module_utils/network/f5/icontrol.py", line 160, in get_headers AttributeError: 'HTTPError' object has no attribute 'headers' fatal: [sdc01waftlta01x -> localhost]: FAILED! => { "changed": false, "module_stderr": "Traceback (most recent call last):\n File \"/home/pekargl/.ansible/tmp/ansible-tmp-1575553284.09-124019356269474/AnsiballZ_bigip_device_info.py\", line 102, in \n _ansiballz_main()\n File \"/home/pekargl/.ansible/tmp/ansible-tmp-1575553284.09-124019356269474/AnsiballZ_bigip_device_info.py\", line 94, in _ansiballz_main\n invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n File \"/home/pekargl/.ansible/tmp/ansible-tmp-1575553284.09-124019356269474/AnsiballZ_bigip_device_info.py\", line 40, in invoke_module\n runpy.run_module(mod_name='ansible.modules.network.f5.bigip_device_info', init_globals=None, run_name='__main__', alter_sys=True)\n File \"/usr/lib64/python2.7/runpy.py\", line 176, in run_module\n fname, loader, pkg_name)\n File \"/usr/lib64/python2.7/runpy.py\", line 82, in _run_module_code\n mod_name, mod_fname, mod_loader, pkg_name)\n File \"/usr/lib64/python2.7/runpy.py\", line 72, in _run_code\n exec code in run_globals\n File \"/tmp/ansible_bigip_device_info_payload_7SSOkQ/ansible_bigip_device_info_payload.zip/ansible/modules/network/f5/bigip_device_info.py\", line 16266, in \n File \"/tmp/ansible_bigip_device_info_payload_7SSOkQ/ansible_bigip_device_info_payload.zip/ansible/modules/network/f5/bigip_device_info.py\", line 16259, in main\n File \"/tmp/ansible_bigip_device_info_payload_7SSOkQ/ansible_bigip_device_info_payload.zip/ansible/modules/network/f5/bigip_device_info.py\", line 15999, in exec_module\n File \"/tmp/ansible_bigip_device_info_payload_7SSOkQ/ansible_bigip_device_info_payload.zip/ansible/modules/network/f5/bigip_device_info.py\", line 16075, in execute_managers\n File \"/tmp/ansible_bigip_device_info_payload_7SSOkQ/ansible_bigip_device_info_payload.zip/ansible/module_utils/network/f5/icontrol.py\", line 598, in modules_provisioned\n File \"/tmp/ansible_bigip_device_info_payload_7SSOkQ/ansible_bigip_device_info_payload.zip/ansible/module_utils/network/f5/bigip.py\", line 36, in api\n File \"/tmp/ansible_bigip_device_info_payload_7SSOkQ/ansible_bigip_device_info_payload.zip/ansible/module_utils/network/f5/bigip.py\", line 86, in connect_via_basic_auth\n File \"/tmp/ansible_bigip_device_info_payload_7SSOkQ/ansible_bigip_device_info_payload.zip/ansible/module_utils/network/f5/icontrol.py\", line 232, in get\n File \"/tmp/ansible_bigip_device_info_payload_7SSOkQ/ansible_bigip_device_info_payload.zip/ansible/module_utils/network/f5/icontrol.py\", line 222, in send\n File \"/tmp/ansible_bigip_device_info_payload_7SSOkQ/ansible_bigip_device_info_payload.zip/ansible/module_utils/network/f5/icontrol.py\", line 163, in update_response\n File \"/tmp/ansible_bigip_device_info_payload_7SSOkQ/ansible_bigip_device_info_payload.zip/ansible/module_utils/network/f5/icontrol.py\", line 160, in get_headers\nAttributeError: 'HTTPError' object has no attribute 'headers'\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1 } ``` ```
wojtek0806 commented 4 years ago

Looks like the module fails to authenticate, the error comes from underlying HTTP wrapper function:

https://github.com/F5Networks/f5-ansible/blob/devel/library/module_utils/network/f5/bigip.py#L74

I would suggest testing with POSTMAN or CURLl by placing GET call to on the same device:

https://ip:port/mgmt/tm/sys

This looks like your local issue, Closing