netbox_cable module is generating errors even though cable terminations are being created #7901

Closed
opened 2025-12-29 20:29:43 +01:00 by adam · 1 comment
Owner

Originally created by @artiomello on GitHub (Apr 13, 2023).

NetBox version

v3.4.7

Python version

3.8

Steps to Reproduce

I'm using AWX to create cable terminations using a loop:

  - name: Connecting devices
    netbox.netbox.netbox_cable:
      data: "{{ cable }}"
      state: present
    loop: "{{ cables }}"
    loop_control:
      loop_var: cable
      label: "{{ cable.termination_a.device, cable.termination_a.name, cable.termination_b.name, cable.termination_b.device }}"
    tags: cables

and passing to it the following (mandatory) arguments:

cables:
- termination_a:
    device: DEVICE_A
    name: FC1
  termination_a_type: dcim.interface
  termination_b:
    device: DEVICE_B
    name: port9
  termination_b_type: dcim.interface
  type: mmf-om4
  status: connected
  tags: "{{ defaults.tags }}"

Expected Behavior

Cable connections are created without any errors.

Observed Behavior

Cable connections are actually created but the module is generating a bunch of traceback errors, rendering the task failed.

{
  "module_stdout": "",
  "module_stderr": "Traceback (most recent call last):\n  File \"/home/runner/.ansible/tmp/ansible-tmp-1681394359.3826227-27-255230972143954/AnsiballZ_netbox_cable.py\", line 107, in <module>\n    _ansiballz_main()\n  File \"/home/runner/.ansible/tmp/ansible-tmp-1681394359.3826227-27-255230972143954/AnsiballZ_netbox_cable.py\", line 99, in _ansiballz_main\n    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n  File \"/home/runner/.ansible/tmp/ansible-tmp-1681394359.3826227-27-255230972143954/AnsiballZ_netbox_cable.py\", line 47, in invoke_module\n    runpy.run_module(mod_name='ansible_collections.netbox.netbox.plugins.modules.netbox_cable', init_globals=dict(_module_fqn='ansible_collections.netbox.netbox.plugins.modules.netbox_cable', _modlib_path=modlib_path),\n  File \"/usr/lib64/python3.8/runpy.py\", line 207, in run_module\n    return _run_module_code(code, init_globals, run_name, mod_spec)\n  File \"/usr/lib64/python3.8/runpy.py\", line 97, in _run_module_code\n    _run_code(code, mod_globals, init_globals,\n  File \"/usr/lib64/python3.8/runpy.py\", line 87, in _run_code\n    exec(code, run_globals)\n  File \"/tmp/ansible_netbox.netbox.netbox_cable_payload_equ6u19l/ansible_netbox.netbox.netbox_cable_payload.zip/ansible_collections/netbox/netbox/plugins/modules/netbox_cable.py\", line 364, in <module>\n  File \"/tmp/ansible_netbox.netbox.netbox_cable_payload_equ6u19l/ansible_netbox.netbox.netbox_cable_payload.zip/ansible_collections/netbox/netbox/plugins/modules/netbox_cable.py\", line 360, in main\n  File \"/tmp/ansible_netbox.netbox.netbox_cable_payload_equ6u19l/ansible_netbox.netbox.netbox_cable_payload.zip/ansible_collections/netbox/netbox/plugins/module_utils/netbox_dcim.py\", line 241, in run\n  File \"/tmp/ansible_netbox.netbox.netbox_cable_payload_equ6u19l/ansible_netbox.netbox.netbox_cable_payload.zip/ansible/module_utils/basic.py\", line 1518, in exit_json\n  File \"/tmp/ansible_netbox.netbox.netbox_cable_payload_equ6u19l/ansible_netbox.netbox.netbox_cable_payload.zip/ansible/module_utils/basic.py\", line 1511, in _return_formatted\n  File \"/tmp/ansible_netbox.netbox.netbox_cable_payload_equ6u19l/ansible_netbox.netbox.netbox_cable_payload.zip/ansible/module_utils/common/parameters.py\", line 890, in remove_values\n  File \"/tmp/ansible_netbox.netbox.netbox_cable_payload_equ6u19l/ansible_netbox.netbox.netbox_cable_payload.zip/ansible/module_utils/common/parameters.py\", line 461, in _remove_values_conditions\nTypeError: Value of unknown type: <class 'pynetbox.models.dcim.Cables'>, Cable #141\n",
  "exception": "Traceback (most recent call last):\n  File \"/home/runner/.ansible/tmp/ansible-tmp-1681394359.3826227-27-255230972143954/AnsiballZ_netbox_cable.py\", line 107, in <module>\n    _ansiballz_main()\n  File \"/home/runner/.ansible/tmp/ansible-tmp-1681394359.3826227-27-255230972143954/AnsiballZ_netbox_cable.py\", line 99, in _ansiballz_main\n    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n  File \"/home/runner/.ansible/tmp/ansible-tmp-1681394359.3826227-27-255230972143954/AnsiballZ_netbox_cable.py\", line 47, in invoke_module\n    runpy.run_module(mod_name='ansible_collections.netbox.netbox.plugins.modules.netbox_cable', init_globals=dict(_module_fqn='ansible_collections.netbox.netbox.plugins.modules.netbox_cable', _modlib_path=modlib_path),\n  File \"/usr/lib64/python3.8/runpy.py\", line 207, in run_module\n    return _run_module_code(code, init_globals, run_name, mod_spec)\n  File \"/usr/lib64/python3.8/runpy.py\", line 97, in _run_module_code\n    _run_code(code, mod_globals, init_globals,\n  File \"/usr/lib64/python3.8/runpy.py\", line 87, in _run_code\n    exec(code, run_globals)\n  File \"/tmp/ansible_netbox.netbox.netbox_cable_payload_equ6u19l/ansible_netbox.netbox.netbox_cable_payload.zip/ansible_collections/netbox/netbox/plugins/modules/netbox_cable.py\", line 364, in <module>\n  File \"/tmp/ansible_netbox.netbox.netbox_cable_payload_equ6u19l/ansible_netbox.netbox.netbox_cable_payload.zip/ansible_collections/netbox/netbox/plugins/modules/netbox_cable.py\", line 360, in main\n  File \"/tmp/ansible_netbox.netbox.netbox_cable_payload_equ6u19l/ansible_netbox.netbox.netbox_cable_payload.zip/ansible_collections/netbox/netbox/plugins/module_utils/netbox_dcim.py\", line 241, in run\n  File \"/tmp/ansible_netbox.netbox.netbox_cable_payload_equ6u19l/ansible_netbox.netbox.netbox_cable_payload.zip/ansible/module_utils/basic.py\", line 1518, in exit_json\n  File \"/tmp/ansible_netbox.netbox.netbox_cable_payload_equ6u19l/ansible_netbox.netbox.netbox_cable_payload.zip/ansible/module_utils/basic.py\", line 1511, in _return_formatted\n  File \"/tmp/ansible_netbox.netbox.netbox_cable_payload_equ6u19l/ansible_netbox.netbox.netbox_cable_payload.zip/ansible/module_utils/common/parameters.py\", line 890, in remove_values\n  File \"/tmp/ansible_netbox.netbox.netbox_cable_payload_equ6u19l/ansible_netbox.netbox.netbox_cable_payload.zip/ansible/module_utils/common/parameters.py\", line 461, in _remove_values_conditions\nTypeError: Value of unknown type: <class 'pynetbox.models.dcim.Cables'>, Cable #141\n",
  "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
  "rc": 1,
  "_ansible_no_log": false,
  "changed": false,
  "cable": {
    "termination_a": {
      "device": "DEVICE_A",
      "name": "FC1"
    },
    "termination_a_type": "dcim.interface",
    "termination_b": {
      "device": "DEVICE_B",
      "name": "port9"
    },
    "termination_b_type": "dcim.interface",
    "type": "mmf-om4",
    "status": "connected",
    "tags": [
    ]
  },
  "ansible_loop_var": "cable",
  "_ansible_item_label": "('DEVICE_A', 'FC1', 'port9', 'DEVICE_B')"
}
Originally created by @artiomello on GitHub (Apr 13, 2023). ### NetBox version v3.4.7 ### Python version 3.8 ### Steps to Reproduce I'm using AWX to create cable terminations using a loop: ```yaml - name: Connecting devices netbox.netbox.netbox_cable: data: "{{ cable }}" state: present loop: "{{ cables }}" loop_control: loop_var: cable label: "{{ cable.termination_a.device, cable.termination_a.name, cable.termination_b.name, cable.termination_b.device }}" tags: cables ``` and passing to it the following (mandatory) arguments: ```yaml cables: - termination_a: device: DEVICE_A name: FC1 termination_a_type: dcim.interface termination_b: device: DEVICE_B name: port9 termination_b_type: dcim.interface type: mmf-om4 status: connected tags: "{{ defaults.tags }}" ``` ### Expected Behavior Cable connections are created without any errors. ### Observed Behavior Cable connections are actually created but the module is generating a bunch of traceback errors, rendering the task `failed`. ```json { "module_stdout": "", "module_stderr": "Traceback (most recent call last):\n File \"/home/runner/.ansible/tmp/ansible-tmp-1681394359.3826227-27-255230972143954/AnsiballZ_netbox_cable.py\", line 107, in <module>\n _ansiballz_main()\n File \"/home/runner/.ansible/tmp/ansible-tmp-1681394359.3826227-27-255230972143954/AnsiballZ_netbox_cable.py\", line 99, in _ansiballz_main\n invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n File \"/home/runner/.ansible/tmp/ansible-tmp-1681394359.3826227-27-255230972143954/AnsiballZ_netbox_cable.py\", line 47, in invoke_module\n runpy.run_module(mod_name='ansible_collections.netbox.netbox.plugins.modules.netbox_cable', init_globals=dict(_module_fqn='ansible_collections.netbox.netbox.plugins.modules.netbox_cable', _modlib_path=modlib_path),\n File \"/usr/lib64/python3.8/runpy.py\", line 207, in run_module\n return _run_module_code(code, init_globals, run_name, mod_spec)\n File \"/usr/lib64/python3.8/runpy.py\", line 97, in _run_module_code\n _run_code(code, mod_globals, init_globals,\n File \"/usr/lib64/python3.8/runpy.py\", line 87, in _run_code\n exec(code, run_globals)\n File \"/tmp/ansible_netbox.netbox.netbox_cable_payload_equ6u19l/ansible_netbox.netbox.netbox_cable_payload.zip/ansible_collections/netbox/netbox/plugins/modules/netbox_cable.py\", line 364, in <module>\n File \"/tmp/ansible_netbox.netbox.netbox_cable_payload_equ6u19l/ansible_netbox.netbox.netbox_cable_payload.zip/ansible_collections/netbox/netbox/plugins/modules/netbox_cable.py\", line 360, in main\n File \"/tmp/ansible_netbox.netbox.netbox_cable_payload_equ6u19l/ansible_netbox.netbox.netbox_cable_payload.zip/ansible_collections/netbox/netbox/plugins/module_utils/netbox_dcim.py\", line 241, in run\n File \"/tmp/ansible_netbox.netbox.netbox_cable_payload_equ6u19l/ansible_netbox.netbox.netbox_cable_payload.zip/ansible/module_utils/basic.py\", line 1518, in exit_json\n File \"/tmp/ansible_netbox.netbox.netbox_cable_payload_equ6u19l/ansible_netbox.netbox.netbox_cable_payload.zip/ansible/module_utils/basic.py\", line 1511, in _return_formatted\n File \"/tmp/ansible_netbox.netbox.netbox_cable_payload_equ6u19l/ansible_netbox.netbox.netbox_cable_payload.zip/ansible/module_utils/common/parameters.py\", line 890, in remove_values\n File \"/tmp/ansible_netbox.netbox.netbox_cable_payload_equ6u19l/ansible_netbox.netbox.netbox_cable_payload.zip/ansible/module_utils/common/parameters.py\", line 461, in _remove_values_conditions\nTypeError: Value of unknown type: <class 'pynetbox.models.dcim.Cables'>, Cable #141\n", "exception": "Traceback (most recent call last):\n File \"/home/runner/.ansible/tmp/ansible-tmp-1681394359.3826227-27-255230972143954/AnsiballZ_netbox_cable.py\", line 107, in <module>\n _ansiballz_main()\n File \"/home/runner/.ansible/tmp/ansible-tmp-1681394359.3826227-27-255230972143954/AnsiballZ_netbox_cable.py\", line 99, in _ansiballz_main\n invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n File \"/home/runner/.ansible/tmp/ansible-tmp-1681394359.3826227-27-255230972143954/AnsiballZ_netbox_cable.py\", line 47, in invoke_module\n runpy.run_module(mod_name='ansible_collections.netbox.netbox.plugins.modules.netbox_cable', init_globals=dict(_module_fqn='ansible_collections.netbox.netbox.plugins.modules.netbox_cable', _modlib_path=modlib_path),\n File \"/usr/lib64/python3.8/runpy.py\", line 207, in run_module\n return _run_module_code(code, init_globals, run_name, mod_spec)\n File \"/usr/lib64/python3.8/runpy.py\", line 97, in _run_module_code\n _run_code(code, mod_globals, init_globals,\n File \"/usr/lib64/python3.8/runpy.py\", line 87, in _run_code\n exec(code, run_globals)\n File \"/tmp/ansible_netbox.netbox.netbox_cable_payload_equ6u19l/ansible_netbox.netbox.netbox_cable_payload.zip/ansible_collections/netbox/netbox/plugins/modules/netbox_cable.py\", line 364, in <module>\n File \"/tmp/ansible_netbox.netbox.netbox_cable_payload_equ6u19l/ansible_netbox.netbox.netbox_cable_payload.zip/ansible_collections/netbox/netbox/plugins/modules/netbox_cable.py\", line 360, in main\n File \"/tmp/ansible_netbox.netbox.netbox_cable_payload_equ6u19l/ansible_netbox.netbox.netbox_cable_payload.zip/ansible_collections/netbox/netbox/plugins/module_utils/netbox_dcim.py\", line 241, in run\n File \"/tmp/ansible_netbox.netbox.netbox_cable_payload_equ6u19l/ansible_netbox.netbox.netbox_cable_payload.zip/ansible/module_utils/basic.py\", line 1518, in exit_json\n File \"/tmp/ansible_netbox.netbox.netbox_cable_payload_equ6u19l/ansible_netbox.netbox.netbox_cable_payload.zip/ansible/module_utils/basic.py\", line 1511, in _return_formatted\n File \"/tmp/ansible_netbox.netbox.netbox_cable_payload_equ6u19l/ansible_netbox.netbox.netbox_cable_payload.zip/ansible/module_utils/common/parameters.py\", line 890, in remove_values\n File \"/tmp/ansible_netbox.netbox.netbox_cable_payload_equ6u19l/ansible_netbox.netbox.netbox_cable_payload.zip/ansible/module_utils/common/parameters.py\", line 461, in _remove_values_conditions\nTypeError: Value of unknown type: <class 'pynetbox.models.dcim.Cables'>, Cable #141\n", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1, "_ansible_no_log": false, "changed": false, "cable": { "termination_a": { "device": "DEVICE_A", "name": "FC1" }, "termination_a_type": "dcim.interface", "termination_b": { "device": "DEVICE_B", "name": "port9" }, "termination_b_type": "dcim.interface", "type": "mmf-om4", "status": "connected", "tags": [ ] }, "ansible_loop_var": "cable", "_ansible_item_label": "('DEVICE_A', 'FC1', 'port9', 'DEVICE_B')" } ```
adam closed this issue 2025-12-29 20:29:43 +01:00
Author
Owner

@jeremystretch commented on GitHub (Apr 13, 2023):

This repo only accepts bug reports relating to the core NetBox project. If you're having an issue with the Ansible module, please raise an issue here.

@jeremystretch commented on GitHub (Apr 13, 2023): This repo only accepts bug reports relating to the core NetBox project. If you're having an issue with the Ansible module, please raise an issue [here](https://github.com/netbox-community/ansible_modules).
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/netbox#7901