mirror of
https://github.com/netbox-community/netbox.git
synced 2026-01-11 21:10:29 +01:00
Show parent object in IP interface assignment UI #8977
Closed
opened 2025-12-29 20:43:35 +01:00 by adam
·
13 comments
No Branch/Tag Specified
main
update-changelog-comments-docs
feature-removal-issue-type
20911-dropdown
20239-plugin-menu-classes-mutable-state
21097-graphql-id-lookups
feature
fix_module_substitution
20923-dcim-templates
20044-elevation-stuck-lightmode
feature-ip-prefix-link
v4.5-beta1-release
20068-import-moduletype-attrs
20766-fix-german-translation-code-literals
20378-del-script
7604-filter-modifiers-v3
circuit-swap
12318-case-insensitive-uniqueness
20637-improve-device-q-filter
20660-script-load
19724-graphql
20614-update-ruff
14884-script
02496-max-page
19720-macaddress-interface-generic-relation
19408-circuit-terminations-export-templates
20203-openapi-check
fix-19669-api-image-download
7604-filter-modifiers
19275-fixes-interface-bulk-edit
fix-17794-get_field_value_return_list
11507-show-aggregate-and-rir-on-api
9583-add_column_specific_search_field_to_tables
v4.5.0
v4.4.10
v4.4.9
v4.5.0-beta1
v4.4.8
v4.4.7
v4.4.6
v4.4.5
v4.4.4
v4.4.3
v4.4.2
v4.4.1
v4.4.0
v4.3.7
v4.4.0-beta1
v4.3.6
v4.3.5
v4.3.4
v4.3.3
v4.3.2
v4.3.1
v4.3.0
v4.2.9
v4.3.0-beta2
v4.2.8
v4.3.0-beta1
v4.2.7
v4.2.6
v4.2.5
v4.2.4
v4.2.3
v4.2.2
v4.2.1
v4.2.0
v4.1.11
v4.1.10
v4.1.9
v4.1.8
v4.2-beta1
v4.1.7
v4.1.6
v4.1.5
v4.1.4
v4.1.3
v4.1.2
v4.1.1
v4.1.0
v4.0.11
v4.0.10
v4.0.9
v4.1-beta1
v4.0.8
v4.0.7
v4.0.6
v4.0.5
v4.0.3
v4.0.2
v4.0.1
v4.0.0
v3.7.8
v3.7.7
v4.0-beta2
v3.7.6
v3.7.5
v4.0-beta1
v3.7.4
v3.7.3
v3.7.2
v3.7.1
v3.7.0
v3.6.9
v3.6.8
v3.6.7
v3.7-beta1
v3.6.6
v3.6.5
v3.6.4
v3.6.3
v3.6.2
v3.6.1
v3.6.0
v3.5.9
v3.6-beta2
v3.5.8
v3.6-beta1
v3.5.7
v3.5.6
v3.5.5
v3.5.4
v3.5.3
v3.5.2
v3.5.1
v3.5.0
v3.4.10
v3.4.9
v3.5-beta2
v3.4.8
v3.5-beta1
v3.4.7
v3.4.6
v3.4.5
v3.4.4
v3.4.3
v3.4.2
v3.4.1
v3.4.0
v3.3.10
v3.3.9
v3.4-beta1
v3.3.8
v3.3.7
v3.3.6
v3.3.5
v3.3.4
v3.3.3
v3.3.2
v3.3.1
v3.3.0
v3.2.9
v3.2.8
v3.3-beta2
v3.2.7
v3.3-beta1
v3.2.6
v3.2.5
v3.2.4
v3.2.3
v3.2.2
v3.2.1
v3.2.0
v3.1.11
v3.1.10
v3.2-beta2
v3.1.9
v3.2-beta1
v3.1.8
v3.1.7
v3.1.6
v3.1.5
v3.1.4
v3.1.3
v3.1.2
v3.1.1
v3.1.0
v3.0.12
v3.0.11
v3.0.10
v3.1-beta1
v3.0.9
v3.0.8
v3.0.7
v3.0.6
v3.0.5
v3.0.4
v3.0.3
v3.0.2
v3.0.1
v3.0.0
v2.11.12
v3.0-beta2
v2.11.11
v2.11.10
v3.0-beta1
v2.11.9
v2.11.8
v2.11.7
v2.11.6
v2.11.5
v2.11.4
v2.11.3
v2.11.2
v2.11.1
v2.11.0
v2.10.10
v2.10.9
v2.11-beta1
v2.10.8
v2.10.7
v2.10.6
v2.10.5
v2.10.4
v2.10.3
v2.10.2
v2.10.1
v2.10.0
v2.9.11
v2.10-beta2
v2.9.10
v2.10-beta1
v2.9.9
v2.9.8
v2.9.7
v2.9.6
v2.9.5
v2.9.4
v2.9.3
v2.9.2
v2.9.1
v2.9.0
v2.9-beta2
v2.8.9
v2.9-beta1
v2.8.8
v2.8.7
v2.8.6
v2.8.5
v2.8.4
v2.8.3
v2.8.2
v2.8.1
v2.8.0
v2.7.12
v2.7.11
v2.7.10
v2.7.9
v2.7.8
v2.7.7
v2.7.6
v2.7.5
v2.7.4
v2.7.3
v2.7.2
v2.7.1
v2.7.0
v2.6.12
v2.6.11
v2.6.10
v2.6.9
v2.7-beta1
Solcon-2020-01-06
v2.6.8
v2.6.7
v2.6.6
v2.6.5
v2.6.4
v2.6.3
v2.6.2
v2.6.1
v2.6.0
v2.5.13
v2.5.12
v2.6-beta1
v2.5.11
v2.5.10
v2.5.9
v2.5.8
v2.5.7
v2.5.6
v2.5.5
v2.5.4
v2.5.3
v2.5.2
v2.5.1
v2.5.0
v2.4.9
v2.5-beta2
v2.4.8
v2.5-beta1
v2.4.7
v2.4.6
v2.4.5
v2.4.4
v2.4.3
v2.4.2
v2.4.1
v2.4.0
v2.3.7
v2.4-beta1
v2.3.6
v2.3.5
v2.3.4
v2.3.3
v2.3.2
v2.3.1
v2.3.0
v2.2.10
v2.3-beta2
v2.2.9
v2.3-beta1
v2.2.8
v2.2.7
v2.2.6
v2.2.5
v2.2.4
v2.2.3
v2.2.2
v2.2.1
v2.2.0
v2.1.6
v2.2-beta2
v2.1.5
v2.2-beta1
v2.1.4
v2.1.3
v2.1.2
v2.1.1
v2.1.0
v2.0.10
v2.1-beta1
v2.0.9
v2.0.8
v2.0.7
v2.0.6
v2.0.5
v2.0.4
v2.0.3
v2.0.2
v2.0.1
v2.0.0
v2.0-beta3
v1.9.6
v1.9.5
v2.0-beta2
v1.9.4-r1
v1.9.3
v2.0-beta1
v1.9.2
v1.9.1
v1.9.0-r1
v1.8.4
v1.8.3
v1.8.2
v1.8.1
v1.8.0
v1.7.3
v1.7.2-r1
v1.7.1
v1.7.0
v1.6.3
v1.6.2-r1
v1.6.1-r1
1.6.1
v1.6.0
v1.5.2
v1.5.1
v1.5.0
v1.4.2
v1.4.1
v1.4.0
v1.3.2
v1.3.1
v1.3.0
v1.2.2
v1.2.1
v1.2.0
v1.1.0
v1.0.7-r1
v1.0.7
v1.0.6
v1.0.5
v1.0.4
v1.0.3-r1
v1.0.3
1.0.0
Labels
Clear labels
beta
breaking change
complexity: high
complexity: low
complexity: medium
needs milestone
netbox
pending closure
plugin candidate
pull-request
severity: high
severity: low
severity: medium
status: accepted
status: backlog
status: blocked
status: duplicate
status: needs owner
status: needs triage
status: revisions needed
status: under review
topic: GraphQL
topic: Internationalization
topic: OpenAPI
topic: UI/UX
topic: cabling
topic: event rules
topic: htmx navigation
topic: industrialization
topic: migrations
topic: plugins
topic: scripts
topic: templating
topic: testing
type: bug
type: deprecation
type: documentation
type: feature
type: housekeeping
type: translation
Mirrored from GitHub Pull Request
No Label
type: feature
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/netbox#8977
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @sol1-matt on GitHub (Dec 18, 2023).
NetBox version
v3.6.7
Feature type
Change to existing functionality
Proposed functionality
Make the following changes to the
Interfacefield UI on IP Address assignment.In the screen shot example Netbox01 is the device/vm name and ens192 is the interface name
There would be no change to the stored data, this is purely a change to the UI that shows the relationship between a interface and it's parent.
Narrowed FR from this comment by @jeremystretch in https://github.com/netbox-community/netbox/issues/12751#issuecomment-1858492734_
Use case
It would make assigning interfaces to IP addresses dramatically simpler and quicker as the user would only need to select the correct type and enter the parent object name, the parent name is generally globally unique unlike the interface names which are unique to the parent only and commonly the same across multiple devices.
Currently the user needs to open an advanced search window and find interfaces for the parent from there.
When editing a ip address with an existing assigned interface and parent the user needs to close the editing window to see what the assigned parent is.

By adding the parent to the UI value only users would also be able to see the parent object in the edit window which is useful as a cross reference when doing a lot of data entry or they are distracted while working.
Database changes
The database wouldn't need any changes.
I'm not sure if the model currently support find as you type over multiple fields, it could be the solution is a
display_parent_interfacefield which contains the name of the parent and interface and is used by find as you type and for display of the interface name in IP address editing.External dependencies
No response
@sol1-matt commented on GitHub (Dec 18, 2023):
Related to #12751, a narrower scope.
@jeffgdotorg commented on GitHub (Dec 20, 2023):
Thanks for the FR! To be sure that we've correctly understood the proposed functionality, can you please confirm that you're asking for the name of the interface's parent (Device or VM) be shown alongside each potential interface? If this isn't quite right, please set me straight.
@jeffgdotorg commented on GitHub (Dec 20, 2023):
As a note to our future selves, @jeremystretch thinks this FR describes a narrower, entirely valid, and more readily achievable subset of what's described in #13283.
@sol1-matt commented on GitHub (Dec 20, 2023):
That is correct, the interface parent object name (device or vm) besides the interface name for display purposes.
The bit you left out is I'm also requesting the "find as you type" lookup would work based on this value as well.
@sol1-matt commented on GitHub (Dec 20, 2023):
added a edit to the original submission for the 1st screenshot defining where the values come from.
In the screen shot example Netbox01 is the device/vm name and ens192 is the interface name
@jeremystretch commented on GitHub (Dec 20, 2023):
The filtering logic is decoupled from the displayed label, and is handled by the
?q=query filter. This does not match on the parent device name, nor would I expect most users to desire that.@DanSheps commented on GitHub (Dec 20, 2023):
This only tackles IP interface assignment, not any of the many other use-cases for #13283.
I think this would be a good intermediate step, if there is a need, however I don't think abandoning work on #13283 would be wise. There is definitely a need elsewhere for this same functionality (VLAN, Locations, Regions, etc) elsewhere.
@sol1-matt commented on GitHub (Dec 21, 2023):
I'm going to disagree with users wanting to be able to find interfaces based on their parent when they are specifically looking for interfaces to add a IP to. This FR is based on feedback from users I support who unanimously told me they wanted to search for interfaces by finding the parent first.
In general interface names are common on different hosts, searching for eth0 for instance could return 1000's of results, where are the host name itself is unique.
The specific use case I'm thinking of is where a user is creating a IP or has found an existing IP and wants to assign it to a existing host (device or vm) and interface, very common for the users I support.
The user knows the host and interface name, but "find as you type" on the interface name isn't helpful as it returns 100's or 1000's of results.
The feedback I got was the old system where you could search for the device/vm then interface
was a lot simpler and easier to use than the new search pop up where you have to
and not just in the number of steps but the complexity too. The new search pop up is very powerful which means it is also complex compared to a tab and 2 fields that existed previously, at the moment users have to use it 100% of the time when assigning IP's to existing device/vm interfaces. This last point isn't a huge problem, but it is a repetitive problem if a user spends lot of time assigning IP's to existing hosts/interfaces.
To be clear I like the new advanced filtering pop up, it is a excellent tool for the 5% of the time, but for the majority of users I'm spoken to it is more complex and more work to do the data entry.
@jeremystretch commented on GitHub (Dec 21, 2023):
Conversely, matching interfaces by device name would return all the interfaces for that device, defeating its purpose. This is my point, and it's one of the reasons none of the general purpose
qfilters - for any model - match on related objects.@sol1-matt commented on GitHub (Dec 21, 2023):
This is true, I know users who have 1000's of interfaces on a single host and I'm not suggesting we solve one problem and introduce another one.
The solution I see would to be able to "find as you type" both the parent and interface.
For example if you have 10 netbox vm's named
netbox[1-10]each with interfaceseth[0-99]typing. Typingnetbox eth0in the find as you type Interface field would filter the results for anything that matches eth0 on all 10 hostsnetbox01 eth1would return eth1 - 10 for netbox01.I just tested find as you type and it isn't promiscuous enough for
netbox eth0to return any results. It looks like the match happens from the whole string and not a combination of parts. I wouldn't consider this a blocker, it is still useful as a contains substring match.This is why I suggested that that a new field be added
display_parent_interfacewhich was just a combination of the parent and interface in from the interface model. It could then be used for display and find as you type.@jeremystretch if you aren't opposed to the idea all together I have some time next week, late next week :),. It might be a small enough problem for me to create a proof of concept.
@DanSheps commented on GitHub (Dec 21, 2023):
This would be a separate FR then, IMO. While I think it is handy to be able to search for the parent myself, you are still going to have to sift through the list of interfaces to find the appropriate interface.
And this FR would be a step towards making it easier. You can already filter specifically by device though by using the selector.
You should be using the interface selector in that instance.
@jronnblom commented on GitHub (Jan 16, 2024):
We have the same problem. I have multiple devices at customer sites that have the same name "Vlanif10". Would be much faster if it would show the device name before the interface name.
@jeremystretch commented on GitHub (May 14, 2024):
This has been implemented in NetBox v4.0. For any proposed improvements to the current implementation, please submit a new feature request.