#22447: Pre-release QA - #22908
Conversation
Add the missing `cooling_outflow` GraphQL filter on CoolingIntake, so an intake can be filtered by its upstream outflow. CoolingOutflow already exposes the reverse `cooling_intake` filter and the REST filterset already carries `cooling_outflow_id`; the GraphQL intake filter was the only side missing it. Correct the CoolingIntake docstring, which referenced a direct CoolingFeed relationship that does not exist. The serving feed is derived from the device's rack, not stored on the intake.
|
Claude finished @jnovinger's task in 5m 31s —— View job Review: #22447 Pre-release QA
On the diff itselfBoth changes are correct, no objections.
Gaps of the same class still open in the FRThese are all the mirror image of what this PR just fixed — one side of the intake/outflow relationship wired up, the other side missed. Flagging since this is the pre-beta pass. 1. UI filter form is missing
2.
3. The device-type YAML JSON schema knows nothing about cooling — this one is worth catching before beta, since the
Note the release checklist's "regenerate One thing to confirm rather than change
Nothing else foundModel, serializer, REST filterset, filter form, table --- • branch |
Address the same-class gaps surfaced in review, all mirror images of the intake/outflow filter parity already fixed: Add the `cooling_intake_id` filter to CoolingOutflowFilterForm and CoolingOutflowTemplateFilterForm. The underlying filtersets already carried `cooling_intake_id` and GraphQL supported it, but the list-view filter panel did not expose it, so an outflow could not be filtered by its downstream intake from the UI. Add `cooling_outflow` to the default columns on CoolingIntakeTable and DeviceCoolingIntakeTable. The outflow tables already default-show `cooling_intake`; the intake tables hid the reverse, so the same relationship displayed inconsistently between the two sides. Note in the CoolingIntake docstring why CoolingIntakeTemplate has no upstream-outflow field: an intake's outflow normally lives on a different device (a CDU), which a device-type template cannot express.
Fixed in af3c7cf. Added
Fixed in af3c7cf. Added
Real and worth catching before beta, but it's a larger change (schema template +
Confirmed deliberate. Added a note to the |
Closes: #22447
Follow-up QA for the cooling infrastructure feature added in #22517.
Two small fixes found while QA'ing the feature:
Add the missing
cooling_outflowGraphQL filter on CoolingIntakeCoolingIntakeFilterdid not exposecooling_outflow/cooling_outflow_id, so an intake could not be filtered by its upstream outflow in GraphQL. The reverse direction (CoolingOutflowFilter.cooling_intake) and the REST filterset (cooling_outflow_id) already supported this; the GraphQL intake filter was the only side missing it.Correct the CoolingIntake docstring
The docstring stated a CoolingIntake is supplied by an upstream
CoolingOutfloworCoolingFeed. There is no direct feed relationship: the serving feed is derived from the device's rack, not stored on the intake.Testing
Covered by the existing
CoolingIntakeTestCase(API + auto-generated GraphQL filter tests), which passes with the new filter. Verified live via schema introspection that the two filter fields now appear onCoolingIntakeFilter.