Interfaces API endpoint does not allow filtering by multiple device slugs #3042

Closed
opened 2025-12-29 18:25:04 +01:00 by adam · 0 comments
Owner

Originally created by @lampwins on GitHub (Dec 4, 2019).

Environment

  • Python version: 2.6.8-dev
  • NetBox version: 3.7

Steps to Reproduce

  1. Create two devices named device-1 and device-2
  2. Create interfaces on each of those devices
  3. Attempt to filter the /api/dcim/interfaces/ endpoint by both the device names. i.e. /api/dcim/interfaces/?device=device-1&device=device-2

Expected Behavior

The result set to include all interfaces from both devices.

Observed Behavior

Only those interfaces belonging to device-2 are returned. This is because device-2 is listed last in the query param filter.

The root cause is the InterfaceFilter uses a method for the device field which does not accept multiple values.

https://github.com/netbox-community/netbox/blob/develop/netbox/dcim/filters.py#L750

Originally created by @lampwins on GitHub (Dec 4, 2019). <!-- NOTE: This form is only for reproducible bugs. If you need assistance with NetBox installation, or if you have a general question, DO NOT open an issue. Instead, post to our mailing list: https://groups.google.com/forum/#!forum/netbox-discuss Please describe the environment in which you are running NetBox. Be sure that you are running an unmodified instance of the latest stable release before submitting a bug report. --> ### Environment * Python version: 2.6.8-dev * NetBox version: 3.7 <!-- Describe in detail the exact steps that someone else can take to reproduce this bug using the current stable release of NetBox (or the current beta release where applicable). Begin with the creation of any necessary database objects and call out every operation being performed explicitly. If reporting a bug in the REST API, be sure to reconstruct the raw HTTP request(s) being made: Don't rely on a wrapper like pynetbox. --> ### Steps to Reproduce 1. Create two devices named `device-1` and `device-2` 2. Create interfaces on each of those devices 3. Attempt to filter the `/api/dcim/interfaces/` endpoint by both the device names. i.e. `/api/dcim/interfaces/?device=device-1&device=device-2` <!-- What did you expect to happen? --> ### Expected Behavior The result set to include all interfaces from both devices. <!-- What happened instead? --> ### Observed Behavior Only those interfaces belonging to device-2 are returned. This is because device-2 is listed last in the query param filter. The root cause is the InterfaceFilter uses a method for the `device` field which does not accept multiple values. https://github.com/netbox-community/netbox/blob/develop/netbox/dcim/filters.py#L750
adam added the type: bugstatus: accepted labels 2025-12-29 18:25:04 +01:00
adam closed this issue 2025-12-29 18:25:04 +01:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/netbox#3042