Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Airflow attribute for PSU and fan modules #11969

Closed
jbemmel opened this issue Mar 13, 2023 · 6 comments
Closed

Airflow attribute for PSU and fan modules #11969

jbemmel opened this issue Mar 13, 2023 · 6 comments
Assignees
Labels
complexity: medium Requires a substantial but not unusual amount of effort to implement status: accepted This issue has been accepted for implementation type: feature Introduction of new functionality to the application
Milestone

Comments

@jbemmel
Copy link

jbemmel commented Mar 13, 2023

NetBox version

latest

Feature type

Data model extension

Proposed functionality

The schema at https://github.com/netbox-community/devicetype-library/blob/master/schema/moduletype.json currently does not allow 'airflow' attributes.

Assuming that is in line with what's currently in Netbox, I'd like to propose adding 'airflow' support for modules and racks

In typical systems, fan and psu modules have a specific airflow direction. It is not a property of the base system - it depends on the modules being used. Moreover, data centers are designed with a specific airflow in mind - this 'design intent' should be captured and used to reduce provisioning errors, by disallowing combinations of devices with incompatible airflow in the same rack (and similar for modules in the same device)

Use case

Supporting 'airflow' at the module and rack level allows for proper modeling of the system. The rack level 'airflow' would allow users to specify a filter for the devices and modules to be installed in that rack

Database changes

Adds 'airflow' field per module/rack (as a mixin, like weight), plus logic to validate that all modules added support the same airflow direction, and filtering of module_types presented given a device in a rack with specified airflow

External dependencies

none

@danner26
Copy link
Member

I absolutely agree, we do need to add airflow as a property to modules as well

@jeremystretch jeremystretch added the needs milestone Awaiting prioritization for inclusion with a future NetBox release label Mar 16, 2023
@PieterL75
Copy link
Contributor

Maybe a check also ? that if the device is has a certain airflow, that the modules have to have the same ?
Not sure if that is always a good idea...

@jeremystretch
Copy link
Member

How would these values map to the options for device airflow?

@danner26
Copy link
Member

As a rough idea, we could have an airflow attribute on devices called something like airflow: module-regulated which then on the NetBox backend is determined by the installed modules which have the airflow attribute to specify the direction

Working with the devicetype-library I have noticed a lot of switches chassis' will have a sku for no PSU/FANs, and then depending on which PSU is installed that determins the direction of the airflow

@jeremystretch jeremystretch added status: backlog Awaiting selection for work complexity: medium Requires a substantial but not unusual amount of effort to implement labels May 21, 2024
@jeffgdotorg jeffgdotorg added this to the v4.1 milestone May 31, 2024
@jeffgdotorg jeffgdotorg removed the needs milestone Awaiting prioritization for inclusion with a future NetBox release label Jun 7, 2024
@arthanson
Copy link
Collaborator

@jeremystretch Would this then have the same airflow choices as Device (below), and if-so, if Mixed would the filter allow all device airflow in, also for devices without airflow defined, would they be allowed to be in the rack if airflow was set on the rack? Would the logic be that airflow for rack / device has to match unless it is Mixed or Passive?

    CHOICES = (
        (AIRFLOW_FRONT_TO_REAR, _('Front to rear')),
        (AIRFLOW_REAR_TO_FRONT, _('Rear to front')),
        (AIRFLOW_LEFT_TO_RIGHT, _('Left to right')),
        (AIRFLOW_RIGHT_TO_LEFT, _('Right to left')),
        (AIRFLOW_SIDE_TO_REAR, _('Side to rear')),
        (AIRFLOW_PASSIVE, _('Passive')),
        (AIRFLOW_MIXED, _('Mixed')),
    )

@jeremystretch
Copy link
Member

I think we'd omit "mixed" as a choice for individual modules. (It's never made sense to me personally.) The other options should all be retained.

@jeremystretch jeremystretch added status: accepted This issue has been accepted for implementation and removed status: backlog Awaiting selection for work labels Jul 24, 2024
jeremystretch added a commit that referenced this issue Aug 29, 2024
* Shorten choice constant names

* Add filter tests for airflow
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Oct 24, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
complexity: medium Requires a substantial but not unusual amount of effort to implement status: accepted This issue has been accepted for implementation type: feature Introduction of new functionality to the application
Projects
None yet
Development

No branches or pull requests

6 participants