From 42a9ddd7b97ee827698cb6972944c3cbd02ff985 Mon Sep 17 00:00:00 2001 From: Linda Wu Date: Thu, 25 Jan 2024 16:13:34 -0800 Subject: [PATCH 1/4] Create OCPBaselineHardwareManagement.v1_1_0.json Add minor update for issue #53 --- .../OCPBaselineHardwareManagement.v1_1_0.json | 612 ++++++++++++++++++ 1 file changed, 612 insertions(+) create mode 100644 HWMgmt/OCPBaselineHardwareManagement.v1_1_0.json diff --git a/HWMgmt/OCPBaselineHardwareManagement.v1_1_0.json b/HWMgmt/OCPBaselineHardwareManagement.v1_1_0.json new file mode 100644 index 0000000..de10e50 --- /dev/null +++ b/HWMgmt/OCPBaselineHardwareManagement.v1_1_0.json @@ -0,0 +1,612 @@ +{ + "SchemaDefinition": "RedfishInteroperabilityProfile.v1_0_0", + "ProfileName": "OCPBaselineHardwareManagement", + "ProfileVersion": "1.1.0", + "Purpose": "Specifies the OCP baseline hardware management requirements for the Redfish interface on platforms.", + "OwningEntity": "Open Compute Project", + "ContactInfo": "hwpl@opencompute.org", + "Protocol": { + "MinVersion": "1.0", + "Discovery": "Recommended", + "HostInterface": "Recommended" + }, + "Registries": { + "Base": { + "MinVersion": "1.2.0", + "Messages": { + "Success": {}, + "GeneralError": {}, + "NoOperation": {}, + "ResourceNotFound": {}, + "InvalidURI": {}, + "InsufficientPrivilege":{}, + "InternalError": {} + } + } + }, + "Resources": { + "AccountService": { + "PropertyRequirements": { + "Accounts": {} + } + }, + "Chassis": { + "PropertyRequirements": { + "AssetTag": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" + }, + "ChassisType": {}, + "IndicatorLED": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended", + "ConditionalRequirements": [{ + "Purpose": "Either IndicatorLED or LocationIndicatorActive must be implemented. In 2020.3, IndicatorLED was deprecated for LocationIndicatorActive.", + "CompareProperty": "LocationIndicatorActive", + "Comparison": "Absent", + "ReadRequirement": "Mandatory" + }] + }, + "LocationIndicatorActive": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended", + "ConditionalRequirements": [{ + "Purpose": "Either IndicatorLED or LocationIndicatorActive must be implemented. In 2020.3, IndicatorLED was deprecated for LocationIndicatorActive.", + "CompareProperty": "IndicatorLED", + "Comparison": "Absent", + "ReadRequirement": "Mandatory" + }] + }, + "Manufacturer": { + "ReadRequirement": "Recommended" + }, + "Model": { + "ReadRequirement": "Recommended", + "ConditionalRequirements": [ + { + "Purpose": "Model is required if ChassisType are specific values", + "ReadRequirement": "Mandatory", + "CompareType": "AnyOf", + "CompareProperty": "ChassisType", + "CompareValues": ["Drawer", "RackMount", "Sled"] + } + ] + }, + "SerialNumber": { + "ReadRequirement": "Recommended", + "ConditionalRequirements": [ + { + "Purpose": "SerialNumber is required if ChassisType are specific values", + "ReadRequirement": "Mandatory", + "CompareType": "AnyOf", + "CompareProperty": "ChassisType", + "CompareValues": ["Drawer", "RackMount", "Sled"] + } + ] + }, + "SKU": { + "ReadRequirement": "Recommended" + }, + "PartNumber": { + "ReadRequirement": "Recommended" + }, + "PowerState": { + "ReadRequirement": "Recommended", + "ConditionalRequirements": [ + { + "Purpose": "SerialNumber is required if ChassisType are specific values", + "ReadRequirement": "Mandatory", + "CompareType": "AnyOf", + "CompareProperty": "ChassisType", + "CompareValues": ["Drawer", "RackMount", "Sled"] + } + ] + }, + "Status": { + "PropertyRequirements": { + "State": {}, + "Health": {} + } + }, + "Thermal": { + "ReadRequirement": "Recommended", + "ConditionalRequirements": [{ + "Purpose": "Either the Thermal or ThermalSubsystem resource must be implemented. In 2020.4, Thermal resource was deprecated for ThermalSubsystem.", + "CompareProperty": "ThermalSubsystem", + "Comparison": "Absent", + "ReadRequirement": "Mandatory" + }] + }, + "ThermalSubsystem": { + "ReadRequirement": "Recommended", + "ConditionalRequirements": [{ + "Purpose": "Either the Thermal or ThermalSubsystem resource must be implemented. In 2020.4, Thermal resource was deprecated for ThermalSubsystem.", + "CompareProperty": "Thermal", + "Comparison": "Absent", + "ReadRequirement": "Mandatory" + }] + }, + "Power": { + "ReadRequirement": "Recommended", + "ConditionalRequirements": [{ + "Purpose": "Either the Power or PowerSubsystem resource must be implemented. In 2020.4, Power resource was deprecated for PowerSubsystem.", + "CompareProperty": "PowerSubsystem", + "Comparison": "Absent", + "ReadRequirement": "Mandatory" + }] + }, + "PowerSubsystem": { + "ReadRequirement": "Recommended", + "ConditionalRequirements": [{ + "Purpose": "Either the Power or PowerSubsystem resource must be implemented. In 2020.4, Power resource was deprecated for PowerSubsystem.", + "CompareProperty": "Power", + "Comparison": "Absent", + "ReadRequirement": "Mandatory" + }] + }, + "EnvironmentMetrics": { + "ReadRequirement": "Recommended", + "ConditionalRequirements": [{ + "Purpose": "If the PowerSubsystem resource is present, this resource must be implemented.", + "CompareProperty": "PowerSubsystem", + "Comparison": "Present", + "ReadRequirement": "Mandatory" + }] + }, + "Sensors": { + "ReadRequirement": "Recommended", + "ConditionalRequirements": [{ + "Purpose": "In the PowerSubsystem, the Sensors resource must be implemented.", + "CompareProperty": "PowerSubsystem", + "Comparison": "Present", + "ReadRequirement": "Mandatory" + }] + }, + "Controls": { + "ReadRequirement": "Recommended", + "ConditionalRequirements": [{ + "Purpose": "In the PowerSubsystem, the Controls resource must be implemented.", + "CompareProperty": "PowerSubsystem", + "Comparison": "Present", + "ReadRequirement": "Mandatory" + }] + }, + "Links": { + "PropertyRequirements": { + "ManagedBy": { + "ReadRequirement": "Recommended", + "ConditionalRequirements": [ + { + "Purpose": "ManagedBy is required if ChassisType are specific values", + "ReadRequirement": "Mandatory", + "CompareType": "AnyOf", + "CompareProperty": "ChassisType", + "CompareValues": ["Drawer", "RackMount", "Sled"] + } + ] + } + } + } + } + }, + "ChassisCollection": { + "PropertyRequirements": { + "Members": { + "MinCount": 1 + } + } + }, + "EnvironmentMetrics": { + "Purpose": "Equivalent Power.PowerControl.PowerConsumedWatts and Power.PowerControl.PowerLimit.", + "ReadRequirement": "IfImplemented", + "PropertyRequirements": { + "PowerWatts": { + "ReadRequirement": "Recommended" + }, + "PowerLimitWatts": { + "ReadRequirement": "IfImplemented", + "PropertyRequirements": { + "SetPoint": { + "ReadRequirement": "Mandatory", + "WriteRequirement": "Mandatory" + } + } + } + } + }, + "EthernetInterface": { + "MinVersion": "1.1.0", + "ReadRequirement": "Recommended", + "ConditionalRequirements": [{ + "SubordinateToResource": ["Manager", "EthernetInterfaceCollection"], + "ReadRequirement": "Mandatory" + }], + "PropertyRequirements": { + "MACAddress": {}, + "SpeedMbps": {}, + "InterfaceEnabled": {}, + "LinkStatus": {}, + "Status": { + "PropertyRequirements": { + "Health": {}, + "State": {} + } + }, + "DHCPv4": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" + }, + "DHCPv6": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" + }, + "HostName": { + "ReadRequirement": "Recommended", + "ConditionalRequirements": [{ + "SubordinateToResource": ["Manager", "EthernetInterfaceCollection"], + "ReadRequirement": "Mandatory", + "WriteRequirement": "Mandatory" + }] + }, + "FQDN": { + "ReadRequirement": "Recommended", + "ConditionalRequirements": [{ + "SubordinateToResource": ["Manager", "EthernetInterfaceCollection"], + "ReadRequirement": "Mandatory", + "WriteRequirement": "Mandatory" + }] + }, + "NameServers": { + "ReadRequirement": "Recommended", + "ConditionalRequirements": [{ + "SubordinateToResource": ["Manager", "EthernetInterfaceCollection"], + "ReadRequirement": "Mandatory", + "WriteRequirement": "Mandatory" + }] + }, + "IPv4Addresses": { + "ReadRequirement": "Recommended", + "ConditionalRequirements": [{ + "SubordinateToResource": ["Manager", "EthernetInterfaceCollection"], + "ReadRequirement": "Mandatory", + "WriteRequirement": "Mandatory" + }], + "PropertyRequirements": { + "Address": {}, + "SubnetMask": {}, + "AddressOrigin": {}, + "Gateway": {} + } + }, + "IPv4StaticAddresses": { + "ReadRequirement": "Recommended" + }, + "IPv6AddressPolicyTable": { + "ReadRequirement": "Recommended" + }, + "IPv6StaticAddresses": { + "ReadRequirement": "Recommended" + }, + "IPv6StaticDefaultGateways": { + "ReadRequirement": "Recommended" + }, + "IPv6Addresses": { + "ReadRequirement": "IfImplemented", + "PropertyRequirements": { + "Address": {}, + "PrefixLength": {}, + "AddressOrigin": {}, + "AddressState": {} + } + }, + "StaticNameServers": { + "ReadRequirement": "Recommended" + } + } + }, + "EthernetInterfaceCollection": { + "PropertyRequirements": { + "Members": { + "MinCount": 1 + } + } + }, + "ManagerAccount": {}, + "ManagerCollection": { + "PropertyRequirements": { + "Members": { + "MinCount": 1 + } + } + }, + "Manager": { + "PropertyRequirements": { + "ManagerType": {}, + "UUID": { + "ReadRequirement": "Recommended", + "ConditionalRequirements": [ + { + "Purpose": "UUID is required if ManagerType are specific values", + "ReadRequirement": "Mandatory", + "CompareType": "AnyOf", + "CompareProperty": "ManagerType", + "CompareValues": ["BMC"] + } + ] + }, + "Status": {}, + "FirmwareVersion": { + "ReadRequirement": "Recommended", + "ConditionalRequirements": [ + { + "Purpose": "FirmwareVersion is required if ManagerType are specific values", + "ReadRequirement": "Mandatory", + "CompareType": "AnyOf", + "CompareProperty": "ManagerType", + "CompareValues": ["BMC"] + } + ] + }, + "NetworkProtocol": { + "ReadRequirement": "Recommended", + "ConditionalRequirements": [ + { + "Purpose": "NetworkProtocol is required if ManagerType are specific values", + "ReadRequirement": "Mandatory", + "CompareType": "AnyOf", + "CompareProperty": "ManagerType", + "CompareValues": ["BMC"] + } + ] + }, + "EthernetInterfaces": { + "ReadRequirement": "Recommended", + "ConditionalRequirements": [ + { + "Purpose": "EthernetInterfaces is required if ManagerType are specific values", + "ReadRequirement": "Mandatory", + "CompareType": "AnyOf", + "CompareProperty": "ManagerType", + "CompareValues": ["BMC"] + } + ] + }, + "LogServices": { + "ReadRequirement": "Recommended", + "ConditionalRequirements": [ + { + "Purpose": "LogServices is required if ManagerType are specific values", + "ReadRequirement": "Mandatory", + "CompareType": "AnyOf", + "CompareProperty": "ManagerType", + "CompareValues": ["BMC"] + } + ] + }, + "Links": { + "PropertyRequirements": { + "ManagerForServers": { + "ReadRequirement": "IfImplemented" + }, + "ManagerForChassis": { + "ReadRequirement": "IfImplemented" + } + } + } + }, + "ActionRequirements": { + "Reset": { + "Parameters": { + "ResetType": { + "MinSupportValues": ["ForceRestart"] + } + } + } + } + }, + "ManagerNetworkProtocol": { + "PropertyRequirements": { + "HostName": {}, + "Status": {}, + "FQDN": {}, + "HTTP": { + "ReadRequirement": "IfImplemented", + "PropertyRequirements": { + "ProtocolEnabled": {}, + "Port": {} + } + }, + "HTTPS": { + "PropertyRequirements": { + "ProtocolEnabled": {}, + "Port": {} + } + }, + "SSH": { + "ReadRequirement": "Recommended", + "PropertyRequirements": { + "ProtocolEnabled": {}, + "Port": {} + } + }, + "SSDP": { + "ReadRequirement": "Recommended", + "PropertyRequirements": { + "ProtocolEnabled": {}, + "Port": {}, + "NotifyMulticastIntervalSeconds": {}, + "NotifyIPv6Scope": {}, + "NotifyTTL": {} + } + } + } + }, + "Power": { + "ReadRequirement": "Recommended", + "PropertyRequirements": { + "PowerControl": { + "PropertyRequirements": { + "PowerConsumedWatts": { + "ReadRequirement": "Recommended" + }, + "PowerCapacityWatts": { + "ReadRequirement": "Recommended" + }, + "PowerLimit": { + "ReadRequirement": "Recommended", + "PropertyRequirements": { + "LimitInWatts": {}, + "LimitException": {} + } + } + } + } + } + }, + "PowerSubsystem": { + "PropertyRequirements": { + "CapacityWatts": { + "Purpose": "Equivalent for Power.PowerControl.PowerCapacityWatts.", + "ReadRequirement": "Recommended" + } + } + }, + "SessionService": {}, + "Thermal": { + "MinVersion": "1.1.0", + "ReadRequirement": "Recommended", + "PropertyRequirements": { + "Fans": { + "ReadRequirement": "IfImplemented", + "PropertyRequirements": { + "Status": {}, + "Name": { + "ReadRequirement": "Recommended", + "Purpose": "Transition from the deprecated 'FanName' to 'Name'." + }, + "Reading": { + "ReadRequirement": "Recommended" + }, + "ReadingUnits": { + "ReadRequirement": "Recommended" + } + } + }, + "Temperatures": { + "ReadRequirement": "IfImplemented", + "PropertyRequirements": { + "ReadingCelsius": {}, + "UpperThresholdFatal": { + "ReadRequirement": "Recommended" + }, + "UpperThresholdCritical": { + "ReadRequirement": "Recommended" + }, + "UpperThresholdNonCritical": { + "ReadRequirement": "Recommended" + }, + "Status": {} + } + }, + "Redundancy": { + "ReadRequirement": "IfImplemented", + "PropertyRequirements": { + "MemberId": {}, + "RedundancySet": {}, + "Mode": {}, + "Status": {}, + "MinNumNeeded": {}, + "MaxNumSupported": { + "ReadRequirement": "Recommended" + } + } + } + } + }, + "ThermalSubsystem": { + "MinVersion": "1.0.0", + "PropertyRequirements": { + "ThermalMetrics": { + "ReadRequirement": "Recommended" + }, + "Fans": { + "ReadRequirement": "Recommended" + }, + "FanRedundancy": { + "ReadRequirement": "IfImplemented", + "PropertyRequirements": { + "RedundancyType": {}, + "MinNeededinGroup": {}, + "MaxSupportedInGroup": { + "ReadRequirement": "Recommended" + }, + "RedundancyGroup": {}, + "Status": {} + } + } + } + }, + "ThermalMetrics": { + "ReadRequirement": "IfImplemented", + "Purpose": "Equivalent of Thermal.Temperatures", + "PropertyRequirements": { + "TemperatureSummaryCelsius": { + "ReadRequirement": "Recommended", + "PropertyRequirements": { + "Exhaust": { + "ReadRequirement": "Recommended" + } + } + } + } + }, + "Fan": { + "ReadRequirement": "IfImplemented", + "Purpose": "Equivalent of Thermal.Fans", + "PropertyRequirements": { + "Name": { + "ReadRequirement": "Recommended" + }, + "SpeedPercent": { + "ReadRequirement": "Recommended", + "PropertyRequirements": { + "Reading": { + "ReadRequirement": "Recommended" + }, + "SpeedRPM": { + "ReadRequirement": "Recommended" + } + } + } + } + }, + "LogService": { + "PropertyRequirements": { + "Entries": {} + }, + "ActionRequirements": { + "ClearLog": { + "ReadRequirement": "Recommended" + } + } + }, + "LogEntry": { + "PropertyRequirements": { + "Created": {}, + "EntryType": {}, + "Message": {}, + "Severity": {} + } + }, + "ServiceRoot": { + "PropertyRequirements": { + "AccountService": {}, + "UUID": {}, + "RedfishVersion": {}, + "Chassis": {}, + "Managers": {}, + "SessionService": {} + } + } + } +} From 41e313b1948fcb0a655fe62bd00857be9df54fcd Mon Sep 17 00:00:00 2001 From: Linda Wu Date: Fri, 2 Feb 2024 10:28:01 -0800 Subject: [PATCH 2/4] Update OCPBaselineHardwareManagement.v1_1_0.json 1. Fix Invalid Profile Error - "CompareType is required for CompareProperty" but not found, 2. Handle deprecated properties using ReplacesProperty and ReplacedByProperty functions. --- .../OCPBaselineHardwareManagement.v1_1_0.json | 56 ++++++++++++------- 1 file changed, 35 insertions(+), 21 deletions(-) diff --git a/HWMgmt/OCPBaselineHardwareManagement.v1_1_0.json b/HWMgmt/OCPBaselineHardwareManagement.v1_1_0.json index de10e50..c1e5d8b 100644 --- a/HWMgmt/OCPBaselineHardwareManagement.v1_1_0.json +++ b/HWMgmt/OCPBaselineHardwareManagement.v1_1_0.json @@ -42,9 +42,12 @@ "WriteRequirement": "Recommended", "ConditionalRequirements": [{ "Purpose": "Either IndicatorLED or LocationIndicatorActive must be implemented. In 2020.3, IndicatorLED was deprecated for LocationIndicatorActive.", - "CompareProperty": "LocationIndicatorActive", - "Comparison": "Absent", - "ReadRequirement": "Mandatory" + "ReplacedByProperty": "LocationIndicatorActive", + "ReadRequirement": "Mandatory", + "WriteRequirement": "Mandatory", + "CompareType": "AnyOf", + "CompareProperty": "ChassisType", + "CompareValues": ["Drawer", "RackMount", "Sled"] }] }, "LocationIndicatorActive": { @@ -52,9 +55,12 @@ "WriteRequirement": "Recommended", "ConditionalRequirements": [{ "Purpose": "Either IndicatorLED or LocationIndicatorActive must be implemented. In 2020.3, IndicatorLED was deprecated for LocationIndicatorActive.", - "CompareProperty": "IndicatorLED", - "Comparison": "Absent", - "ReadRequirement": "Mandatory" + "ReplacesProperty": "IndicatorLED", + "ReadRequirement": "Mandatory", + "WriteRequirement": "Mandatory", + "CompareType": "AnyOf", + "CompareProperty": "ChassisType", + "CompareValues": ["Drawer", "RackMount", "Sled"] }] }, "Manufacturer": { @@ -112,36 +118,44 @@ "ReadRequirement": "Recommended", "ConditionalRequirements": [{ "Purpose": "Either the Thermal or ThermalSubsystem resource must be implemented. In 2020.4, Thermal resource was deprecated for ThermalSubsystem.", - "CompareProperty": "ThermalSubsystem", - "Comparison": "Absent", - "ReadRequirement": "Mandatory" + "ReplacedByProperty": "ThermalSubsystem", + "ReadRequirement": "Mandatory", + "CompareType": "AnyOf", + "CompareProperty": "ChassisType", + "CompareValues": ["Drawer", "RackMount", "Sled"] }] }, "ThermalSubsystem": { "ReadRequirement": "Recommended", "ConditionalRequirements": [{ "Purpose": "Either the Thermal or ThermalSubsystem resource must be implemented. In 2020.4, Thermal resource was deprecated for ThermalSubsystem.", - "CompareProperty": "Thermal", - "Comparison": "Absent", - "ReadRequirement": "Mandatory" + "ReplacesProperty": "Thermal", + "ReadRequirement": "Mandatory", + "CompareType": "AnyOf", + "CompareProperty": "ChassisType", + "CompareValues": ["Drawer", "RackMount", "Sled"] }] }, "Power": { "ReadRequirement": "Recommended", "ConditionalRequirements": [{ "Purpose": "Either the Power or PowerSubsystem resource must be implemented. In 2020.4, Power resource was deprecated for PowerSubsystem.", - "CompareProperty": "PowerSubsystem", - "Comparison": "Absent", - "ReadRequirement": "Mandatory" + "ReplacedByProperty": "PowerSubsystem", + "ReadRequirement": "Mandatory", + "CompareType": "AnyOf", + "CompareProperty": "ChassisType", + "CompareValues": ["Drawer", "RackMount", "Sled"] }] }, "PowerSubsystem": { "ReadRequirement": "Recommended", "ConditionalRequirements": [{ "Purpose": "Either the Power or PowerSubsystem resource must be implemented. In 2020.4, Power resource was deprecated for PowerSubsystem.", - "CompareProperty": "Power", - "Comparison": "Absent", - "ReadRequirement": "Mandatory" + "ReplacesProperty": "Power", + "ReadRequirement": "Mandatory", + "CompareType": "AnyOf", + "CompareProperty": "ChassisType", + "CompareValues": ["Drawer", "RackMount", "Sled"] }] }, "EnvironmentMetrics": { @@ -149,7 +163,7 @@ "ConditionalRequirements": [{ "Purpose": "If the PowerSubsystem resource is present, this resource must be implemented.", "CompareProperty": "PowerSubsystem", - "Comparison": "Present", + "CompareType": "Present", "ReadRequirement": "Mandatory" }] }, @@ -158,7 +172,7 @@ "ConditionalRequirements": [{ "Purpose": "In the PowerSubsystem, the Sensors resource must be implemented.", "CompareProperty": "PowerSubsystem", - "Comparison": "Present", + "CompareType": "Present", "ReadRequirement": "Mandatory" }] }, @@ -167,7 +181,7 @@ "ConditionalRequirements": [{ "Purpose": "In the PowerSubsystem, the Controls resource must be implemented.", "CompareProperty": "PowerSubsystem", - "Comparison": "Present", + "CompareType": "Present", "ReadRequirement": "Mandatory" }] }, From 38e7f1f3bcbc513889aae41b9f8571e340bf9a2d Mon Sep 17 00:00:00 2001 From: Linda Wu Date: Tue, 6 Feb 2024 10:50:05 -0800 Subject: [PATCH 3/4] Update OCPBaselineHardwareManagement.v1_1_0.json Apply UseCases functions for conditional requirements of ChassisType and ManagerType --- .../OCPBaselineHardwareManagement.v1_1_0.json | 339 ++++++------------ 1 file changed, 109 insertions(+), 230 deletions(-) diff --git a/HWMgmt/OCPBaselineHardwareManagement.v1_1_0.json b/HWMgmt/OCPBaselineHardwareManagement.v1_1_0.json index c1e5d8b..4bbe555 100644 --- a/HWMgmt/OCPBaselineHardwareManagement.v1_1_0.json +++ b/HWMgmt/OCPBaselineHardwareManagement.v1_1_0.json @@ -31,177 +31,105 @@ } }, "Chassis": { - "PropertyRequirements": { - "AssetTag": { - "ReadRequirement": "Recommended", - "WriteRequirement": "Recommended" - }, - "ChassisType": {}, - "IndicatorLED": { - "ReadRequirement": "Recommended", - "WriteRequirement": "Recommended", - "ConditionalRequirements": [{ + "UseCases": [{ + "UseCaseTitle": "The primary Chassis requirements.", + "UseCaseKeyProperty": "ChassisType", + "UseCaseComparison": "Equal", + "UseCaseKeyValues": ["Drawer", "RackMount", "Sled"], + "PropertyRequirements": { + "AssetTag": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" + }, + "ChassisType": {}, + "IndicatorLED": { "Purpose": "Either IndicatorLED or LocationIndicatorActive must be implemented. In 2020.3, IndicatorLED was deprecated for LocationIndicatorActive.", - "ReplacedByProperty": "LocationIndicatorActive", "ReadRequirement": "Mandatory", "WriteRequirement": "Mandatory", - "CompareType": "AnyOf", - "CompareProperty": "ChassisType", - "CompareValues": ["Drawer", "RackMount", "Sled"] - }] - }, - "LocationIndicatorActive": { - "ReadRequirement": "Recommended", - "WriteRequirement": "Recommended", - "ConditionalRequirements": [{ + "ReplacedByProperty": "LocationIndicatorActive" + }, + "LocationIndicatorActive": { "Purpose": "Either IndicatorLED or LocationIndicatorActive must be implemented. In 2020.3, IndicatorLED was deprecated for LocationIndicatorActive.", - "ReplacesProperty": "IndicatorLED", "ReadRequirement": "Mandatory", "WriteRequirement": "Mandatory", - "CompareType": "AnyOf", - "CompareProperty": "ChassisType", - "CompareValues": ["Drawer", "RackMount", "Sled"] - }] - }, - "Manufacturer": { - "ReadRequirement": "Recommended" - }, - "Model": { - "ReadRequirement": "Recommended", - "ConditionalRequirements": [ - { - "Purpose": "Model is required if ChassisType are specific values", - "ReadRequirement": "Mandatory", - "CompareType": "AnyOf", - "CompareProperty": "ChassisType", - "CompareValues": ["Drawer", "RackMount", "Sled"] - } - ] - }, - "SerialNumber": { - "ReadRequirement": "Recommended", - "ConditionalRequirements": [ - { - "Purpose": "SerialNumber is required if ChassisType are specific values", - "ReadRequirement": "Mandatory", - "CompareType": "AnyOf", - "CompareProperty": "ChassisType", - "CompareValues": ["Drawer", "RackMount", "Sled"] - } - ] - }, - "SKU": { - "ReadRequirement": "Recommended" - }, - "PartNumber": { - "ReadRequirement": "Recommended" - }, - "PowerState": { - "ReadRequirement": "Recommended", - "ConditionalRequirements": [ - { - "Purpose": "SerialNumber is required if ChassisType are specific values", - "ReadRequirement": "Mandatory", - "CompareType": "AnyOf", - "CompareProperty": "ChassisType", - "CompareValues": ["Drawer", "RackMount", "Sled"] + "ReplacesProperty": "IndicatorLED" + }, + "Manufacturer": { + "ReadRequirement": "Recommended" + }, + "Model": {}, + "SerialNumber": {}, + "SKU": { + "ReadRequirement": "Recommended" + }, + "PartNumber": { + "ReadRequirement": "Recommended" + }, + "PowerState": {}, + "Status": { + "PropertyRequirements": { + "State": {}, + "Health": {} } - ] - }, - "Status": { - "PropertyRequirements": { - "State": {}, - "Health": {} - } - }, - "Thermal": { - "ReadRequirement": "Recommended", - "ConditionalRequirements": [{ + }, + "Thermal": { "Purpose": "Either the Thermal or ThermalSubsystem resource must be implemented. In 2020.4, Thermal resource was deprecated for ThermalSubsystem.", - "ReplacedByProperty": "ThermalSubsystem", "ReadRequirement": "Mandatory", - "CompareType": "AnyOf", - "CompareProperty": "ChassisType", - "CompareValues": ["Drawer", "RackMount", "Sled"] - }] - }, - "ThermalSubsystem": { - "ReadRequirement": "Recommended", - "ConditionalRequirements": [{ + "WriteRequirement": "Mandatory", + "ReplacedByProperty": "ThermalSubsystem" + }, + "ThermalSubsystem": { "Purpose": "Either the Thermal or ThermalSubsystem resource must be implemented. In 2020.4, Thermal resource was deprecated for ThermalSubsystem.", - "ReplacesProperty": "Thermal", "ReadRequirement": "Mandatory", - "CompareType": "AnyOf", - "CompareProperty": "ChassisType", - "CompareValues": ["Drawer", "RackMount", "Sled"] - }] - }, - "Power": { - "ReadRequirement": "Recommended", - "ConditionalRequirements": [{ + "WriteRequirement": "Mandatory", + "ReplacesProperty": "Thermal" + }, + "Power": { "Purpose": "Either the Power or PowerSubsystem resource must be implemented. In 2020.4, Power resource was deprecated for PowerSubsystem.", - "ReplacedByProperty": "PowerSubsystem", "ReadRequirement": "Mandatory", - "CompareType": "AnyOf", - "CompareProperty": "ChassisType", - "CompareValues": ["Drawer", "RackMount", "Sled"] - }] - }, - "PowerSubsystem": { - "ReadRequirement": "Recommended", - "ConditionalRequirements": [{ + "WriteRequirement": "Mandatory", + "ReplacedByProperty": "PowerSubsystem" + }, + "PowerSubsystem": { "Purpose": "Either the Power or PowerSubsystem resource must be implemented. In 2020.4, Power resource was deprecated for PowerSubsystem.", - "ReplacesProperty": "Power", "ReadRequirement": "Mandatory", - "CompareType": "AnyOf", - "CompareProperty": "ChassisType", - "CompareValues": ["Drawer", "RackMount", "Sled"] - }] - }, - "EnvironmentMetrics": { - "ReadRequirement": "Recommended", - "ConditionalRequirements": [{ - "Purpose": "If the PowerSubsystem resource is present, this resource must be implemented.", - "CompareProperty": "PowerSubsystem", - "CompareType": "Present", - "ReadRequirement": "Mandatory" - }] - }, - "Sensors": { - "ReadRequirement": "Recommended", - "ConditionalRequirements": [{ - "Purpose": "In the PowerSubsystem, the Sensors resource must be implemented.", - "CompareProperty": "PowerSubsystem", - "CompareType": "Present", - "ReadRequirement": "Mandatory" - }] - }, - "Controls": { - "ReadRequirement": "Recommended", - "ConditionalRequirements": [{ - "Purpose": "In the PowerSubsystem, the Controls resource must be implemented.", - "CompareProperty": "PowerSubsystem", - "CompareType": "Present", - "ReadRequirement": "Mandatory" - }] - }, - "Links": { - "PropertyRequirements": { - "ManagedBy": { - "ReadRequirement": "Recommended", - "ConditionalRequirements": [ - { - "Purpose": "ManagedBy is required if ChassisType are specific values", - "ReadRequirement": "Mandatory", - "CompareType": "AnyOf", - "CompareProperty": "ChassisType", - "CompareValues": ["Drawer", "RackMount", "Sled"] - } - ] + "WriteRequirement": "Mandatory", + "ReplacesProperty": "Power" + }, + "EnvironmentMetrics": { + "ReadRequirement": "Recommended", + "ConditionalRequirements": [{ + "Purpose": "If the PowerSubsystem resource is present, this resource must be implemented.", + "CompareProperty": "PowerSubsystem", + "CompareType": "Present", + "ReadRequirement": "Mandatory" + }] + }, + "Sensors": { + "ReadRequirement": "Recommended", + "ConditionalRequirements": [{ + "Purpose": "In the PowerSubsystem, the Sensors resource must be implemented.", + "CompareProperty": "PowerSubsystem", + "CompareType": "Present", + "ReadRequirement": "Mandatory" + }] + }, + "Controls": { + "ReadRequirement": "Recommended", + "ConditionalRequirements": [{ + "Purpose": "In the PowerSubsystem, the Controls resource must be implemented.", + "CompareProperty": "PowerSubsystem", + "CompareType": "Present", + "ReadRequirement": "Mandatory" + }] + }, + "Links": { + "PropertyRequirements": { + "ManagedBy": {} } } } - } + }] }, "ChassisCollection": { "PropertyRequirements": { @@ -334,89 +262,40 @@ } }, "Manager": { - "PropertyRequirements": { + "UseCases": [{ + "UseCaseTitle": "The Manager providing Redfish service.", + "UseCaseKeyProperty": "ManagerType", + "UseCaseComparison": "Equal", + "UseCaseKeyValues": ["BMC", "RackManager", "EnclosureManager"], + "PropertyRequirements": { "ManagerType": {}, - "UUID": { - "ReadRequirement": "Recommended", - "ConditionalRequirements": [ - { - "Purpose": "UUID is required if ManagerType are specific values", - "ReadRequirement": "Mandatory", - "CompareType": "AnyOf", - "CompareProperty": "ManagerType", - "CompareValues": ["BMC"] - } - ] - }, - "Status": {}, - "FirmwareVersion": { - "ReadRequirement": "Recommended", - "ConditionalRequirements": [ - { - "Purpose": "FirmwareVersion is required if ManagerType are specific values", - "ReadRequirement": "Mandatory", - "CompareType": "AnyOf", - "CompareProperty": "ManagerType", - "CompareValues": ["BMC"] - } - ] - }, - "NetworkProtocol": { - "ReadRequirement": "Recommended", - "ConditionalRequirements": [ - { - "Purpose": "NetworkProtocol is required if ManagerType are specific values", - "ReadRequirement": "Mandatory", - "CompareType": "AnyOf", - "CompareProperty": "ManagerType", - "CompareValues": ["BMC"] - } - ] - }, - "EthernetInterfaces": { - "ReadRequirement": "Recommended", - "ConditionalRequirements": [ - { - "Purpose": "EthernetInterfaces is required if ManagerType are specific values", - "ReadRequirement": "Mandatory", - "CompareType": "AnyOf", - "CompareProperty": "ManagerType", - "CompareValues": ["BMC"] - } - ] - }, - "LogServices": { - "ReadRequirement": "Recommended", - "ConditionalRequirements": [ - { - "Purpose": "LogServices is required if ManagerType are specific values", - "ReadRequirement": "Mandatory", - "CompareType": "AnyOf", - "CompareProperty": "ManagerType", - "CompareValues": ["BMC"] - } - ] - }, - "Links": { - "PropertyRequirements": { - "ManagerForServers": { - "ReadRequirement": "IfImplemented" - }, - "ManagerForChassis": { - "ReadRequirement": "IfImplemented" + "UUID": {}, + "Status": {}, + "FirmwareVersion": {}, + "NetworkProtocol": {}, + "EthernetInterfaces": {}, + "LogServices": {}, + "Links": { + "PropertyRequirements": { + "ManagerForServers": { + "ReadRequirement": "IfImplemented" + }, + "ManagerForChassis": { + "ReadRequirement": "IfImplemented" + } } } - } - }, - "ActionRequirements": { - "Reset": { - "Parameters": { - "ResetType": { - "MinSupportValues": ["ForceRestart"] + }, + "ActionRequirements": { + "Reset": { + "Parameters": { + "ResetType": { + "MinSupportValues": ["ForceRestart"] + } } } } - } + }] }, "ManagerNetworkProtocol": { "PropertyRequirements": { From a60945e91f339e7c55db679c77ece3d70806b9bf Mon Sep 17 00:00:00 2001 From: Linda Wu Date: Wed, 27 Mar 2024 18:26:24 -0700 Subject: [PATCH 4/4] Update OCPBaselineHardwareManagement.v1_1_0.json Add ReadRequirement for UseCases --- HWMgmt/OCPBaselineHardwareManagement.v1_1_0.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/HWMgmt/OCPBaselineHardwareManagement.v1_1_0.json b/HWMgmt/OCPBaselineHardwareManagement.v1_1_0.json index 4bbe555..6e84990 100644 --- a/HWMgmt/OCPBaselineHardwareManagement.v1_1_0.json +++ b/HWMgmt/OCPBaselineHardwareManagement.v1_1_0.json @@ -32,10 +32,11 @@ }, "Chassis": { "UseCases": [{ - "UseCaseTitle": "The primary Chassis requirements.", + "UseCaseTitle": "The primary Chassis requirements", "UseCaseKeyProperty": "ChassisType", "UseCaseComparison": "Equal", "UseCaseKeyValues": ["Drawer", "RackMount", "Sled"], + "ReadRequirement": "IfImplemented", "PropertyRequirements": { "AssetTag": { "ReadRequirement": "Recommended", @@ -263,10 +264,11 @@ }, "Manager": { "UseCases": [{ - "UseCaseTitle": "The Manager providing Redfish service.", + "UseCaseTitle": "The Manager providing Redfish service", "UseCaseKeyProperty": "ManagerType", "UseCaseComparison": "Equal", "UseCaseKeyValues": ["BMC", "RackManager", "EnclosureManager"], + "ReadRequirement": "IfImplemented", "PropertyRequirements": { "ManagerType": {}, "UUID": {},