From b240d5149133d7cd9f8a73e9211bc3f3675280b6 Mon Sep 17 00:00:00 2001 From: Mick Jones Date: Wed, 8 Dec 2021 16:28:57 -0600 Subject: [PATCH 1/8] Create OCPImmersionCoolingHardwareManagement.v0_0_1.json --- ...rsionCoolingHardwareManagement.v0_0_1.json | 337 ++++++++++++++++++ 1 file changed, 337 insertions(+) create mode 100644 ImmersionCooling/OCPImmersionCoolingHardwareManagement.v0_0_1.json diff --git a/ImmersionCooling/OCPImmersionCoolingHardwareManagement.v0_0_1.json b/ImmersionCooling/OCPImmersionCoolingHardwareManagement.v0_0_1.json new file mode 100644 index 0000000..e24c41c --- /dev/null +++ b/ImmersionCooling/OCPImmersionCoolingHardwareManagement.v0_0_1.json @@ -0,0 +1,337 @@ +{ + "SchemaDefinition": "RedfishInteroperabilityProfile.v1_0_0", + "ProfileName": "OCPDoorHeatExchangerController", + "ProfileVersion": "0.5.0", + "Purpose": "Profile for the OCP Door Heat Exchanger Controller.", + "OwningEntity": "Open Compute Project", + "ContactInfo": "redfish@opencompute.org", + "RequiredProfiles": { + "OCPBaselineHardwareManagement": { + "MinVersion": "1.0.0" + } + }, + "Resources": { + "Chassis": { + "MinVersion": "1.15.0", + "PropertyRequirements": { + "AssetTag": {}, + "ChassisType": { + "Purpose": "Need to know the type of the Chassis", + "Values": [ + "Enclosure, Other, Rack, RackMount, Sidecar, StandAlone" + ] + }, + "Controls": { + "ReadRequirement": "Recommended" + }, + "PartNumber": { + "ConditionalRequirements": [ + { + "Purpose": "Either PartNumber or SKU (or both) must be implemented.", + "CompareProperty": "SKU", + "Comparison": "Absent", + "ReadRequirement": "Mandatory" + } + ] + }, + "Power": { + "Purpose": "Reference to subordinate Power resource." + }, + "PowerState": {}, + "SKU": { + "ReadRequirement": "Recommended", + "ConditionalRequirements": [ + { + "Purpose": "Either PartNumber or SKU (or both) must be implemented.", + "CompareProperty": "PartNumber", + "Comparison": "Absent", + "ReadRequirement": "Mandatory" + } + ] + }, + "SerialNumber": {}, + "Status": { + "PropertyRequirements": { + "State": {}, + "Health": {} + } + }, + "Thermal": { + "Purpose": "Reference to subordinate Thermal resource." + } + }, + "ActionRequirements": { + "Reset": { + "Purpose": "To monitor the power state of the Door Heat Exchanger.", + "Parameters": { + "ResetType": { + "MinSupportValues": [ + "ForceRestart" + ] + } + } + } + } + }, + "ChassisCollection": { + "PropertyRequirements": { + "Members": { + "MinCount": 1 + } + } + }, + "Control": { + "MinVersion": "0.5.0", + "Purpose": "To control the Thermal resource", + "PropertyRequirements": { + "Accuracy": { + "ReadRequirement": "Recommended" + }, + "Actions": { + "ReadRequirement": "Recommended" + }, + "AssociatedSensors": { + "ReadRequirement": "Recommended" + }, + "ControlLoop": { + "Purpose": "To define the Control Loop for the Thermal resource", + "PropertyRequirements": { + "Differential": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" + }, + "Integral": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" + }, + "Proportional": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" + } + } + }, + "ControlType": { + "Purpose": "Supported Control Types", + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" + }, + "DeadBand": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" + }, + "Description": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" + }, + "Id": {}, + "Increment": { + "ReadRequirement": "Recommended" + }, + "Location": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" + }, + "Name": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended", + "Comparison": "AnyOf", + "Values": [ + "Air temperature, In", + "Air temperature, Out", + "Air temperature, Differential", + "Air pressure, Differential ", + "Water temperature, Out", + "Water temperature, Differential" + ] + }, + "Oem": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" + }, + "OperatingMode": {}, + "PhysicalContext": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" + }, + "PhysicalSubContext": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" + }, + "Sensor": { + "ReadRequirement": "Recommended" + }, + "SetPoint": { + "ReadRequirement": "Mandatory", + "WriteRequirement": "Mandatory" + }, + "SetPointRangeMax": { + "ReadRequirement": "Recommended" + }, + "SetPointRangeMin": { + "ReadRequirement": "Recommended" + }, + "SetPointUnits": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" + }, + "SetPointUpdateTime": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" + }, + "Status": { + "ReadRequirement": "Recommended" + }, + "Links": {} + } + }, + "ControlCollection": { + "PropertyRequirements": { + "Members": { + "MinCount": 1 + } + } + }, + "EthernetInterface": { + "MinVersion": "1.1.0" + }, + "EthernetInterfaceCollection": { + "PropertyRequirements": { + "Members": { + "MinCount": 1 + } + } + }, + "LogEntry": { + "MinVersion": "1.1.0" + }, + "LogEntryCollection": { + "PropertyRequirements": { + "Members": { + "MinCount": 0 + } + } + }, + "LogService": { + "MinVersion": "1.1.0" + }, + "LogServicesCollection": { + "PropertyRequirements": { + "Members": { + "MinCount": 1 + } + } + }, + "Manager": { + "MinVersion": "1.7.0" + }, + "ManagerCollection": { + "PropertyRequirements": { + "Members": { + "MinCount": 1 + } + } + }, + "ManagerNetworkProtocol": { + "MinVersion": "1.2.0" + }, + "Power": { + "PropertyRequirements": { + "Status": {}, + "PowerConsumedWatts": {}, + "PowerControl": { + "PropertyRequirements": { + "Status": {}, + "PhysicalContext": {}, + "PowerConsumedWatts": {}, + "PowerMetrics": { + "Purpose": "Obtain power statistics.", + "PropertyRequirements": { + "MinConsumedWatts": {}, + "MaxConsumedWatts": {}, + "AverageConsumedWatts": {} + } + } + } + }, + "Voltages": [ + { + "PropertyRequirements": { + "Name": "VRM1 Voltage", + "SensorNumber": {}, + "Status": {}, + "ReadingVolts": {}, + "PhysicalContext": "VoltageRegulator" + } + } + ] + } + }, + "Sensor": { + "MinVersion": "1.2.0", + "Purpose": "Required Air Temperature Sensors", + "ReadRequirement": "Mandatory", + "MinCount": 2, + "PropertyRequirements": { + "Name": { + "Comparison": "AnyOf", + "Values": [ + "Air temperature, In", + "Air temperature, Out" + ] + } + } + }, + "ServiceRoot": { + "MinVersion": "1.1.0" + }, + "Thermal": { + "PropertyRequirements": { + "Status": {}, + "Temperatures": { + "PropertyRequirements": { + "DeltaPhysicalContext": {}, + "LowerThresholdCritical": {}, + "LowerThresholdFatal": {}, + "LowerThresholdNonCritical": {}, + "MaxReadingRangeTemp": {}, + "MinCount": 2, + "MinReadingRangeTemp": {}, + "Name": { + "Comparison": "AnyOf", + "Values": [ + "Air temperature, In", + "Air temperature, Out" + ] + }, + "PhysicalContext": {}, + "Purpose": "Required Air Temperature Sensors", + "ReadRequirement": "Mandatory", + "ReadingCelsius": {}, + "Status": {}, + "UpperThresholdCritical": {}, + "UpperThresholdFatal": {}, + "UpperThresholdNonCritical": {} + } + }, + "Fans": { + "PropertyRequirements": { + "HotPluggable": {}, + "Location": {}, + "LowerThresholdCritical": {}, + "LowerThresholdFatal": {}, + "LowerThresholdNonCritical": {}, + "Name": {}, + "PhysicalContext": {}, + "ReadingUnits": {}, + "Reading": {}, + "Status": { + "PropertyRequirements": { + "Health": {} + } + } + } + } + } + } + } +} From affc15914c487124604a5f3dd5bf8e1a11978ff9 Mon Sep 17 00:00:00 2001 From: Mick Jones Date: Thu, 9 Dec 2021 09:55:20 -0600 Subject: [PATCH 2/8] Remove Chassis and deprecated Thermal resources from profile --- ...rsionCoolingHardwareManagement.v0_0_1.json | 122 +----------------- 1 file changed, 2 insertions(+), 120 deletions(-) diff --git a/ImmersionCooling/OCPImmersionCoolingHardwareManagement.v0_0_1.json b/ImmersionCooling/OCPImmersionCoolingHardwareManagement.v0_0_1.json index e24c41c..edefd4a 100644 --- a/ImmersionCooling/OCPImmersionCoolingHardwareManagement.v0_0_1.json +++ b/ImmersionCooling/OCPImmersionCoolingHardwareManagement.v0_0_1.json @@ -10,76 +10,7 @@ "MinVersion": "1.0.0" } }, - "Resources": { - "Chassis": { - "MinVersion": "1.15.0", - "PropertyRequirements": { - "AssetTag": {}, - "ChassisType": { - "Purpose": "Need to know the type of the Chassis", - "Values": [ - "Enclosure, Other, Rack, RackMount, Sidecar, StandAlone" - ] - }, - "Controls": { - "ReadRequirement": "Recommended" - }, - "PartNumber": { - "ConditionalRequirements": [ - { - "Purpose": "Either PartNumber or SKU (or both) must be implemented.", - "CompareProperty": "SKU", - "Comparison": "Absent", - "ReadRequirement": "Mandatory" - } - ] - }, - "Power": { - "Purpose": "Reference to subordinate Power resource." - }, - "PowerState": {}, - "SKU": { - "ReadRequirement": "Recommended", - "ConditionalRequirements": [ - { - "Purpose": "Either PartNumber or SKU (or both) must be implemented.", - "CompareProperty": "PartNumber", - "Comparison": "Absent", - "ReadRequirement": "Mandatory" - } - ] - }, - "SerialNumber": {}, - "Status": { - "PropertyRequirements": { - "State": {}, - "Health": {} - } - }, - "Thermal": { - "Purpose": "Reference to subordinate Thermal resource." - } - }, - "ActionRequirements": { - "Reset": { - "Purpose": "To monitor the power state of the Door Heat Exchanger.", - "Parameters": { - "ResetType": { - "MinSupportValues": [ - "ForceRestart" - ] - } - } - } - } - }, - "ChassisCollection": { - "PropertyRequirements": { - "Members": { - "MinCount": 1 - } - } - }, + "Resources": { "Control": { "MinVersion": "0.5.0", "Purpose": "To control the Thermal resource", @@ -283,55 +214,6 @@ }, "ServiceRoot": { "MinVersion": "1.1.0" - }, - "Thermal": { - "PropertyRequirements": { - "Status": {}, - "Temperatures": { - "PropertyRequirements": { - "DeltaPhysicalContext": {}, - "LowerThresholdCritical": {}, - "LowerThresholdFatal": {}, - "LowerThresholdNonCritical": {}, - "MaxReadingRangeTemp": {}, - "MinCount": 2, - "MinReadingRangeTemp": {}, - "Name": { - "Comparison": "AnyOf", - "Values": [ - "Air temperature, In", - "Air temperature, Out" - ] - }, - "PhysicalContext": {}, - "Purpose": "Required Air Temperature Sensors", - "ReadRequirement": "Mandatory", - "ReadingCelsius": {}, - "Status": {}, - "UpperThresholdCritical": {}, - "UpperThresholdFatal": {}, - "UpperThresholdNonCritical": {} - } - }, - "Fans": { - "PropertyRequirements": { - "HotPluggable": {}, - "Location": {}, - "LowerThresholdCritical": {}, - "LowerThresholdFatal": {}, - "LowerThresholdNonCritical": {}, - "Name": {}, - "PhysicalContext": {}, - "ReadingUnits": {}, - "Reading": {}, - "Status": { - "PropertyRequirements": { - "Health": {} - } - } - } - } - } - } + } } } From 42c1890be39142273cd6bb0b378356ee1d959235 Mon Sep 17 00:00:00 2001 From: Mick Jones Date: Fri, 10 Dec 2021 12:02:03 -0600 Subject: [PATCH 3/8] Draft profile for immersion cooling unit --- ...rsionCoolingHardwareManagement.v0_0_1.json | 146 ++++++++---------- 1 file changed, 66 insertions(+), 80 deletions(-) diff --git a/ImmersionCooling/OCPImmersionCoolingHardwareManagement.v0_0_1.json b/ImmersionCooling/OCPImmersionCoolingHardwareManagement.v0_0_1.json index edefd4a..5453fcf 100644 --- a/ImmersionCooling/OCPImmersionCoolingHardwareManagement.v0_0_1.json +++ b/ImmersionCooling/OCPImmersionCoolingHardwareManagement.v0_0_1.json @@ -1,19 +1,16 @@ { - "SchemaDefinition": "RedfishInteroperabilityProfile.v1_0_0", - "ProfileName": "OCPDoorHeatExchangerController", - "ProfileVersion": "0.5.0", - "Purpose": "Profile for the OCP Door Heat Exchanger Controller.", + "SchemaDefinition": "RedfishInteroperabilityProfile.v1_4_1", + "ProfileName": "OCPImmersionCoolingController", + "ProfileVersion": "0.0.1", + "Purpose": "Profile for the OCP Immersion Cooling Controller.", "OwningEntity": "Open Compute Project", "ContactInfo": "redfish@opencompute.org", - "RequiredProfiles": { - "OCPBaselineHardwareManagement": { - "MinVersion": "1.0.0" - } + "RequiredProfiles": { }, "Resources": { "Control": { - "MinVersion": "0.5.0", - "Purpose": "To control the Thermal resource", + "MinVersion": "1.1.0", + "Purpose": "To control the Cooling Unit resource", "PropertyRequirements": { "Accuracy": { "ReadRequirement": "Recommended" @@ -121,99 +118,88 @@ "MinCount": 1 } } - }, - "EthernetInterface": { - "MinVersion": "1.1.0" - }, - "EthernetInterfaceCollection": { + }, + "Sensor": { + "MinVersion": "1.5.0", + "Purpose": "Required Temperature Sensors", + "ReadRequirement": "Mandatory", + "MinCount": 2, "PropertyRequirements": { - "Members": { - "MinCount": 1 + "Name": { + "Comparison": "AnyOf", + "Values": [ + "Air temperature, In", + "Air temperature, Out" + ] } } }, - "LogEntry": { - "MinVersion": "1.1.0" - }, - "LogEntryCollection": { + "SensorCollection": { "PropertyRequirements": { "Members": { - "MinCount": 0 + "MinCount": 1 } } }, - "LogService": { - "MinVersion": "1.1.0" - }, - "LogServicesCollection": { + "Facility": { + "MinVersion": "1.4.0", + "Purpose": "The Facility that the cooling units belong to", + "ReadRequirement": "Mandatory", "PropertyRequirements": { - "Members": { - "MinCount": 1 + "FacilityType": { + "ReadRequirement": "Mandatory", + "WriteRequirement": "Recommended" + }, + "AmbientMetrics": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" + }, + "Description": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" + }, + "Links": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" + }, + "Location": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" + }, + "Status": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" + }, + "CoolingDomains": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" } } }, - "Manager": { - "MinVersion": "1.7.0" + "Resource": { + "Purpose": "Common Redfish resources" }, - "ManagerCollection": { + "CoolingLoop": { + "MinVersion": "1.0.0" + }, + "LoopConnection": { + "MinVersion": "1.0.0" + }, + "LoopConnectionCollection": { "PropertyRequirements": { "Members": { "MinCount": 1 } } }, - "ManagerNetworkProtocol": { - "MinVersion": "1.2.0" - }, - "Power": { - "PropertyRequirements": { - "Status": {}, - "PowerConsumedWatts": {}, - "PowerControl": { - "PropertyRequirements": { - "Status": {}, - "PhysicalContext": {}, - "PowerConsumedWatts": {}, - "PowerMetrics": { - "Purpose": "Obtain power statistics.", - "PropertyRequirements": { - "MinConsumedWatts": {}, - "MaxConsumedWatts": {}, - "AverageConsumedWatts": {} - } - } - } - }, - "Voltages": [ - { - "PropertyRequirements": { - "Name": "VRM1 Voltage", - "SensorNumber": {}, - "Status": {}, - "ReadingVolts": {}, - "PhysicalContext": "VoltageRegulator" - } - } - ] - } + "CoolingUnit": { + "MinVersion": "1.0.0" }, - "Sensor": { - "MinVersion": "1.2.0", - "Purpose": "Required Air Temperature Sensors", - "ReadRequirement": "Mandatory", - "MinCount": 2, - "PropertyRequirements": { - "Name": { - "Comparison": "AnyOf", - "Values": [ - "Air temperature, In", - "Air temperature, Out" - ] - } - } + "Circuit": { + "MinVersion": "1.4.0" }, "ServiceRoot": { - "MinVersion": "1.1.0" + "MinVersion": "1.12.0" } } } From c2923f23367939ddc7af133f76fb68d9f3648d57 Mon Sep 17 00:00:00 2001 From: Mick Jones Date: Tue, 28 Jan 2025 17:09:25 +1100 Subject: [PATCH 4/8] Fixes for baseline --- HWMgmt/OCPBaselineRedfishService.v1_0_0.json | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/HWMgmt/OCPBaselineRedfishService.v1_0_0.json b/HWMgmt/OCPBaselineRedfishService.v1_0_0.json index 1f3ddb2..bffe105 100644 --- a/HWMgmt/OCPBaselineRedfishService.v1_0_0.json +++ b/HWMgmt/OCPBaselineRedfishService.v1_0_0.json @@ -21,7 +21,7 @@ "AccountService": { "PropertyRequirements": { "Accounts": {}, - "ActiveDirecotory": { + "ActiveDirectory": { "ReadRequirement": "Recommended", "PropertyRequirements": { "ServiceEnabled": {}, @@ -346,7 +346,7 @@ "ReadRequirement": "Mandatory", "WriteRequirement": "Recommended" }, - "DateTimeOffset": { + "DateTimeLocalOffset": { "ReadRequirement": "Mandatory", "WriteRequirement": "Recommended" }, @@ -459,7 +459,7 @@ "DeleteResource": true }, "OutboundConnection": { - "ReadRequirement": "IfPopulated", + "ReadRequirement": "Recommended", "PropertyRequirements": { "Authentication": {}, "Certificates": {}, @@ -486,7 +486,7 @@ "DeleteResource": true }, "RegisteredClient": { - "ReadRequirement": "IfPopulated", + "ReadRequirement": "Recommended", "PropertyRequirements": { "Context": {}, "ClientType": {}, @@ -555,6 +555,7 @@ "ReadRequirement": "Recommended" }, "Links": { + "ReadRequirement": "IfImplemented", "PropertyRequirements": { "OutboundConnection": { "ReadRequirement": "IfImplemented" From 37d4eb8e6a8e8a9e465f69866a18a9be1242dbc5 Mon Sep 17 00:00:00 2001 From: Mick Jones Date: Wed, 29 Jan 2025 18:33:19 +1100 Subject: [PATCH 5/8] Fix schema error in LC base --- LiquidCooling/OCPLiquidCoolingBaseline.v1_0_0.json | 1 - 1 file changed, 1 deletion(-) diff --git a/LiquidCooling/OCPLiquidCoolingBaseline.v1_0_0.json b/LiquidCooling/OCPLiquidCoolingBaseline.v1_0_0.json index 05b780e..d9a55d3 100644 --- a/LiquidCooling/OCPLiquidCoolingBaseline.v1_0_0.json +++ b/LiquidCooling/OCPLiquidCoolingBaseline.v1_0_0.json @@ -173,7 +173,6 @@ "State": {} } }, - "UUID": {}, "Version": {} } }, From ed7ef237f3ec0fbda579c38ac22ccb0c41b6d7af Mon Sep 17 00:00:00 2001 From: Mick Jones Date: Wed, 29 Jan 2025 18:33:34 +1100 Subject: [PATCH 6/8] Add first draft of immersion tank RIP --- .../OCPImmersionCoolingBaseline.v0_0_1.json | 369 ++++++++++++++++++ 1 file changed, 369 insertions(+) create mode 100644 LiquidCooling/OCPImmersionCoolingBaseline.v0_0_1.json diff --git a/LiquidCooling/OCPImmersionCoolingBaseline.v0_0_1.json b/LiquidCooling/OCPImmersionCoolingBaseline.v0_0_1.json new file mode 100644 index 0000000..7c75a97 --- /dev/null +++ b/LiquidCooling/OCPImmersionCoolingBaseline.v0_0_1.json @@ -0,0 +1,369 @@ +{ + "SchemaDefinition": "RedfishInteroperabilityProfile.v1_4_1", + "ProfileName": "OCPImmersionCoolingController", + "ProfileVersion": "0.0.1", + "Purpose": "Profile for the OCP Immersion Cooling Controller.", + "OwningEntity": "Open Compute Project", + "ContactInfo": "redfish@opencompute.org", + "RequiredProfiles": { + "OCPCoolantDistributionUnit": { + "MinVersion": "1.0.0" + } + }, + "Resources": { + "ThermalEquipment": { + "URIs": [ + "/redfish/v1/ThermalEquipment" + ], + "PropertyRequirements": { + "ImmersionUnits": {} + } + }, + "CoolingUnit": { + "URIs": [ + "/redfish/v1/ThermalEquipment/ImmersionUnits/{CoolingUnitId}" + ], + "PropertyRequirements": { + "CoolantConnectorRedundancy": { + "ReadRequirement": "IfImplemented" + }, + "EquipmentType": { + "Comparison": "Equal", + "Values": [ + "ImmersionUnit" + ] + }, + "Name": { + "ReadRequirement": "Mandatory" + }, + "Manufacturer": { + "ReadRequirement": "Mandatory" + }, + "Model": { + "ReadRequirement": "Mandatory" + }, + "SerialNumber": { + "ReadRequirement": "Mandatory" + }, + "FirmwareVersion": { + "ReadRequirement": "Mandatory" + }, + "Version": { + "ReadRequirement": "Mandatory" + }, + "ProductionDate": { + "ReadRequirement": "Mandatory" + }, + "Location": { + "ReadRequirement": "Mandatory" + }, + "CoolingUnitMode": { + "ReadRequirement": "Mandatory" + }, + "Links": { + "ReadRequirement": "Recommended" + }, + "FilterRedundancy": { + "ReadRequirement": "IfImplemented" + }, + "Filters": { + "ReadRequirement": "IfImplemented" + }, + "PrimaryCoolantConnectors": {}, + "PumpRedundancy": { + "ReadRequirement": "IfImplemented" + }, + "Pumps": {}, + "Reservoirs": { + "ReadRequirement": "IfImplemented" + }, + "SecondaryCoolantConnectors": {}, + "Status": { + "PropertyRequirements": { + "Health": {}, + "State": {} + } + } + }, + "Actions": { + "SetMode": { + "ReadRequirement": "Mandatory", + "Purpose": "Turn the immersion tank cooling functions off (disable), implies that ITE power is shutdown as well", + "Parameters": { + "Mode": { + "ReadRequirement": "Mandatory" + } + } + } + } + }, + "Control": { + "MinVersion": "1.6.0", + "Purpose": "To control the Cooling Unit resource", + "PropertyRequirements": { + "Accuracy": { + "ReadRequirement": "Recommended" + }, + "Actions": { + "ReadRequirement": "Recommended" + }, + "AssociatedSensors": { + "ReadRequirement": "Recommended" + }, + "ControlLoop": { + "ReadRequirement": "Recommended", + "Purpose": "To define the Control Loop for the Thermal resource", + "PropertyRequirements": { + "Differential": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" + }, + "Integral": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" + }, + "Proportional": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" + } + } + }, + "ControlType": { + "Purpose": "Supported Control Types", + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" + }, + "DeadBand": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" + }, + "Description": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" + }, + "Id": {}, + "Increment": { + "ReadRequirement": "Recommended" + }, + "Location": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" + }, + "Name": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" + }, + "ControlMode": {}, + "PhysicalContext": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" + }, + "PhysicalSubContext": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" + }, + "Sensor": { + "ReadRequirement": "Recommended" + }, + "SetPoint": { + "ReadRequirement": "Mandatory", + "WriteRequirement": "Mandatory" + }, + "SetPointRangeMax": { + "ReadRequirement": "Recommended" + }, + "SetPointRangeMin": { + "ReadRequirement": "Recommended" + }, + "SetPointUnits": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" + }, + "SetPointUpdateTime": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" + }, + "Status": { + "ReadRequirement": "Recommended" + }, + "Links": { + "ReadRequirement": "Recommended" + } + } + }, + "ControlCollection": { + "PropertyRequirements": { + "Members": { + "MinCount": 1 + } + } + }, + "Sensor": { + "MinVersion": "1.5.0", + "Purpose": "Required Temperature Sensors", + "ReadRequirement": "Mandatory", + "MinCount": 2, + "PropertyRequirements": { + "Name": { + "ReadRequirement": "Mandatory" + } + } + }, + "SensorCollection": { + "PropertyRequirements": { + "Members": { + "MinCount": 1 + } + } + }, + "Facility": { + "MinVersion": "1.4.0", + "Purpose": "The Facility that the cooling units belong to", + "ReadRequirement": "Recommended", + "PropertyRequirements": { + "FacilityType": { + "ReadRequirement": "IfImplemented", + "WriteRequirement": "Recommended" + }, + "AmbientMetrics": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" + }, + "Description": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" + }, + "Links": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" + }, + "Location": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" + }, + "Status": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" + }, + "CoolingDomains": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" + } + } + }, + "Circuit": { + "MinVersion": "1.4.0" + }, + "CoolantConnector": { + "URIs": [ + "/redfish/v1/ThermalEquipment/ImmersionUnits/{CoolingUnitId}/PrimaryCoolantConnectors/{CoolantConnectorId}", + "/redfish/v1/ThermalEquipment/ImmersionUnits/{CoolingUnitId}/SecondaryCoolantConnectors/{CoolantConnectorId}" + ], + "PropertyRequirements": { + "Coolant": { + "PropertyRequirements": { + "CoolantType": {}, + "DensityKgPerCubicMeter": {}, + "SpecificHeatkJoulesPerKgK": {} + } + }, + "CoolantConnectorType": {}, + "FlowLitersPerMinute": {}, + "RatedFlowLitersPerMinute": {}, + "Status": { + "PropertyRequirements": { + "Health": {}, + "State": {} + } + }, + "DeltaPressurekPa": {}, + "DeltaTemperatureCelsius": {}, + "SupplyPressurekPa": {}, + "SupplyTemperatureCelsius": {}, + "HeatRemovedkW": {}, + "ReturnPressurekPa": {}, + "ReturnTemperatureCelsius": {} + } + }, + "Filter": { + "ReadRequirement": "IfImplemented", + "URIs": [ + "/redfish/v1/ThermalEquipment/ImmersionUnits/{CoolingUnitId}/Filters/{FilterId}" + ], + "PropertyRequirements": { + "HotPluggable": {}, + "Location": { + "PropertyRequirements": { + "PartLocation": { + "PropertyRequirements": { + "LocationOrdinalValue": { + "ReadRequirement": "Recommended" + }, + "LocationType": { + "ReadRequirement": "Recommended" + }, + "Orientation": { + "ReadRequirement": "Recommended" + }, + "Reference": { + "ReadRequirement": "Recommended" + }, + "ServiceLabel": {} + } + } + } + }, + "RatedServiceHours": {}, + "Replaceable": {}, + "ServicedDate": {}, + "ServiceHours": {}, + "Status": { + "PropertyRequirements": { + "Health": {}, + "State": {} + } + } + } + }, + "Pump": { + "ReadRequirement": "IfImplemented", + "URIs": [ + "/redfish/v1/ThermalEquipment/ImmersionUnits/{CoolingUnitId}/Pumps/{PumpId}" + ], + "PropertyRequirements": { + "Location": { + "PropertyRequirements": { + "PartLocation": { + "PropertyRequirements": { + "LocationOrdinalValue": { + "ReadRequirement": "Recommended" + }, + "LocationType": { + "ReadRequirement": "Recommended" + }, + "Orientation": { + "ReadRequirement": "Recommended" + }, + "Reference": { + "ReadRequirement": "Recommended" + }, + "ServiceLabel": {} + } + } + } + }, + "PumpSpeedPercent": {}, + "PumpType": {}, + "ServiceHours": { + "ReadRequirement": "Recommended" + }, + "Status": { + "PropertyRequirements": { + "Health": {}, + "State": {} + } + } + } + } + } +} \ No newline at end of file From e3de58607fed4d3ed27d69826b477558f7d6ad42 Mon Sep 17 00:00:00 2001 From: Mick Jones Date: Thu, 30 Jan 2025 00:22:57 +1100 Subject: [PATCH 7/8] Add pump mode action --- .../OCPImmersionCoolingBaseline.v0_0_1.json | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/LiquidCooling/OCPImmersionCoolingBaseline.v0_0_1.json b/LiquidCooling/OCPImmersionCoolingBaseline.v0_0_1.json index 7c75a97..6df0b79 100644 --- a/LiquidCooling/OCPImmersionCoolingBaseline.v0_0_1.json +++ b/LiquidCooling/OCPImmersionCoolingBaseline.v0_0_1.json @@ -354,6 +354,7 @@ }, "PumpSpeedPercent": {}, "PumpType": {}, + "PumpMode": {}, "ServiceHours": { "ReadRequirement": "Recommended" }, @@ -363,6 +364,17 @@ "State": {} } } + }, + "Actions": { + "SetMode": { + "ReadRequirement": "Mandatory", + "Purpose": "Turn the immersion tank pump functions off (disable), implies that ITE power is shutdown as well", + "Parameters": { + "Mode": { + "ReadRequirement": "Mandatory" + } + } + } } } } From 3d6547e80a70eeef6dc1037031ba7aeb31f4a3ea Mon Sep 17 00:00:00 2001 From: Mick Jones Date: Fri, 31 Jan 2025 00:36:39 +1100 Subject: [PATCH 8/8] Revert to IfPopulated; fixed by DMTF/Redfish-Interop-Validator#197 --- HWMgmt/OCPBaselineRedfishService.v1_0_0.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/HWMgmt/OCPBaselineRedfishService.v1_0_0.json b/HWMgmt/OCPBaselineRedfishService.v1_0_0.json index bffe105..983eeaf 100644 --- a/HWMgmt/OCPBaselineRedfishService.v1_0_0.json +++ b/HWMgmt/OCPBaselineRedfishService.v1_0_0.json @@ -459,7 +459,7 @@ "DeleteResource": true }, "OutboundConnection": { - "ReadRequirement": "Recommended", + "ReadRequirement": "IfPopulated", "PropertyRequirements": { "Authentication": {}, "Certificates": {}, @@ -486,7 +486,7 @@ "DeleteResource": true }, "RegisteredClient": { - "ReadRequirement": "Recommended", + "ReadRequirement": "IfPopulated", "PropertyRequirements": { "Context": {}, "ClientType": {},