mirror of
https://github.com/netbox-community/netbox.git
synced 2026-01-11 21:10:29 +01:00
Display list of devices when choosing to add a device to a rack #10733
Closed
opened 2025-12-29 21:35:19 +01:00 by adam
·
3 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#10733
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 @chatasos on GitHub (Feb 4, 2025).
NetBox version
v4.1.10
Feature type
Change to existing functionality
Proposed functionality
Either change the "Add device" option in racks to allow choosing from a list of devices, or add another option to accomplish the same functionality using a totally separate action.
Personally i would prefer to display a list of existing devices by default (filtered by site/location if applicable), when clicking the add device (assuming the user has view permission to devices).
As an addon, an extra option could be provided to add a new device to a rack for users that have add permission to devices. Then the current behavior would be followed.
Currently the racks screen is confusing, because someone will full permissions on it, gets an access denied message when trying to add a device to a rack (he doesn't know that this action makes him add a new device to the system and then to a rack, while he just wants to add a device to a rack).
Similar discussions have happened in the past in the following links, but i didn't notice any reference of permissions there.
https://github.com/netbox-community/netbox/pull/8876
https://github.com/netbox-community/netbox/issues/8552
https://github.com/netbox-community/netbox/pull/4190
https://github.com/netbox-community/netbox/issues/1830
Extra config options could limit the devices list only to the ones with specific dcim.Device.status.
Use case
In my previous working environment (provider), but also in the current one (enterprise/utilities), we have distinct roles for field/infrastructure engineers and network engineers. Some of these might be external partners as well.
Network engineers (in general) are responsible for the configuration (operation/monitoring/etc) of a network device, while field engineers are responsible for the hardware preparation/(de)installation of the network device.
So, when a new network device is about to be activated, the field engineer will take it from the warehouse, install modules/power-supplies/etc and then install it to a rack he chooses, all based on the power/connectivity requirements given by the network engineer. Then he will make the cabling and so on.
While working in the provider we had a internal-built NSoT application, which was developed according to our needs and it did our job very well. Now in the enterprise environment I have chosen netbox to play this role, but this is one of the issues I have encountered with it.
The current "add device to rack" functionality cannot be accomplished by the field engineer, because:
The same issue applies for every change originated by the field engineers (i.e. device relocations). They need to inform the network engineers what to update in netbox, while network engineers do not deal with such things.
As a result, this limitation has added extra uneeded communication steps in our workflows, something we would like to avoid.
Database changes
No response
External dependencies
No response
@DanSheps commented on GitHub (Feb 5, 2025):
I am going to take some time to respond to a few of your issues here
You are effectively editing the device, so you need device permissions. You could give your field engineers full control over editing the actual device (but not components) and then use a custom validator to check that nothing has changed beyond the rack information.
These two are the only issues. Please don't include PR's to inflate the "issue count", it isn't needed
Filtering options would be available in the object picker itself.
All of this above is unneeded, it is not really the use case. It is extra background that we don't need.
Unfortunately this will not change by simply making "assign to rack" a special form, it would require a fundamental change to the permissions and that unfortunately is too much work for us to undertake
I don't see why he would need to create a new device. You would simply edit the device.
Unfortunately, all of what you actually want is do-able within NetBox (may require some customization). For your use case, you have two real options:
There is merit in having a more simplified "Assign Device" workflow, however this FR is insufficient to move forward on as all the issues identified in this FR's use case are not specific to an "Assign Device" workflow and are instead indicative of a business workflow that needs refinement within NetBox itself.
@chatasos commented on GitHub (Feb 5, 2025):
Daniel, thank you for taking the time to respond to my feature request. I appreciate the detailed feedback, but I'd like to address a few points and provide additional context to better clarify my request:
Past discussions: I included the past discussions to highlight that this topic has been brought up multiple times, showing ongoing interest and need for improvement in this area. I did not intend to inflate the issue count, but to provide context. Your comment has been noted.
Use case: The background information provided was to illustrate the practical challenges we face in our workflow. The separation of roles between field engineers and network engineers is common in many organizations, and having a clear distinction in permissions and capabilities is crucial for efficient operations. I would be very surprised to find out that only a few organizations face similar challenges.
Editing device permissions: I understand that editing the device requires device permissions. However, in our environment (power utility company), giving field engineers full control over editing devices (even with custom validators) is not ideal due to compliance and security concerns. We need to ensure that field engineers can perform specific tasks without having broader access than necessary. Let's keep the custom validator as a workaround, maybe suitable for other types of enterprises.
Assign to rack vs Creating a new device: I understand that making "assign to rack" a special form would require significant changes to the permissions model. However, I believe that this change would greatly benefit users with similar workflows, reducing unnecessary communication and potential errors. The point I was trying to make is that the current "add device to rack" functionality can be confusing (*). Another example is that users (field engineers) might unintentionally create a new device when they simply want to assign an existing one to a rack. Clarifying this process would improve the user experience.
(*) i always assume the field engineer is using the racks menu for his actions, not the devices one. Right now the racks menu can be used for :
It cannot be used for adding an existing device to a specific rack (Change permission on devices). This can only be accomplished via the devices menu.
Custom script/plugin: Writing a custom script or plugin seems a valid option, but i need to make further research due to limited exposure to netbox internals. In any case, a native solution within NetBox would be more accessible and beneficial to a broader user base.
I'm glad to hear that there is merit in having a more simplified "Assign Device" workflow. I believe that addressing the specific issues identified in this feature request would lead to significant improvements in the usability and flexibility of NetBox for users with similar workflows.
Thank you again for your time and consideration. I hope this clarifies the need for the proposed changes, and I am open to further discussion to find the best solution.
@DanSheps commented on GitHub (Feb 6, 2025):
Thanks for the additional information.