CiscoDevNet / ansible-dcnm

Apache License 2.0
45 stars 36 forks source link

when ansible server is using proxy with authentication, dcnm_rest failed with exception #24

Closed dsx1123 closed 1 year ago

dsx1123 commented 3 years ago

ansible version

ansible-playbook 2.10.3 config file = /root/.ansible.cfg configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /root/virtualenv/ansible/lib/python3.7/site-packages/ansible executable location = /root/virtualenv/ansible/bin/ansible-playbook python version = 3.7.3 (default, Apr 3 2019, 05:39:12) [GCC 8.3.0]

example of playbook

---
- name: create networks
  hosts: dcnm
  gather_facts: false
  tasks:
    - name: create network network_app
      cisco.dcnm.dcnm_rest:
        method: POST
        path: /rest/top-down/fabrics/fabric1/networks
        json_data: |
          {
            "fabric":"fabric1",
            "vrf":"vrf_red",
            "networkName":"network_app",
            "networkId":"30010",
            "networkTemplateConfig":"{\"gatewayIpAddress\":\"10.3.4.1/24\", \"vlanId\":\"\"}",
            "networkTemplate":"Default_Network_Universal",
            "networkExtensionTemplate":"Default_Network_Extension_Universal"
          }

      register: result

    - name: next available segments
      debug:
        msg: "{{ result }}"

result

ansible-playbook 2.10.3
  config file = /root/.ansible.cfg
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /root/virtualenv/ansible/lib/python3.7/site-packages/ansible
  executable location = /root/virtualenv/ansible/bin/ansible-playbook
  python version = 3.7.3 (default, Apr  3 2019, 05:39:12) [GCC 8.3.0]
Using /root/.ansible.cfg as config file
host_list declined parsing /root/workspace/ansible/dcnm/inventory/dcnm/host as it did not pass its verify_file() method
script declined parsing /root/workspace/ansible/dcnm/inventory/dcnm/host as it did not pass its verify_file() method
auto declined parsing /root/workspace/ansible/dcnm/inventory/dcnm/host as it did not pass its verify_file() method
Parsed /root/workspace/ansible/dcnm/inventory/dcnm/host inventory source with ini plugin
redirecting (type: action) cisco.dcnm.dcnm_rest to cisco.dcnm.dcnm
redirecting (type: callback) ansible.builtin.profile_tasks to ansible.posix.profile_tasks
Skipping callback 'default', as we already have a stdout callback.
Skipping callback 'minimal', as we already have a stdout callback.
Skipping callback 'oneline', as we already have a stdout callback.

PLAYBOOK: dcnm_rest.yml *******************************************************************************************************************************************************************************************
1 plays in dcnm_rest.yml

PLAY [create networks] ********************************************************************************************************************************************************************************************
META: ran handlers
redirecting (type: action) cisco.dcnm.dcnm_rest to cisco.dcnm.dcnm

TASK [create network network_app] *********************************************************************************************************************************************************************************
task path: /root/workspace/ansible/dcnm/dcnm_rest.yml:6
Tuesday 15 December 2020  11:46:38 -0800 (0:00:00.047)       0:00:00.047 ******
redirecting (type: connection) ansible.builtin.httpapi to ansible.netcommon.httpapi
redirecting (type: action) cisco.dcnm.dcnm_rest to cisco.dcnm.dcnm
<172.25.74.53> ESTABLISH LOCAL CONNECTION FOR USER: root
<172.25.74.53> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp/ansible-local-15572318wdfpm `"&& mkdir "` echo /root/.ansible/tmp/ansible-local-15572318wdfpm/ansible-tmp-1608061600.0660121-15577-281150431964816 `" && echo ansible-tmp-1608061600.0660121-15577-281150431964816="` echo /root/.ansible/tmp/ansible-local-15572318wdfpm/ansible-tmp-1608061600.0660121-15577-281150431964816 `" ) && sleep 0'
<172.25.74.53> Attempting python interpreter discovery
<172.25.74.53> EXEC /bin/sh -c 'echo PLATFORM; uname; echo FOUND; command -v '"'"'/usr/bin/python'"'"'; command -v '"'"'python3.7'"'"'; command -v '"'"'python3.6'"'"'; command -v '"'"'python3.5'"'"'; command -v '"'"'python2.7'"'"'; command -v '"'"'python2.6'"'"'; command -v '"'"'/usr/libexec/platform-python'"'"'; command -v '"'"'/usr/bin/python3'"'"'; command -v '"'"'python'"'"'; echo ENDFOUND && sleep 0'
<172.25.74.53> EXEC /bin/sh -c '/usr/bin/python && sleep 0'
Using module file /root/.ansible/collections/ansible_collections/cisco/dcnm/plugins/modules/dcnm_rest.py
<172.25.74.53> PUT /root/.ansible/tmp/ansible-local-15572318wdfpm/tmpe75w5n8p TO /root/.ansible/tmp/ansible-local-15572318wdfpm/ansible-tmp-1608061600.0660121-15577-281150431964816/AnsiballZ_dcnm_rest.py
<172.25.74.53> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-local-15572318wdfpm/ansible-tmp-1608061600.0660121-15577-281150431964816/ /root/.ansible/tmp/ansible-local-15572318wdfpm/ansible-tmp-1608061600.0660121-15577-281150431964816/AnsiballZ_dcnm_rest.py && sleep 0'
<172.25.74.53> EXEC /bin/sh -c '/usr/bin/python3 /root/.ansible/tmp/ansible-local-15572318wdfpm/ansible-tmp-1608061600.0660121-15577-281150431964816/AnsiballZ_dcnm_rest.py && sleep 0'
<172.25.74.53> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-local-15572318wdfpm/ansible-tmp-1608061600.0660121-15577-281150431964816/ > /dev/null 2>&1 && sleep 0'
The full traceback is:
Traceback (most recent call last):
  File "/root/.ansible/tmp/ansible-local-15572318wdfpm/ansible-tmp-1608061600.0660121-15577-281150431964816/AnsiballZ_dcnm_rest.py", line 102, in <module>
    _ansiballz_main()
  File "/root/.ansible/tmp/ansible-local-15572318wdfpm/ansible-tmp-1608061600.0660121-15577-281150431964816/AnsiballZ_dcnm_rest.py", line 94, in _ansiballz_main
    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)
  File "/root/.ansible/tmp/ansible-local-15572318wdfpm/ansible-tmp-1608061600.0660121-15577-281150431964816/AnsiballZ_dcnm_rest.py", line 40, in invoke_module
    runpy.run_module(mod_name='ansible_collections.cisco.dcnm.plugins.modules.dcnm_rest', init_globals=None, run_name='__main__', alter_sys=True)
  File "/usr/lib/python3.7/runpy.py", line 205, in run_module
    return _run_module_code(code, init_globals, run_name, mod_spec)
  File "/usr/lib/python3.7/runpy.py", line 96, in _run_module_code
    mod_name, mod_spec, pkg_name, script_name)
  File "/usr/lib/python3.7/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmp/ansible_cisco.dcnm.dcnm_rest_payload_d28wkh9t/ansible_cisco.dcnm.dcnm_rest_payload.zip/ansible_collections/cisco/dcnm/plugins/modules/dcnm_rest.py", line 103, in <module>
  File "/tmp/ansible_cisco.dcnm.dcnm_rest_payload_d28wkh9t/ansible_cisco.dcnm.dcnm_rest_payload.zip/ansible_collections/cisco/dcnm/plugins/modules/dcnm_rest.py", line 96, in main
TypeError: '>=' not supported between instances of 'NoneType' and 'int'
fatal: [172.25.74.53]: FAILED! => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": false,
    "module_stderr": "Traceback (most recent call last):\n  File \"/root/.ansible/tmp/ansible-local-15572318wdfpm/ansible-tmp-1608061600.0660121-15577-281150431964816/AnsiballZ_dcnm_rest.py\", line 102, in <module>\n    _ansiballz_main()\n  File \"/root/.ansible/tmp/ansible-local-15572318wdfpm/ansible-tmp-1608061600.0660121-15577-281150431964816/AnsiballZ_dcnm_rest.py\", line 94, in _ansiballz_main\n    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n  File \"/root/.ansible/tmp/ansible-local-15572318wdfpm/ansible-tmp-1608061600.0660121-15577-281150431964816/AnsiballZ_dcnm_rest.py\", line 40, in invoke_module\n    runpy.run_module(mod_name='ansible_collections.cisco.dcnm.plugins.modules.dcnm_rest', init_globals=None, run_name='__main__', alter_sys=True)\n  File \"/usr/lib/python3.7/runpy.py\", line 205, in run_module\n    return _run_module_code(code, init_globals, run_name, mod_spec)\n  File \"/usr/lib/python3.7/runpy.py\", line 96, in _run_module_code\n    mod_name, mod_spec, pkg_name, script_name)\n  File \"/usr/lib/python3.7/runpy.py\", line 85, in _run_code\n    exec(code, run_globals)\n  File \"/tmp/ansible_cisco.dcnm.dcnm_rest_payload_d28wkh9t/ansible_cisco.dcnm.dcnm_rest_payload.zip/ansible_collections/cisco/dcnm/plugins/modules/dcnm_rest.py\", line 103, in <module>\n  File \"/tmp/ansible_cisco.dcnm.dcnm_rest_payload_d28wkh9t/ansible_cisco.dcnm.dcnm_rest_payload.zip/ansible_collections/cisco/dcnm/plugins/modules/dcnm_rest.py\", line 96, in main\nTypeError: '>=' not supported between instances of 'NoneType' and 'int'\n",
    "module_stdout": "",
    "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
    "rc": 1
}

expected result

moduled filed with meaningful error like 407 authentication required

dsx1123 commented 1 year ago

close due to not reproducible