Child device using multiple bays #513

Closed
opened 2025-12-29 16:22:45 +01:00 by adam · 6 comments
Owner

Originally created by @quentinsch on GitHub (Nov 1, 2016).

In some cases it is necessary to occupy multiple bays with one child device in a parent device. For example, if you have a blade with uses two bays in an enclosure.
So it would be nice if you can select which bays are occupied by the child device.
In the screenshot below the first blade use bay 5 and bay 13, the next one 6 and 14 and so on.

schermafbeelding 2016-11-01 om 15 25 03

Originally created by @quentinsch on GitHub (Nov 1, 2016). In some cases it is necessary to occupy multiple bays with one child device in a parent device. For example, if you have a blade with uses two bays in an enclosure. So it would be nice if you can select which bays are occupied by the child device. In the screenshot below the first blade use bay 5 and bay 13, the next one 6 and 14 and so on. ![schermafbeelding 2016-11-01 om 15 25 03](https://cloud.githubusercontent.com/assets/7438854/19892977/b69907f6-a047-11e6-841c-05bac3777591.png)
adam closed this issue 2025-12-29 16:22:45 +01:00
Author
Owner

@jeremystretch commented on GitHub (Nov 1, 2016):

I'm not sure it's worth extending the data model and validation to support what I imagine is a fairly uncommon use case. A reasonable workaround might be to simply assign the installed modules to the lower-numbered bays and optionally delete the higher-numbered bays from NetBox.

@jeremystretch commented on GitHub (Nov 1, 2016): I'm not sure it's worth extending the data model and validation to support what I imagine is a fairly uncommon use case. A reasonable workaround might be to simply assign the installed modules to the lower-numbered bays and optionally delete the higher-numbered bays from NetBox.
Author
Owner

@quentinsch commented on GitHub (Nov 2, 2016):

Thanks for the workaround, I'll take a look if this could work for me.
I do think this is mainstream hardware and will be quite common in a lot of situations for other people. In this case it is a standard HP C7000 enclosure with HP BL685c blades which are used quite a lot around the world.

@quentinsch commented on GitHub (Nov 2, 2016): Thanks for the workaround, I'll take a look if this could work for me. I do think this is mainstream hardware and will be quite common in a lot of situations for other people. In this case it is a standard HP C7000 enclosure with HP BL685c blades which are used quite a lot around the world.
Author
Owner

@mlorentz75 commented on GitHub (Nov 3, 2016):

Consider the DELL M1000e which has 16 slots in 2 rows (1-8, 9-16). There are double height CPU blades like the M820 and there's a double width storage blade, the Equallogic PSM4110E. It would be nice if this could be documented correctly in Netbox. A single DELL M820 occupying for example slots 1 and 9 can also make use of the backplane, usually ethernet ports of both slots. Wouldn't be right to leave slot 9 empty or delete it as suggested or put a fake blade into that slot in Netbox in my opinion.

IBM Bladecenter has optional storage extensions housing two hard disks which are mounted onto CPU blades and occupy the next slot but these don't use backplane ports of the second slot.

Though not that common, there are some network elements in the telecoms world like DSLAMs where line cards in chassis are sometimes double wide.

@mlorentz75 commented on GitHub (Nov 3, 2016): Consider the DELL M1000e which has 16 slots in 2 rows (1-8, 9-16). There are double height CPU blades like the M820 and there's a double width storage blade, the Equallogic PSM4110E. It would be nice if this could be documented correctly in Netbox. A single DELL M820 occupying for example slots 1 and 9 can also make use of the backplane, usually ethernet ports of both slots. Wouldn't be right to leave slot 9 empty or delete it as suggested or put a fake blade into that slot in Netbox in my opinion. IBM Bladecenter has optional storage extensions housing two hard disks which are mounted onto CPU blades and occupy the next slot but these don't use backplane ports of the second slot. Though not that common, there are some network elements in the telecoms world like DSLAMs where line cards in chassis are sometimes double wide.
Author
Owner

@jeremystretch commented on GitHub (Nov 14, 2016):

After thinking about this some more, it's too much complexity to introduce just to track a corner case. The suggested workaround is to simply leave the secondary slot blank, or just delete it from the parent device.

Though not that common, there are some network elements in the telecoms world like DSLAMs where line cards in chassis are sometimes double wide.

These are line cards, though, which would be represented as modules, not as child devices with their own control planes.

@jeremystretch commented on GitHub (Nov 14, 2016): After thinking about this some more, it's too much complexity to introduce just to track a corner case. The suggested workaround is to simply leave the secondary slot blank, or just delete it from the parent device. > Though not that common, there are some network elements in the telecoms world like DSLAMs where line cards in chassis are sometimes double wide. These are line cards, though, which would be represented as modules, not as child devices with their own control planes.
Author
Owner

@ThePJMan commented on GitHub (Jan 20, 2017):

Hello,
Just to clarify, Blades are not "uncommon" Almost every datacenter has these and in every case the chassis are shared with full height or half height Blades.

The code for this is not very complex but I think you might be looking at it from the wrong perspective.
Or might not know how to deal with it.

To accomplish this what you need do to is in the Device type creation, if the "child" option is selected you need to add an additional field to select FULL or Half height

The code logic is then simple, if its FULL it means it used 2 slots, if its Half it uses only 1 slot.
You'd also have to add a field for the Chassis (the parent) where you would specify the "span" to be horizontal or vertical. This depends on the chassis. Most cases are Vertical though.

Anyways the code from there would be quite simple. If the child is FULL then you populate the bottom Bay with a blank that says "Extension of Slot-X" and prevent the ability to add a device in that slot.
To know which slot is the extension is also quite simple. Divide the total Bay number by 2 this give you the total number of bays in each "row" for example a chassis with 16 bays has 2 rows of 8 bays (Half height) or 16 full height bays
If you populate bay 5 with a FULL height blade, simply add 8 (total number of bay per row) and you get 13 which is the bottom bay and assign a blank extension to slot 13 making sure to disable the ability to assign another child to that slot as long as the other slot is populated

Pretty simple

@ThePJMan commented on GitHub (Jan 20, 2017): Hello, Just to clarify, Blades are not "uncommon" Almost every datacenter has these and in every case the chassis are shared with full height or half height Blades. The code for this is not very complex but I think you might be looking at it from the wrong perspective. Or might not know how to deal with it. To accomplish this what you need do to is in the Device type creation, if the "child" option is selected you need to add an additional field to select FULL or Half height The code logic is then simple, if its FULL it means it used 2 slots, if its Half it uses only 1 slot. You'd also have to add a field for the Chassis (the parent) where you would specify the "span" to be horizontal or vertical. This depends on the chassis. Most cases are Vertical though. Anyways the code from there would be quite simple. If the child is FULL then you populate the bottom Bay with a blank that says "Extension of Slot-X" and prevent the ability to add a device in that slot. To know which slot is the extension is also quite simple. Divide the total Bay number by 2 this give you the total number of bays in each "row" for example a chassis with 16 bays has 2 rows of 8 bays (Half height) or 16 full height bays If you populate bay 5 with a FULL height blade, simply add 8 (total number of bay per row) and you get 13 which is the bottom bay and assign a blank extension to slot 13 making sure to disable the ability to assign another child to that slot as long as the other slot is populated Pretty simple
Author
Owner

@jeremystretch commented on GitHub (Jan 20, 2017):

@ThePJMan You're certainly welcome to submit a pull request and I'll take a look.

@jeremystretch commented on GitHub (Jan 20, 2017): @ThePJMan You're certainly welcome to submit a pull request and I'll take a look.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/netbox#513