Better visualisation of Parent/Child devices in rack view #1574

Closed
opened 2025-12-29 16:33:06 +01:00 by adam · 5 comments
Owner

Originally created by @callumstrubi on GitHub (Feb 26, 2018).

Issue type

[x] Feature request
[] Bug report
[] Documentation

Environment

  • Python version: 3.4.5
  • NetBox version: 2.2.10

Description

For service providers with large numbers of blade chassis, Netbox currently provides a fairly poor overview of blade management. This could be improved by better visualisation of child devices loaded into device bays on the elevation views. An example of a blade chassis view in RackTables is attached.

screen shot 2018-02-26 at 14 51 13

Originally created by @callumstrubi on GitHub (Feb 26, 2018). <!-- Before opening a new issue, please search through the existing issues to see if your topic has already been addressed. Note that you may need to remove the "is:open" filter from the search bar to include closed issues. Check the appropriate type for your issue below by placing an x between the brackets. For assistance with installation issues, or for any other issues other than those listed below, please raise your topic for discussion on our mailing list: https://groups.google.com/forum/#!forum/netbox-discuss Please note that issues which do not fall under any of the below categories will be closed. Due to an excessive backlog of feature requests, we are not currently accepting any proposals which extend NetBox's feature scope. Do not prepend any sort of tag to your issue's title. An administrator will review your issue and assign labels as appropriate. ---> ### Issue type [x] Feature request <!-- An enhancement of existing functionality --> [] Bug report <!-- Unexpected or erroneous behavior --> [] Documentation <!-- A modification to the documentation --> <!-- Please describe the environment in which you are running NetBox. (Be sure to verify that you are running the latest stable release of NetBox before submitting a bug report.) If you are submitting a bug report and have made any changes to the code base, please first validate that your bug can be recreated while running an official release. --> ### Environment * Python version: 3.4.5<!-- Example: 3.5.4 --> * NetBox version: 2.2.10 <!-- Example: 2.1.3 --> <!-- BUG REPORTS must include: * A list of the steps needed for someone else to reproduce the bug * A description of the expected and observed behavior * Any relevant error messages (screenshots may also help) FEATURE REQUESTS must include: * A detailed description of the proposed functionality * A use case for the new feature * A rough description of any necessary changes to the database schema * Any relevant third-party libraries which would be needed --> ### Description For service providers with large numbers of blade chassis, Netbox currently provides a fairly poor overview of blade management. This could be improved by better visualisation of child devices loaded into device bays on the elevation views. An example of a blade chassis view in RackTables is attached. ![screen shot 2018-02-26 at 14 51 13](https://user-images.githubusercontent.com/5045779/36677115-4e245f9c-1b05-11e8-8f72-031a2c05f50c.png)
adam added the type: feature label 2025-12-29 16:33:06 +01:00
adam closed this issue 2025-12-29 16:33:06 +01:00
Author
Owner

@jeremystretch commented on GitHub (Feb 26, 2018):

There are two reasons NetBox doesn't do this. First, this only works when the parent device is large enough to accommodate the number of child devices installed. For example, a 1U device with four bays does not have enough screen space to include the name of each child device.

Second, additional fields are needed to indicate the layout of bays (left-to-right vs top-to-bottom, horizontal vs vertical, etc.). RackTables partially handles this with a tuple:

When adding a chassis HW type to the dictionary, the dimensions may be specified as follows: %L<rows>,<cols>[<layout>]%

It just seems like a lot of overhead for not much functional benefit.

@jeremystretch commented on GitHub (Feb 26, 2018): There are two reasons NetBox doesn't do this. First, this only works when the parent device is large enough to accommodate the number of child devices installed. For example, a 1U device with four bays does not have enough screen space to include the name of each child device. Second, additional fields are needed to indicate the layout of bays (left-to-right vs top-to-bottom, horizontal vs vertical, etc.). RackTables partially handles this with a tuple: > When adding a chassis HW type to the dictionary, the dimensions may be specified as follows: `%L<rows>,<cols>[<layout>]%` It just seems like a lot of overhead for not much functional benefit.
Author
Owner

@callumstrubi commented on GitHub (Feb 26, 2018):

When your entire infrastructure is in blade chassis and you want an overview of what node range is roughly in each chassis having this overview at the front is a really damn useful thing. I agree that the concept of layout gets complicated - actually layout isn't that important though (as a user). If i have 120 nodes in 30 fat-twin chassis, which node is in which chassis is complicated. Where it is in that chassis when i get to the rack, is something I'm happy to manage while stood in front of the thing.

Another complication of layout (which again is why I suggest layout is irrelevant) is when you consider something like a super micro chassis where you have two controllers on the back and two PSUs, and then your disks are on the front. Do you consider that a front-facing or back-facing server etc. Essentially all I think is required is the ability to evenly space nodes across a chassis so they display well, irrelevant of their actual physical configuration. Lets be honest, keeping a node's physical location within a chassis accurate is an administrative overhead too far as it is.

So, my proposal would be to ignore layout considerations in favour of a "diagrammatic view" that allows you to simply see a parent device's contents at the top level (links to the devices optional). I don't know of many 1U chassis off hand, and 2U is plenty of screen realestate to give the parent a line of its own and each child a box on the row below.

@callumstrubi commented on GitHub (Feb 26, 2018): When your entire infrastructure is in blade chassis and you want an overview of what node range is roughly in each chassis having this overview at the front is a really damn useful thing. I agree that the concept of layout gets complicated - actually layout isn't that important though (as a user). If i have 120 nodes in 30 fat-twin chassis, which node is in which chassis is complicated. Where it is in that chassis when i get to the rack, is something I'm happy to manage while stood in front of the thing. Another complication of layout (which again is why I suggest layout is irrelevant) is when you consider something like a super micro chassis where you have two controllers on the back and two PSUs, and then your disks are on the front. Do you consider that a front-facing or back-facing server etc. Essentially all I think is required is the ability to evenly space nodes across a chassis so they display well, irrelevant of their actual physical configuration. Lets be honest, keeping a node's physical location within a chassis accurate is an administrative overhead too far as it is. So, my proposal would be to ignore layout considerations in favour of a "diagrammatic view" that allows you to simply see a parent device's contents at the top level (links to the devices optional). I don't know of many 1U chassis off hand, and 2U is plenty of screen realestate to give the parent a line of its own and each child a box on the row below.
Author
Owner

@callumstrubi commented on GitHub (Feb 27, 2018):

I've attached a proof of concept I knocked up - note that the layout of the blades is obviously completely different to the actual chassis layout.
screen shot 2018-02-27 at 09 15 37

@callumstrubi commented on GitHub (Feb 27, 2018): I've attached a proof of concept I knocked up - note that the layout of the blades is obviously completely different to the actual chassis layout. <img width="501" alt="screen shot 2018-02-27 at 09 15 37" src="https://user-images.githubusercontent.com/5045779/36720194-349e8008-1b9f-11e8-8a11-948eb3012901.png">
Author
Owner

@ankerstal commented on GitHub (May 7, 2018):

I would also love this feature, since we have thousands of servers where multiple servers are in the same chassis. This also relates to #1998 where I want to be able to see which servers are failed in the rack overview even if they are child devices.

@ankerstal commented on GitHub (May 7, 2018): I would also love this feature, since we have thousands of servers where multiple servers are in the same chassis. This also relates to #1998 where I want to be able to see which servers are failed in the rack overview even if they are child devices.
Author
Owner

@jeremystretch commented on GitHub (Jul 18, 2018):

So, my proposal would be to ignore layout considerations in favour of a "diagrammatic view" that allows you to simply see a parent device's contents at the top level (links to the devices optional).

This still doesn't overcome the screen space limitations. The example above conveniently uses eight-character names for child devices. Longer names would at best be truncated, often to the point of being identical. And don't forget you need to include the parent device name as well.

I don't know of many 1U chassis off hand

We have in common use a 1U piece of network gear which has four device bays. (Yes, device bays, not modules.)

I'm going to close this out as I don't think we can reasonably implement it inside the rather obtuse approach we currently use to render rack elevations. (I won't spoil the surprise; have a look at the code.) However, the idea was raised in #1529 (see #2248) of using the HTML5 canvas to draw elevations. This would be much more flexible, allowing much finer control over each element within an elevation. It would make sense to revisit this proposal at that point.

@jeremystretch commented on GitHub (Jul 18, 2018): > So, my proposal would be to ignore layout considerations in favour of a "diagrammatic view" that allows you to simply see a parent device's contents at the top level (links to the devices optional). This still doesn't overcome the screen space limitations. The example above conveniently uses eight-character names for child devices. Longer names would at best be truncated, often to the point of being identical. And don't forget you need to include the parent device name as well. > I don't know of many 1U chassis off hand We have in common use a 1U piece of network gear which has four device bays. (Yes, device bays, not modules.) I'm going to close this out as I don't think we can reasonably implement it inside the rather obtuse approach we currently use to render rack elevations. (I won't spoil the surprise; have a look at the code.) However, the idea was raised in ~#1529~ (see #2248) of using the HTML5 canvas to draw elevations. This would be *much* more flexible, allowing much finer control over each element within an elevation. It would make sense to revisit this proposal at that point.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/netbox#1574