ansible-collections / google.cloud

GCP Ansible Collection https://galaxy.ansible.com/google/cloud
https://cloud.google.com
GNU General Public License v3.0
99 stars 126 forks source link

`gcp_compute_route` fails every time for more than a year #225

Open nkakouros opened 4 years ago

nkakouros commented 4 years ago
SUMMARY

gcp_compute_route fails with a TypeError.

This is a transfer of https://github.com/ansible/ansible/issues/55153.

It is more than a year that you are offering a module that breaks your users' apps. Your modules deprecated community ones that could at least perform what they claimed they do. Could there at least be some professionalism and some community feedback here?

ISSUE TYPE
COMPONENT NAME

gcp_compute_route

ANSIBLE VERSION
ansible 2.10.0.dev0
  config file = None
  configured module search path = ['/home/nikos/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.8/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 3.8.1 (default, Jan 22 2020, 06:38:00) [GCC 9.2.0]
CONFIGURATION
None
OS / ENVIRONMENT

irrelevant

STEPS TO REPRODUCE
         gcp_compute_route:
            name: name-here
            dest_range: 192.168.0.0/24
            next_hop_instance:
              selfLink: zones/europe-west1-b/instances/vpn
            priority: 100
EXPECTED RESULTS

No errors.

ACTUAL RESULTS
The full traceback is:
Traceback (most recent call last):
  File "<stdin>", line 102, in <module>
  File "<stdin>", line 94, in _ansiballz_main
  File "<stdin>", line 40, in invoke_module
  File "/usr/lib/python3.8/runpy.py", line 206, in run_module
    return _run_module_code(code, init_globals, run_name, mod_spec) 
  File "/usr/lib/python3.8/runpy.py", line 96, in _run_module_code
    _run_code(code, mod_globals, init_globals,
  File "/usr/lib/python3.8/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/tmp/ansible_gcp_compute_route_payload_yo8rsw04/ansible_gcp_compute_route_payload.zip/ansible_collections/google/cloud/plugins/modules/gcp_compute_route.py", line 539, in <module>
  File "/tmp/ansible_gcp_compute_route_payload_yo8rsw04/ansible_gcp_compute_route_payload.zip/ansible_collections/google/cloud/plugins/modules/gcp_compute_route.py", line 391, in main
  File "/tmp/ansible_gcp_compute_route_payload_yo8rsw04/ansible_gcp_compute_route_payload.zip/ansible/module_utils/basic.py", line 2043, in exit_json
  File "/tmp/ansible_gcp_compute_route_payload_yo8rsw04/ansible_gcp_compute_route_payload.zip/ansible/module_utils/basic.py", line 2012, in _return_formatted
  File "/tmp/ansible_gcp_compute_route_payload_yo8rsw04/ansible_gcp_compute_route_payload.zip/ansible/module_utils/basic.py", line 722, in warn
  File "/tmp/ansible_gcp_compute_route_payload_yo8rsw04/ansible_gcp_compute_route_payload.zip/ansible/module_utils/common/warnings.py", line 18, in warn
    return _formatwarnmsg_impl(msg)
TypeError: warn requires a string not a <class 'dict'>
fatal: [slagfalt-vpn -> localhost]: FAILED! => {
    "changed": false,
    "module_stderr": "Traceback (most recent call last):\n  File \"<stdin>\", line 102, in <module>\n  File \"<stdin>\", line 94, in _ansiballz_main\n  File \"<stdin>\", line 40, in invoke_module\n  File \"/usr/lib/python3.8/runpy.py\", line 206, in run_module\n    return _run_module_code(code, init_globals, run_name, mod_spec)\n  File \"/usr/lib/python3.8/runpy.py\", line 96, in _run_module_code\n    _run_code(code, mod_globals, init_globals,\n  File \"/usr/lib/python3.8/runpy.py\", line 86, in _run_code\n    exec(code, run_globals)\n  File \"/tmp/ansible_gcp_compute_route_payload_yo8rsw04/ansible_gcp_compute_route_payload.zip/ansible_collections/google/cloud/plugins/modules/gcp_compute_route.py\", line 539, in <module>\n  File \"/tmp/ansible_gcp_compute_route_payload_yo8rsw04/ansible_gcp_compute_route_payload.zip/ansible_collections/google/cloud/plugins/modules/gcp_compute_route.py\", line 391, in main\n  File \"/tmp/ansible_gcp_compute_route_payload_yo8rsw04/ansible_gcp_compute_route_payload.zip/ansible/module_utils/basic.py\", line 2043, in exit_json\n  File \"/tmp/ansible_gcp_compute_route_payload_yo8rsw04/ansible_gcp_compute_route_payload.zip/ansible/module_utils/basic.py\", line 2012, in _return_formatted\n  File \"/tmp/ansible_gcp_compute_route_payload_yo8rsw04/ansible_gcp_compute_route_payload.zip/ansible/module_utils/basic.py\", line 722, in warn\n  File \"/tmp/ansible_gcp_compute_route_payload_yo8rsw04/ansible_gcp_compute_route_payload.zip/ansible/module_utils/common/warnings.py\", line 18, in warn\n    return _formatwarnmsg_impl(msg)\nTypeError: warn requires a string not a <class 'dict'>\n",                                                              
    "module_stdout": "",
    "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", 
    "rc": 1
}
theHilikus commented 4 years ago

crazy how many of these modules are completely broken

nkakouros commented 1 year ago

This seems to have been resolved.

nkakouros commented 1 year ago

I got this error again. My fix is:

https://github.com/nkakouros-forks/google.cloud/blob/cd90c3bf457216d9e7a9f5f8c09d33d5f6c7f1ab/plugins/modules/gcp_compute_route.py#L403-L404