Nested Racks, or Rack Adapters #1721

Closed
opened 2026-04-06 07:46:57 +02:00 by MrUnknownDE · 0 comments
Owner

Originally created by @4o66 on 6/26/2025

NetBox version

v4.3.1

Feature type

New functionality

Proposed functionality

I work at an ISP. Because of legacy Telco standards, we have many sites with 23" wide racks. Some devices, Like DC PDUs, some switches, etc., have 23" rack ears, while newer equipment only has 19" rack ears. When we do need to mount 19" only equipment, we use rack adapters to reduce the width. If we know there may be a future need, we will get reducers for 5-10RU, even we only need 1 or 2 RU of reduced width.

In all cases, I can account for this in netbox today by making adapter devices that are "parent", but I then need to set all other devices as child, which is not likely to work for all users of netbox. Additionally, the device bays don't relate to U spaces.

Use case

For users that have multiple rack widths, and utilize physical adapters to adapt portions of racks, this would allow making sections of a rack into a sub-rack. This would alter the display of the rack elevation, and allow for tracking of how many RU are adapted and populated or free. It would be possible to see and add equipment to the open sub-slots. It should (unless elected as a checkbox) not permit devices who's U height exceeds available space to be mounted. (A 2U device could be mounted at the top U of an adapter and occupy the top U and the U directly above the adapter. Not great to do in practice, but the real world is messy.)

Database changes

Database structure may need to allow for a child/parent relationship of racks to other racks, with U height and starting U.

Subrack2 is a child of Rack100.05, and is 5U high, and begins at U24 of Rack100.05.

External dependencies

Unlikely to require a new dependency.

*Originally created by @4o66 on 6/26/2025* ### NetBox version v4.3.1 ### Feature type New functionality ### Proposed functionality I work at an ISP. Because of legacy Telco standards, we have many sites with 23" wide racks. Some devices, Like DC PDUs, some switches, etc., have 23" rack ears, while newer equipment only has 19" rack ears. When we do need to mount 19" only equipment, we use rack adapters to reduce the width. If we know there may be a future need, we will get reducers for 5-10RU, even we only need 1 or 2 RU of reduced width. In all cases, I can account for this in netbox today by making adapter devices that are "parent", but I then need to set all other devices as child, which is not likely to work for all users of netbox. Additionally, the device bays don't relate to U spaces. ### Use case For users that have multiple rack widths, and utilize physical adapters to adapt portions of racks, this would allow making sections of a rack into a sub-rack. This would alter the display of the rack elevation, and allow for tracking of how many RU are adapted and populated or free. It would be possible to see and add equipment to the open sub-slots. It should (unless elected as a checkbox) not permit devices who's U height exceeds available space to be mounted. (A 2U device could be mounted at the top U of an adapter and occupy the top U and the U directly above the adapter. Not great to do in practice, but the real world is messy.) ### Database changes Database structure may need to allow for a child/parent relationship of racks to other racks, with U height and starting U. Subrack2 is a child of Rack100.05, and is 5U high, and begins at U24 of Rack100.05. ### External dependencies Unlikely to require a new dependency.
MrUnknownDE added the status: duplicatetype: featurestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatestatus: duplicatetype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: feature labels 2026-04-06 07:48:22 +02:00
Sign in to join this conversation.
No Label status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate status: duplicate type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github/netbox#1721