Airflow not shown on device view if only set on the devicetype #8845

Closed
opened 2025-12-29 20:42:00 +01:00 by adam · 5 comments
Owner

Originally created by @PieterL75 on GitHub (Nov 16, 2023).

NetBox version

v3.6.5

Python version

3.10

Steps to Reproduce

  1. Create a devicetype without an airflow
  2. Create a device, based on that devicetype, but leave the airflow undefined
  3. update the devicetype and set an airflow
  4. Open the device page

Expected Behavior

If no airflow is set on the device, but one is set on the devicetype, then the airflow of the devicetype should be shown in the deviceview

Observed Behavior

The airflow is a 'placeholder' (dashes).
it only shows when the airflow is set on the device.

Originally created by @PieterL75 on GitHub (Nov 16, 2023). ### NetBox version v3.6.5 ### Python version 3.10 ### Steps to Reproduce 1. Create a devicetype without an airflow 2. Create a device, based on that devicetype, but leave the airflow undefined 3. update the devicetype and set an airflow 4. Open the device page ### Expected Behavior If no airflow is set on the device, but one is set on the devicetype, then the airflow of the devicetype should be shown in the deviceview ### Observed Behavior The airflow is a 'placeholder' (dashes). it only shows when the airflow is set on the device.
adam added the type: featurepending closurestatus: under reviewcomplexity: medium labels 2025-12-29 20:42:00 +01:00
adam closed this issue 2025-12-29 20:42:00 +01:00
Author
Owner

@jeremystretch commented on GitHub (Nov 28, 2023):

If no airflow is set on the device, but one is set on the devicetype, then the airflow of the devicetype should be shown in the deviceview

This gets a little murky. The device view is showing the value of the device's own airflow field, which happens to be null. While I understand the assumption that this value should "default" to the setting on the assigned device type, this would be dangerous and inaccurate without some canonical logic in place to make that connection. For instance, looking at the device view alone, how would you know if you're seeing the airflow value of the device itself or of the device type? And what if they're both set to different values?

I see a couple options:

  1. Leave the display as-is, and modify the device creation form to default the airflow field to an "inherit" option, which would automatically replicate the new device's airflow field to the value set on the device type. (We'd still want to retain an option for "none" as well.)
  2. Establish some property which represents the inferred value, preferring the local airflow value but defaulting to the device type's airflow value. This would need to be conveyed via the API as well.
@jeremystretch commented on GitHub (Nov 28, 2023): > If no airflow is set on the device, but one is set on the devicetype, then the airflow of the devicetype should be shown in the deviceview This gets a little murky. The device view is showing the value of the device's own `airflow` field, which happens to be null. While I understand the assumption that this value should "default" to the setting on the assigned device type, this would be dangerous and inaccurate without some canonical logic in place to make that connection. For instance, looking at the device view alone, how would you know if you're seeing the airflow value of the device itself or of the device type? And what if they're both set to different values? I see a couple options: 1. Leave the display as-is, and modify the device creation form to default the airflow field to an "inherit" option, which would automatically replicate the new device's `airflow` field to the value set on the device type. (We'd still want to retain an option for "none" as well.) 2. Establish some property which represents the inferred value, preferring the local `airflow` value but defaulting to the device type's `airflow` value. This would need to be conveyed via the API as well.
Author
Owner

@PieterL75 commented on GitHub (Nov 29, 2023):

The second option comes closest to what I have in mind.
It kind of makes sense, that the device's airflow overrides the device type's airflow.
Maybe if this is clearly documented?

What does the current api call is a device gives you, when getting the airflow? When none is set on the device, or when the device has a different airflow than the device type

Pierer

@PieterL75 commented on GitHub (Nov 29, 2023): The second option comes closest to what I have in mind. It kind of makes sense, that the device's airflow overrides the device type's airflow. Maybe if this is clearly documented? What does the current api call is a device gives you, when getting the airflow? When none is set on the device, or when the device has a different airflow than the device type Pierer
Author
Owner

@jeremystretch commented on GitHub (Dec 7, 2023):

What does the current api call is a device gives you, when getting the airflow?

The API representation of a device will always show the value of its own airflow field.

I'm going to reclassify this as a feature request, as the current behavior is technically working as designed.

@jeremystretch commented on GitHub (Dec 7, 2023): > What does the current api call is a device gives you, when getting the airflow? The API representation of a device will always show the value of its own `airflow` field. I'm going to reclassify this as a feature request, as the current behavior is technically working as designed.
Author
Owner

@github-actions[bot] commented on GitHub (Aug 22, 2024):

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. NetBox is governed by a small group of core maintainers which means not all opened issues may receive direct feedback. Do not attempt to circumvent this process by "bumping" the issue; doing so will result in its immediate closure and you may be barred from participating in any future discussions. Please see our contributing guide.

@github-actions[bot] commented on GitHub (Aug 22, 2024): This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. NetBox is governed by a small group of core maintainers which means not all opened issues may receive direct feedback. **Do not** attempt to circumvent this process by "bumping" the issue; doing so will result in its immediate closure and you may be barred from participating in any future discussions. Please see our [contributing guide](https://github.com/netbox-community/netbox/blob/develop/CONTRIBUTING.md).
Author
Owner

@github-actions[bot] commented on GitHub (Sep 21, 2024):

This issue has been automatically closed due to lack of activity. In an effort to reduce noise, please do not comment any further. Note that the core maintainers may elect to reopen this issue at a later date if deemed necessary.

@github-actions[bot] commented on GitHub (Sep 21, 2024): This issue has been automatically closed due to lack of activity. In an effort to reduce noise, please do not comment any further. Note that the core maintainers may elect to reopen this issue at a later date if deemed necessary.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/netbox#8845