mirror of
https://github.com/netbox-community/netbox.git
synced 2026-01-11 21:10:29 +01:00
Add device field to indicate airflow #3115
Closed
opened 2025-12-29 18:25:48 +01:00 by adam
·
19 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
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/netbox#3115
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 @ryanmerolle on GitHub (Jan 3, 2020).
Originally assigned to: @jeremystretch on GitHub.
Environment
Proposed Functionality
Though we can model airflow / FAN model numbers in the inventory of a device, not everyone is going to do this. It just might be more ideal to signify in an optional field of the device. Additionally, one could also add the type to the deviceType model, for platforms that do not have swappable fans. At the very least, adding it to device model should be enough.
Relates to #3825
Use Case
There is no standard way the industry signifies airflow direction. Some platforms hardcode the airflow in the model number, some dynamically adjust
show versionmodel number with a -F or -R, some just indicate the airflow direction in a bundle SKU not seen in the device's OS, and some combine all of the above methods.Database Changes
Add a new data model type with the fields mentioned in the proposed functionality.
External Dependencies
N/A
@tb-killa commented on GitHub (Jan 8, 2020):
After some consideration and the insight in other DCIM tools, this FR should also be extended to the rack model, because ultimately the rack represents the actual airflow in a data center (front to back / back to front). In order to push things to the absolute limit, a default setting should be possible (e.g. Front to Back), but if more than 50% of the devices set up in the rack have an airflow (for eg. Back to Front), this direction is automatically preferred.
As soon as airflow is available on the rack model, the issue: https://github.com/netbox-community/netbox/issues/114 can be edited.
@walday commented on GitHub (Jan 21, 2020):
I need.. for this field in device and rack model.. in DC happens and the option of air movement in the front-to-side.. and this requiment air organisation tool.
@ryanmerolle commented on GitHub (Feb 24, 2020):
Rack airflow seems to make sense. @jeremystretch let me know if you need any more feedback or thought on the data model. I think to our earlier conversation on slack, a simple drop down indicator field for the device (and rack if you decide it to be needed) would work just fine. If you apply to both, people could create reports/scripts to check that all devices in a rack are facing the proper way based on the airflow of the device, the front of the device, and the airflow of the rack. Further down the road, fans in the device inventory could be tracked against these feilds.
@tiagoasousa commented on GitHub (Jun 9, 2020):
Is this something i could contribute in some way? is a field that for where i am would be very usefull because i have rows of front to back (mostly compute rows) and back to front on the same datacenter. A standard way to document this would be very useful even for capacity management (buying the correct gear for the correct place)
@jeremystretch commented on GitHub (Jul 24, 2020):
This seems like it's still half-baked. There are several details that need to be nailed down before this is actionable:
@tb-killa commented on GitHub (Aug 6, 2020):
The Device-Model should be extended with one field called "airflow-direction" who should select two states (front-to-back / back-to-front).
If someone document devices in netbox or physical in one rack he knows about the airflow themselves (hopefully after he bring the device online and feel the flow).
i think validations are somthing wo could be great running via plugin or reporting script, the first stepp should be here to provide an direct way of documentation.
@ryanmerolle commented on GitHub (Aug 9, 2020):
You mean this? https://github.com/netbox-community/netbox/issues/3839
On Thu, Aug 6, 2020 at 5:35 AM Oliver notifications@github.com wrote:
@jeremystretch commented on GitHub (Sep 1, 2020):
I'm going to mark this as tentatively accepted (awaiting milestone designation) with the following assumptions:
airflowfield will be added to the DeviceType model. This can be front-to-back, back-to-front, or null (default).@BarbarossaTM commented on GitHub (Oct 15, 2020):
Hi,
I would like to propose two values for this option:
left-to-rightandright-to-leftThere are devices like Cisco Catalyst 4900-M which sadly don't to front-to-back or back-to-front but side-to-side, which might require some magic to happen in data centers.
@hchybz commented on GitHub (Nov 3, 2020):
Working on HPC clusters .. where all cables are in front ... thus network switches have non-standard airflow (and racked at front)
Need that field !
@991jo commented on GitHub (Nov 3, 2020):
side-to-backis also a airflow direction that I have seen in the field. Usually on access switches. At least some of the (tbh rather old) 3560/3750 G/E models have that.@bellwood commented on GitHub (Aug 6, 2021):
I suppose if we're going to model all the various directions, could we add
PassiveorNonefor devices that have no fans or defined airflow pattern?Just as an aside, "front" and "back" are somewhat ambiguous terms, Cisco nomenclature is, typically, Port Side Intake or Port Side Exhaust.
@tb-killa commented on GitHub (Aug 10, 2021):
If this Part is implemented we should rework the "Device Templates" also to introduce this field informations :)
@jeremystretch commented on GitHub (Oct 12, 2021):
Rather than trying to capture all potential combinations of inlet and exhaust, maybe it would be sufficient to just denote the exhaust. For example:
@ryanmerolle what are your thoughts?
@BarbarossaTM commented on GitHub (Oct 12, 2021):
Depending on the architecture of the DC both inlet and exhaust might be relevant. If you have cold-aisle containment you may need to fiddle around with some metal/tape to make cold air flow to the side of a device or care about inlet, if you have hot-aisle containment it's the other way around. I think it would be best to to have te
options, so everyone can make use of them. This will come at the cost of adding options later on as we probably might miss some esoteric ones on the 1st shot :-)
@zombah commented on GitHub (Oct 13, 2021):
There are device's which mix multiple airflow directions in one box, f.e. Juniper MX480 which have left to right for card slots and front to back for power modules.
@991jo commented on GitHub (Oct 13, 2021):
maybe we don't need an airflow direction but intake and exhaust sides of the device? (there can possibly be multiple of those)
the example from @zombah would then have an intake on the left and front and exhausts in the right and back.
@jeremystretch commented on GitHub (Oct 14, 2021):
In the interest of moving forward with this, I'm going to commit to adding an optional ChoiceField named
airflowto both the DeviceType and Device models, with the following options:front-to-rearrear-to-frontleft-ro-rightright-to-leftside-to-rearpassiveIf defined on a DeviceType, this value will be automatically replicated to instantiated Devices, however the user will be able to modify it independently. (This may be needed e.g. when swapping AFI/AFO power supplies and fans within the device.)
This approach seems like it will cover all the concerns raised here. There will be an opportunity to collect feedback during the v3.1 beta period as well.
@ryanmerolle commented on GitHub (Oct 14, 2021):
I total agree with the approach given the comments added. Some platforms can change the airflow direction with a FAN and/or PSU swap, some platforms can change their airflow with reversible fans, and etc. Furthermore, some vendors change the full model name of the device based on the current airflow with airflow signifiers at the end of the model name.
I should have done a better job of articulating that this should be optional, and really @jeremystretch your model is exactly how I envisioned it working.