Open Langlais115 opened 1 year ago
I have an error when running a Full update
<class 'TypeError'> string indices must be integers Python version: 3.9.2 NetBox version: 3.5.1
2023-05-31 13:32:28,388 urllib3.connectionpool DEBUG: http://localhost:8001 "GET /api/dcim/interfaces/?device_id=3&name=eno16&limit=0 HTTP/1.1" 200 1174 2023-05-31 13:32:28,390 django.request ERROR: Internal Server Error: /plugins/proxbox/full_update/ Traceback (most recent call last): File "/opt/netbox-3.5.1/venv/lib/python3.9/site-packages/django/core/handlers/exception.py", line 56, in inner response = get_response(request) File "/opt/netbox-3.5.1/venv/lib/python3.9/site-packages/django/core/handlers/base.py", line 197, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/opt/netbox-3.5.1/venv/lib/python3.9/site-packages/django/views/generic/base.py", line 103, in view return self.dispatch(request, *args, **kwargs) File "/opt/netbox-3.5.1/venv/lib/python3.9/site-packages/django/contrib/auth/mixins.py", line 109, in dispatch return super().dispatch(request, *args, **kwargs) File "/opt/netbox-3.5.1/venv/lib/python3.9/site-packages/django/views/generic/base.py", line 142, in dispatch return handler(request, *args, **kwargs) File "/opt/netbox-3.5.1/venv/lib/python3.9/site-packages/netbox_proxbox/views.py", line 93, in get "virtualmachines_table": VMUpdateResult(proxbox_api.update.all(remove_unused = True)["virtualmachines"]), File "/opt/netbox-3.5.1/venv/lib/python3.9/site-packages/netbox_proxbox/proxbox_api/update.py", line 434, in all node_updated = nodes(proxmox_json = px_node_each, proxmox_cluster = proxmox_cluster) File "/opt/netbox-3.5.1/venv/lib/python3.9/site-packages/netbox_proxbox/proxbox_api/update.py", line 392, in nodes full_update = node_full_update(netbox_node, proxmox_json, proxmox_cluster) File "/opt/netbox-3.5.1/venv/lib/python3.9/site-packages/netbox_proxbox/proxbox_api/update.py", line 61, in node_full_update interfaces_updated = updates.node.interfaces(netbox_node, proxmox_json) File "/opt/netbox-3.5.1/venv/lib/python3.9/site-packages/netbox_proxbox/proxbox_api/updates/node.py", line 219, in interfaces ntb_iface = list(nb.dcim.interfaces.filter(device_id=netbox_node.id, name=iface['name'])) TypeError: string indices must be integers
If I execute the query using postman, I obtain this:
{ "count": 1, "next": null, "previous": null, "results": [ { "id": 16, "url": "https://netbox/api/dcim/interfaces/16/", "display": "eno16", "device": { "id": 3, "url": "https://netbox/api/dcim/devices/3/", "display": "proxmox01 (CPFDKQ2)", "name": "proxmox01" }, "vdcs": [], "module": null, "name": "eno16", "label": "", "type": { "value": "1000base-t", "label": "1000BASE-T (1GE)" }, "enabled": true, "parent": null, "bridge": null, "lag": null, "mtu": 1500, "mac_address": "50:9A:4C:91:55:D8", "speed": null, "duplex": { "value": "full", "label": "Full" }, "wwn": null, "mgmt_only": false, "description": "", "mode": null, "rf_role": null, "rf_channel": null, "poe_mode": null, "poe_type": null, "rf_channel_frequency": null, "rf_channel_width": null, "tx_power": null, "untagged_vlan": null, "tagged_vlans": [], "mark_connected": false, "cable": null, "cable_end": "", "wireless_link": null, "link_peers": [], "link_peers_type": null, "wireless_lans": [], "vrf": null, "l2vpn_termination": null, "connected_endpoints": null, "connected_endpoints_type": null, "connected_endpoints_reachable": null, "tags": [], "custom_fields": {}, "created": "2023-05-31T13:27:56.412858Z", "last_updated": "2023-05-31T13:27:56.412922Z", "count_ipaddresses": 0, "count_fhrp_groups": 0, "_occupied": false } ] }
As we can see the name of the interface is not an integer but a string, and as far as I'm concerned, it should be a string.
@Langlais115 I'm aware of this problem and want to fix all these data-types bugs and validation using FastAPI framework. I assigned this to v0.0.6.
I have an error when running a Full update
If I execute the query using postman, I obtain this:
As we can see the name of the interface is not an integer but a string, and as far as I'm concerned, it should be a string.