diff --git a/redfish-interop-profiles/OpenStackIronicProfile.v1_0_0.json b/redfish-interop-profiles/OpenStackIronicProfile.v1_0_0.json deleted file mode 100644 index a9571bb2ff..0000000000 --- a/redfish-interop-profiles/OpenStackIronicProfile.v1_0_0.json +++ /dev/null @@ -1,221 +0,0 @@ -{ - "@Redfish.Copyright": "Copyright (c) 2020-2022 Dell Inc. or its subsidiaries.", - "@Redfish.License": "Apache License, Version 2.0. For full text, see link: http://www.apache.org/licenses/LICENSE-2.0", - "SchemaDefinition": "RedfishInteroperabilityProfile.v1_5_1", - "ProfileName": "OpenStackIronicProfile", - "ProfileVersion": "1.0.0", - "Purpose": "Specifies the OpenStack Ironic vendor-independent Redfish service requirements, typically offered by a baseboard management controller (BMC).", - "OwningEntity": "Ironic community", - "ContactInfo": "openstack-discuss@lists.openstack.org", - "Protocol": { - "MinVersion": "1.6.0" - }, - "Resources": { - "Bios": { - "ReadRequirement": "Recommended", - "PropertyRequirements": { - "Attributes": {} - }, - "ActionRequirements": { - "ResetBios": {} - } - }, - "ComputerSystem": { - "PropertyRequirements": { - "AssetTag": { - "ReadRequirement": "Recommended" - }, - "Bios": { - "ReadRequirement": "Recommended" - }, - "BiosVersion": { - "ReadRequirement": "Recommended" - }, - "Boot": { - "PropertyRequirements": { - "BootSourceOverrideEnabled": { - "WriteRequirement": "Mandatory", - "MinSupportValues": [ - "Disabled", - "Once", - "Continuous" - ] - }, - "BootSourceOverrideMode": { - "WriteRequirement": "Mandatory", - "MinSupportValues": [ - "UEFI" - ] - }, - "BootSourceOverrideTarget": { - "WriteRequirement": "Mandatory", - "MinSupportValues": [ - "Pxe", - "Hdd", - "Cd", - "BiosSetup" - ] - } - } - }, - "IndicatorLED": { - "WriteRequirement": "Recommended", - "ReadRequirement": "Recommended", - "MinSupportValues": [ - "Lit", - "Off", - "Blinking" - ] - }, - "Links": { - "PropertyRequirements": { - "Chassis": {}, - "ManagedBy": {} - } - }, - "Manufacturer": { - "ReadRequirement": "Recommended" - }, - "MemorySummary": { - "PropertyRequirements": { - "TotalSystemMemoryGiB": {} - } - }, - "PowerState": {}, - "Processors": {}, - "SimpleStorage": { - "ReadRequirement": "Conditional", - "ConditionalRequirements": [ - { - "Purpose": "Either SimpleStorage or Storage must be present, even if the system is disk-less.", - "CompareProperty": "Storage", - "CompareType": "Absent", - "ReadRequirement": "Mandatory" - } - ] - }, - "Status": { - "PropertyRequirements": { - "Health": {}, - "State": {} - } - }, - "Storage": { - "ReadRequirement": "Conditional", - "ConditionalRequirements": [ - { - "Purpose": "Either SimpleStorage or Storage must be present, even if the system is disk-less.", - "CompareProperty": "SimpleStorage", - "CompareType": "Absent", - "ReadRequirement": "Mandatory" - } - ] - }, - "SystemType": {} - }, - "ActionRequirements": { - "Reset": { - "Parameters": { - "ResetType": { - "ParameterValues": [ - "On", - "ForceOff", - "GracefulShutdown", - "GracefulRestart", - "ForceRestart", - "Nmi" - ] - } - } - } - } - }, - "Drive": { - "ReadRequirement": "IfPopulated", - "Purpose": "Either SimpleStorage or Storage must be present, even if the system is disk-less.", - "PropertyRequirements": { - "CapacityBytes": { - "ReadRequirement": "IfPopulated" - }, - "Status": { - "PropertyRequirements": { - "Health": {}, - "State": {} - } - } - } - }, - "EthernetInterface": { - "URIs": [ - "/redfish/v1/Systems/{ComputerSystemId}/EthernetInterfaces/{EthernetInterfaceId}" - ], - "PropertyRequirements": { - "MACAddress": {}, - "Status": { - "PropertyRequirements": { - "Health": {}, - "State": {} - } - } - } - }, - "Processor": { - "PropertyRequirements": { - "ProcessorArchitecture": {}, - "Status": { - "PropertyRequirements": { - "Health": {}, - "State": {} - } - }, - "TotalThreads": {} - } - }, - "SimpleStorage": { - "ReadRequirement": "IfPopulated", - "Purpose": "Either SimpleStorage or Storage must be present, even if the system is disk-less.", - "PropertyRequirements": { - "Devices": { - "PropertyRequirements": { - "CapacityBytes": { - "ReadRequirement": "IfPopulated" - }, - "Status": { - "PropertyRequirements": { - "Health": {}, - "State": {} - } - } - } - } - } - }, - "VirtualMedia": { - "PropertyRequirements": { - "Image": {}, - "Inserted": { - "ReadRequirement": "Recommended" - }, - "MediaTypes": { - "ReadRequirement": "Recommended" - }, - "WriteProtected": { - "ReadRequirement": "Recommended" - } - }, - "ActionRequirements": { - "EjectMedia": {}, - "InsertMedia": { - "Parameters": { - "Inserted": { - "ReadRequirement": "Recommended" - }, - "WriteProtected": { - "ReadRequirement": "Recommended" - } - } - } - } - } - } -} \ No newline at end of file diff --git a/redfish-interop-profiles/OpenStackIronicProfile.v1_1_0.json b/redfish-interop-profiles/OpenStackIronicProfile.v1_1_0.json new file mode 100644 index 0000000000..3c606e547f --- /dev/null +++ b/redfish-interop-profiles/OpenStackIronicProfile.v1_1_0.json @@ -0,0 +1,561 @@ +{ + "License": "Apache License, Version 2.0. For full text, see link: http://www.apache.org/licenses/LICENSE-2.0", + "SchemaDefinition": "RedfishInteroperabilityProfile.v1_8_0", + "ProfileName": "OpenStackIronicProfile", + "ProfileVersion": "1.1.0", + "Purpose": "Specifies the OpenStack Ironic vendor-independent Redfish service requirements, typically offered by a baseboard management controller (BMC).", + "OwningEntity": "Ironic community", + "ContactInfo": "openstack-discuss@lists.openstack.org", + "Protocol": { + "MinVersion": "1.6.0" + }, + "Resources": { + "Bios": { + "Purpose": "Allows reading or changing BIOS settings.", + "ReadRequirement": "Recommended", + "PropertyRequirements": { + "Attributes": { + "Purpose": "Current BIOS settings." + }, + "AttributeRegistry": { + "Purpose": "Name of the registry with the schema of BIOS settings.", + "ReadRequirement": "Recommended" + }, + "@Redfish.Settings": { + "PropertyRequirements": { + "ETag": { + "ReadRequirement": "Recommended" + }, + "Messages": { + "Purpose": "Used to determine success or failure.", + "ReadRequirement": "Recommended" + }, + "SettingsObject": { + "Purpose": "Provides a link to the actually updated object.", + "Comparison": "LinkToResource", + "Values": ["Bios"] + }, + "SupportedApplyTimes": { + "Purpose": "Determines whether update is immediate or needs a reboot.", + "ReadRequirement": "Recommended", + "MinSupportValues": [ + "OnReset" + ] + } + } + } + }, + "ActionRequirements": { + "ResetBios": { + "Purpose": "Reset BIOS settings to their factory values.", + "ReadRequirement": "Recommended" + } + } + }, + "Chassis": { + "Purpose": "Allows collecting sensors data from the chassis.", + "ReadRequirement": "Recommended", + "PropertyRequirements": { + "Power": { + "Purpose": "Provides a link to the power information.", + "ReadRequirement": "Recommended", + "Comparison": "LinkToResource", + "Values": ["Power"] + }, + "Thermal": { + "Purpose": "Provides a link to the thermal information.", + "ReadRequirement": "Recommended", + "Comparison": "LinkToResource", + "Values": ["Thermal"] + }, + "UUID": { + "Purpose": "Used as an ID for indicators.", + "ReadRequirement": "Recommended" + } + } + }, + "ComputerSystemCollection": { + "Purpose": "At least one system is expected.", + "PropertyRequirements": { + "Members": { + "MinCount": 1 + } + } + }, + "ComputerSystem": { + "Purpose": "Provides bare-metal node management.", + "PropertyRequirements": { + "Bios": { + "Purpose": "Reference to the corresponding Bios resource.", + "ReadRequirement": "Recommended" + }, + "BiosVersion": { + "Purpose": "Version of the system firmware.", + "ReadRequirement": "Recommended" + }, + "Boot": { + "Purpose": "Allows changing boot devices and modes, which is fundamental for bare-metal provisioning.", + "PropertyRequirements": { + "BootSourceOverrideEnabled": { + "Purpose": "Manages whether the next boot device will be permanent or one-time.", + "WriteRequirement": "Mandatory", + "MinSupportValues": [ + "Once", + "Continuous" + ] + }, + "BootSourceOverrideMode": { + "Purpose": "Allows switching boot mode to/from UEFI.", + "WriteRequirement": "Mandatory" + }, + "BootSourceOverrideTarget": { + "Purpose": "Allows changing the next boot device.", + "WriteRequirement": "Mandatory", + "MinSupportValues": [ + "Pxe", + "Hdd", + "Cd" + ] + } + } + }, + "EthernetInterfaces": { + "Purpose": "Provides a link to the node's network interfaces.", + "ReadRequirement": "Recommended", + "Comparison": "LinkToResource", + "Values": ["EthernetInterfaceCollection"] + }, + "IndicatorLED": { + "Purpose": "Enables the bare-metal indicator API.", + "WriteRequirement": "Recommended", + "ReadRequirement": "Recommended", + "Comparison": "AnyOf", + "Values": [ + "Lit", + "Off", + "Blinking" + ] + }, + "Links": { + "PropertyRequirements": { + "Chassis": { + "Purpose": "Provides sensor data.", + "ReadRequirement": "Recommended" + }, + "ManagedBy": { + "Purpose": "Provides a link from the node to its BMC." + } + } + }, + "Manufacturer": { + "Purpose": "Provides the 'vendor' property.", + "ReadRequirement": "Recommended" + }, + "MemorySummary": { + "Purpose": "Provides memory data during out-of-band inspection.", + "ReadRequirement": "Recommended", + "PropertyRequirements": { + "TotalSystemMemoryGiB": {} + } + }, + "PowerState": { + "Purpose": "Provides the current power state." + }, + "Processors": { + "Purpose": "Provides a link to the node's CPUs.", + "ReadRequirement": "Recommended", + "Comparison": "LinkToResource", + "Values": ["ProcessorCollection"] + }, + "SecureBoot": { + "Purpose": "Provides a link to the node's secure boot settings.", + "ReadRequirement": "Recommended", + "Comparison": "LinkToResource", + "Values": ["SecureBoot"] + }, + "SimpleStorage": { + "Purpose": "Provides disk data during out-of-band inspection.", + "ReadRequirement": "Recommended", + "Comparison": "LinkToResource", + "Values": ["SimpleStorageCollection"] + }, + "Storage": { + "Purpose": "Enables hardware RAID management.", + "ReadRequirement": "Recommended", + "Comparison": "LinkToResource", + "Values": ["StorageCollection"] + }, + "VirtualMedia": { + "Purpose": "Enables provisioning using virtual media.", + "ReadRequirement": "IfImplemented", + "Comparison": "LinkToResource", + "Values": ["VirtualMediaCollection"] + } + }, + "ActionRequirements": { + "Reset": { + "Purpose": "Provides an ability to execute power actions on the node.", + "Parameters": { + "ResetType": { + "ParameterValues": [ + "On", + "ForceOff", + "ForceRestart" + ], + "RecommendedValues": [ + "GracefulShutdown", + "GracefulRestart", + "Nmi" + ], + "ReadRequirement": "Mandatory" + } + } + } + } + }, + "Drive": { + "ReadRequirement": "Recommended", + "Purpose": "Provides information about individual drives when configuring hardware RAID.", + "PropertyRequirements": { + "CapacityBytes": { + "ReadRequirement": "Recommended" + }, + "MediaType": {}, + "Protocol": {}, + "Status": { + "PropertyRequirements": { + "Health": {}, + "State": {} + } + } + } + }, + "EthernetInterface": { + "Purpose": "Enables enrolling ports during inspection.", + "ReadRequirement": "Recommended", + "URIs": [ + "/redfish/v1/Systems/{ComputerSystemId}/EthernetInterfaces/{EthernetInterfaceId}" + ], + "PropertyRequirements": { + "MACAddress": { + "Purpose": "MAC address is mandatory on ports." + }, + "Status": { + "PropertyRequirements": { + "Health": { + "Purpose": "Only healthy interfaces are considered." + }, + "State": { + "Purpose": "Enables filtering only enabled interfaces." + } + } + } + } + }, + "Manager": { + "Purpose": "Provides access to the properties of the BMC.", + "ReadRequirement": "Recommended", + "PropertyRequirements": { + "FirmwareVersion": { + "Purpose": "Provides the current firmware version of the BMC.", + "ReadRequirement": "Recommended" + } + } + }, + "Power": { + "Purpose": "Provides the current power information in the sensor data.", + "ReadRequirement": "Recommended", + "PropertyRequirements": { + "PowerSupplies": { + "Purpose": "Provides a list of the installed power supplies.", + "PropertyRequirements": { + "LastPowerOutputWatts": { + "ReadRequirement": "Recommended" + }, + "LineInputVoltage": { + "ReadRequirement": "Recommended" + }, + "PowerCapacityWatts": { + "ReadRequirement": "Recommended" + }, + "SerialNumber": { + "ReadRequirement": "Recommended" + }, + "Status": { + "PropertyRequirements": { + "Health": { + "Purpose": "Health status to report in the sensors data.", + "ReadRequirement": "Recommended" + }, + "State": { + "Purpose": "Power state to report in the sensors data.", + "ReadRequirement": "Recommended" + } + } + } + } + } + } + }, + "Processor": { + "Purpose": "Provides CPU data during out-of-band inspection.", + "ReadRequirement": "Recommended", + "PropertyRequirements": { + "ProcessorArchitecture": { + "Purpose": "Used to determine the CPU architecture of the machine." + }, + "TotalThreads": { + "Purpose": "Used to estimate the core count." + } + } + }, + "SecureBoot": { + "Purpose": "Allows turning secure boot mode on and off.", + "ReadRequirement": "Recommended", + "PropertyRequirements": { + "SecureBootEnable": { + "Purpose": "Allows reading and changing the secure boot state.", + "WriteRequirement": "Recommended" + } + }, + "ActionRequirements": { + "ResetKeys": { + "Purpose": "Allows resetting secure boot keys via a step.", + "ReadRequirement": "Recommended" + } + } + }, + "ServiceRoot": { + "Purpose": "Provides links to all collections and services.", + "PropertyRequirements": { + "Systems": { + "Purpose": "Provides a link to systems.", + "Comparison": "LinkToResource", + "Values": ["ComputerSystemCollection"] + }, + "SessionService": { + "Purpose": "Provides a link to the session service.", + "ReadRequirement": "Recommended", + "Comparison": "LinkToResource", + "Values": ["SessionService"] + }, + "TaskService": { + "Purpose": "Provides a link to the task service.", + "ReadRequirement": "Recommended", + "Comparison": "LinkToResource", + "Values": ["TaskService"] + }, + "UpdateService": { + "Purpose": "Provides a link to the update service.", + "ReadRequirement": "Recommended", + "Comparison": "LinkToResource", + "Values": ["UpdateService"] + } + } + }, + "SessionService": { + "Purpose": "Allows using sessions for authentication instead of HTTP basic authentication.", + "ReadRequirement": "Recommended" + }, + "SimpleStorage": { + "Purpose": "Provides information about disks during inspection as well as disk sensors.", + "ReadRequirement": "Recommended", + "PropertyRequirements": { + "Devices": { + "PropertyRequirements": { + "CapacityBytes": { + "Purpose": "Disk capacity.", + "ReadRequirement": "Recommended" + }, + "Model": { + "Purpose": "Device model to report in the sensors data.", + "ReadRequirement": "Recommended" + }, + "Name": { + "Purpose": "Device name to report in the sensors data.", + "ReadRequirement": "Recommended" + }, + "Status": { + "PropertyRequirements": { + "Health": { + "Purpose": "Health status to report in the sensors data.", + "ReadRequirement": "Recommended" + }, + "State": { + "Purpose": "Device state to report in the sensors data.", + "ReadRequirement": "Recommended" + } + } + } + } + } + } + }, + "Storage": { + "Purpose": "Allows configuring hardware RAID.", + "ReadRequirement": "Recommended", + "MinVersion": "1.6.0", + "PropertyRequirements": { + "Drives": { + "Purpose": "Provides a link to attached drives.", + "Comparison": "LinkToResource", + "Values": ["DriveCollection"] + }, + "StorageControllers": { + "Purpose": "Provides information about storage controllers.", + "MinCount": 1, + "PropertyRequirements": { + "SupportedRAIDTypes": { + "ReadRequirement": "Recommended", + "Purpose": "Defines which RAID types are supported." + } + } + }, + "Volumes": { + "Purpose": "Provides a link to existing volumes.", + "Comparison": "LinkToResource", + "Values": ["VolumeCollection"] + } + } + }, + "TaskService": { + "Purpose": "Provides task management.", + "ReadRequirement": "Recommended" + }, + "Thermal": { + "Purpose": "Provides thermal information of a chassis as part of the sensors data.", + "ReadRequirement": "Recommended", + "MinVersion": "1.0.1", + "PropertyRequirements": { + "Fans": { + "PropertyRequirements": { + "MaxReadingRange": { + "ReadRequirement": "Recommended" + }, + "MinReadingRange": { + "ReadRequirement": "Recommended" + }, + "Reading": {}, + "ReadingUnits": {}, + "SerialNumber": { + "ReadRequirement": "Recommended" + }, + "Status": { + "PropertyRequirements": { + "Health": { + "Purpose": "Health status to report in the sensors data.", + "ReadRequirement": "Recommended" + }, + "State": { + "Purpose": "Device state to report in the sensors data.", + "ReadRequirement": "Recommended" + } + } + } + } + }, + "Temperatures": { + "PropertyRequirements": { + "MaxReadingRangeTemp": { + "ReadRequirement": "Recommended" + }, + "MinReadingRangeTemp": { + "ReadRequirement": "Recommended" + }, + "ReadingCelsius": {}, + "PhysicalContext": { + "ReadRequirement": "Recommended" + }, + "SensorNumber": { + "ReadRequirement": "Recommended" + } + } + } + } + }, + "UpdateService": { + "ReadRequirement": "Recommended", + "ActionRequirements": { + "SimpleUpdate": { + "Purpose": "Enables firmware updates.", + "Parameters": { + "ImageURI": {}, + "Targets": { + "ReadRequirement": "Recommended" + }, + "TransferProtocol": {} + } + } + } + }, + "VirtualMedia": { + "Purpose": "Enables provisioning using virtual media.", + "PropertyRequirements": { + "Image": { + "Purpose": "URL of the image to attach.", + "WriteRequirement": "Recommended" + }, + "Inserted": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" + }, + "MediaTypes": { + "Purpose": "Supported media types for this virtual media slot." + }, + "WriteProtected": { + "ReadRequirement": "Recommended", + "WriteRequirement": "Recommended" + } + }, + "ActionRequirements": { + "EjectMedia": { + "Purpose": "Enables ejecting virtual media devices." + }, + "InsertMedia": { + "Purpose": "Enables inserting virtual media devices.", + "Parameters": { + "Image": {}, + "Inserted": { + "ReadRequirement": "Recommended" + }, + "TransferMethod": { + "ReadRequirement": "Recommended" + }, + "TransferProtocolType": { + "ReadRequirement": "Recommended" + }, + "WriteProtected": { + "ReadRequirement": "Recommended" + } + } + } + } + }, + "Volume": { + "Purpose": "Provides access to RAID volumes.", + "ReadRequirement": "Recommended", + "MinVersion": "1.3.1", + "PropertyRequirements": { + "CapacityBytes": {}, + "Name": {}, + "RAIDType": { + "ReadRequirement": "Recommended" + } + } + }, + "VolumeCollection": { + "Purpose": "Allows listing and creating RAID volumes.", + "ReadRequirement": "Recommended", + "CreateResource": true, + "PropertyRequirements": { + "@Redfish.OperationApplyTimeSupport": {} + } + } + }, + "Registries": { + "Base": { + "MinVersion": "1.0.0", + "Messages": {} + } + } +} diff --git a/releasenotes/notes/redfish-interop-1c2b5e3aeb10fea4.yaml b/releasenotes/notes/redfish-interop-1c2b5e3aeb10fea4.yaml new file mode 100644 index 0000000000..34085e1d2e --- /dev/null +++ b/releasenotes/notes/redfish-interop-1c2b5e3aeb10fea4.yaml @@ -0,0 +1,6 @@ +--- +other: + - | + The Redfish interoperability profile 1.0.0 has been replaced with version + 1.1.0 that adds a lot of missing resources and fields, and clarifies + their purpose. diff --git a/zuul.d/ironic-jobs.yaml b/zuul.d/ironic-jobs.yaml index 3c159d7995..fc7ce8c27a 100644 --- a/zuul.d/ironic-jobs.yaml +++ b/zuul.d/ironic-jobs.yaml @@ -23,6 +23,7 @@ - ^install-guide/.*$ - ^ironic/locale/.*$ - ^ironic/tests/.*$ + - ^redfish-interop-profiles/.*$ - ^releasenotes/.*$ - ^setup.cfg$ - ^test-requirements.txt$ @@ -188,6 +189,7 @@ - ^install-guide/.*$ - ^ironic/locale/.*$ - ^ironic/tests/.*$ + - ^redfish-interop-profiles/.*$ - ^releasenotes/.*$ - ^setup.cfg$ - ^test-requirements.txt$ @@ -237,18 +239,6 @@ direct and ansible deploy interfaces, rescue it's not enabled. required-projects: - opendev.org/openstack/sushy-tools - irrelevant-files: - - ^.*\.rst$ - - ^api-ref/.*$ - - ^doc/.*$ - - ^install-guide/.*$ - - ^ironic/locale/.*$ - - ^ironic/tests/.*$ - - ^releasenotes/.*$ - - ^setup.cfg$ - - ^test-requirements.txt$ - - ^tools/.*$ - - ^tox.ini$ vars: tempest_test_regex: ironic_standalone tempest_concurrency: 2 @@ -295,18 +285,6 @@ Test also uses Redfish. required-projects: - opendev.org/openstack/sushy-tools - irrelevant-files: - - ^.*\.rst$ - - ^api-ref/.*$ - - ^doc/.*$ - - ^install-guide/.*$ - - ^ironic/locale/.*$ - - ^ironic/tests/.*$ - - ^releasenotes/.*$ - - ^setup.cfg$ - - ^test-requirements.txt$ - - ^tools/.*$ - - ^tox.ini$ vars: tempest_test_regex: BaremetalRedfishIPxeAnacondaNoGlance tempest_test_timeout: 4800 @@ -609,6 +587,7 @@ # This job is also run on inspector - ^ironic_inspector/locale/.*$ - ^ironic_inspector/test/.*$ + - ^redfish-interop-profiles/.*$ - ^releasenotes/.*$ - ^setup.cfg$ - ^test-requirements.txt$ @@ -699,6 +678,7 @@ - ^install-guide/.*$ - ^ironic/locale/.*$ - ^ironic/tests/.*$ + - ^redfish-interop-profiles/.*$ - ^releasenotes/.*$ - ^setup.cfg$ - ^tools/.*$ @@ -919,6 +899,7 @@ - ^install-guide/.*$ - ^ironic/locale/.*$ - ^ironic/tests/.*$ + - ^redfish-interop-profiles/.*$ - ^releasenotes/.*$ - ^setup.cfg$ - ^tox.ini$ @@ -1050,6 +1031,7 @@ - ^install-guide/.*$ - ^ironic/locale/.*$ - ^ironic/tests/.*$ + - ^redfish-interop-profiles/.*$ - ^releasenotes/.*$ - ^setup.cfg$ - ^tools/.*$ @@ -1146,6 +1128,7 @@ - ^install-guide/.*$ - ^ironic/locale/.*$ - ^ironic/tests/.*$ + - ^redfish-interop-profiles/.*$ - ^releasenotes/.*$ - ^setup.cfg$ - ^tools/.*$