Bug 2011626 - Supermicro X12 URL validation failure using Redfish BM HW Provisioning
Summary: Supermicro X12 URL validation failure using Redfish BM HW Provisioning
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: OpenShift Container Platform
Classification: Red Hat
Component: Bare Metal Hardware Provisioning
Version: 4.8
Hardware: x86_64
OS: Linux
high
high
Target Milestone: ---
: 4.10.0
Assignee: Jacob Anders
QA Contact: Pedro Amoedo
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2021-10-06 22:03 UTC by Dave Cain
Modified: 2022-05-02 18:39 UTC (History)
10 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Previously, the Infrastructure Operator could not provision X11- and X12-based systems due to validation errors created by the bare metal controller (BMC) when special characters such as question marks or equal signs were used in the `filename` parameters of URLs. With this update, the `filename` parameter is removed from the URL if the virtual media image is backed by a local file. (link:https://bugzilla.redhat.com/show_bug.cgi?id=2011626[*BZ#2011626*])
Clone Of:
Environment:
Last Closed: 2022-05-02 18:38:50 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Github openshift ironic-image pull 226 0 None Merged Bug 2014630: Update ironic to fix image provisioning fails with file name too long 2021-10-28 08:06:51 UTC
OpenStack gerrit 812795 0 None MERGED Do not append filename parameter to image URL when using local file 2022-03-28 08:50:02 UTC
Red Hat Product Errata RHBA-2022:1601 0 None None None 2022-05-02 18:39:10 UTC

Description Dave Cain 2021-10-06 22:03:46 UTC
The OpenShift Infrastructure Operator (assisted installer) currently cannot provision Supermicro X12 based systems.  It does power up the system, but cannot attach the ISO due to PropertyValueFormatError being reported.  It appears as if the BMC is restrictive on input, which causes problems with Ironic/Sushy/BMO flows.

 Normal  ProvisioningError    15s   metal3-baremetal-controller  Image provisioning failed: Failed to deploy. Exception: HTTP POST https://172.28.11.42/redfish/v1/Managers/1/VirtualMedia/CD1/Actions/VirtualMedia.InsertMedia returned code 400. Base.v1_4_0.GeneralError: The value http://10.40.0.122:6180/redfish/boot-dc5f752f-314b-4cea-a93c-85f008f5ce4d.iso?filename=tmp1p2l6hew.iso for the property Image is of a different format than the property can accept. Extended information: [{'MessageId': 'Base.1.4.PropertyValueFormatError', 'Severity': 'Warning', 'Resolution': 'Correct the value for the property in the request body and resubmit the request if the operation failed.', 'Message': 'The value http://10.40.0.122:6180/redfish/boot-dc5f752f-314b-4cea-a93c-85f008f5ce4d.iso?filename=tmp1p2l6hew.iso for the property Image is of a different format than the property can accept.', 'MessageArgs': ['http://10.40.0.122:6180/redfish/boot-dc5f752f-314b-4cea-a93c-85f008f5ce4d.iso?filename=tmp1p2l6hew.iso', 'Image'], 'RelatedProperties': ['[`~#$%&*()=+{}| \t;"\',<>?]']}]

Relevant component information and versioning:
Supermicro Chassis SYS-210P-FRDN6T
Supermicro Board X12SPM-LN6TF
Supermicro Firmware Version 11.00.15
Supermicro Firmware Build Time 08/27/2021
Supermicro Redfish Version 1.8.0
Supermicro BIOS Firmware Version 1.1.V2
Supermicro BIOS Build Time 08/24/2021
Supermicro SFT-DCMS-SINGLE license applied

Red Hat OpenShift version 4.8.13
RHCOS 48.84.202109210859-0
Kernel 4.18.0-305.19.1.el8_4.x86_64
assisted-service-operator.v99.0.0-unreleased
hive-operator.v1.2.3254-512b7f4
openshift-gitops-operator.v1.2.1

How reproducible:
Every time


Steps to Reproduce:
1. Install Assisted Installer Operator, Hive, onto a 4.8 cluster as the hub or management cluster
2. Create an InfraEnv, AgentClusterInstall, ClusterDeployment, and BMH host files contingent for an OCP 4.8.12 deployment spoke cluster including Supermicro X12 system
3. Observe failure message for X12 system after kicking off install process

Expected results:
Successful provisioning with Redfish, like with other hardware OEM platforms: https://docs.openshift.com/container-platform/4.8/installing/installing_bare_metal_ipi/ipi-install-installation-workflow.html#ipi-install-configuration-files


Additional info:
Let me know if you need anything specific, happy to provide.

Comment 2 Jacob Anders 2021-10-07 05:31:17 UTC
Proposed an initial version of the fix for review/discussion: https://review.opendev.org/c/openstack/ironic/+/812795

Comment 3 Dmitry Tantsur 2021-10-28 08:06:51 UTC
Fix pulled in https://github.com/openshift/ironic-image/pull/226

Comment 5 Lubov 2021-11-01 21:11:33 UTC
Hi Dave. As you now we don't have Supermicro to verify the fix. Could you, please, verify it?

Comment 6 Dave Cain 2021-11-02 02:34:32 UTC
What version of OpenShift contains the fix, so I can plan?

Looking at https://bugzilla.redhat.com/show_bug.cgi?id=2014630, it is not immediately obvious.

Comment 7 Lubov 2021-11-02 05:26:10 UTC
the latest 4.10 nightly

Comment 34 Pedro Amoedo 2022-04-26 09:59:07 UTC
[QA Summary]

- Specs of the testing BMC used:

~~~
 Firmware Version	01.00.03
 Firmware Build Time	04/21/2021
 Redfish Version	1.8.0
 BIOS Firmware Version	1.1
 BIOS Build Time	04/29/2021
 CPLD Version	        F1.00.02
~~~

- Confirmed the failure against the API with the old format:

~~~
$ curl --user ADMIN:<PASS> -k -X POST https://192.168.11.82/redfish/v1/Managers/1/VirtualMedia/CD1/Actions/VirtualMedia.InsertMedia -H "Content-Type: application/json" -d '{"Image": "http://192.168.10.96:8080/rhcos-410.84.202201251210-0-live.x86_64.iso?filename=rhcos-410.84.202201251210-0-live.x86_64.iso", "UserName": "", "Password": ""}'
{"error":{"code":"Base.v1_4_0.GeneralError","Message":"A general error has occurred. See ExtendedInfo for more information.","@Message.ExtendedInfo":[{"MessageId":"Base.1.4.PropertyValueFormatError","Severity":"Warning","Resolution":"Correct the value for the property in the request body and resubmit the request if the operation failed.","Message":"The value http://192.168.10.96:8080/rhcos-410.84.202201251210-0-live.x86_64.iso?filename=rhcos-410.84.202201251210-0-live.x86_64.iso for the property Image is of a different format than the property can accept.","MessageArgs":["http://192.168.10.96:8080/rhcos-410.84.202201251210-0-live.x86_64.iso?filename=rhcos-410.84.202201251210-0-live.x86_64.iso","Image"],"RelatedProperties":["[`~#$%&*()=+{}| \t;\"',<>?]"]}]}}
~~~

- Confirmed the successful mount operation (even with very long file names) when using the new format (without `?filename=file.iso` suffix) fixed via[1][2]:

~~~
$ curl --user ADMIN:<PASS> -k -X POST https://192.168.11.82/redfish/v1/Managers/1/VirtualMedia/CD1/Actions/VirtualMedia.InsertMedia -H "Content-Type: application/json" -d '{"Image": "http://192.168.10.96:8080/boot-3aa29d26-c7ea-4c10-8097-99d752297f84-c880f56c-53fa-4c6c-a880-63c7985342f0-4c10-8097-99d752297f84-c880f56c-53fa-4c6c.iso", "UserName": "", "Password": ""}'
{"Accepted":{"code":"Base.v1_4_0.Accepted","Message":"Successfully Accepted Request. Please see the location header and ExtendedInfo for more information.","@Message.ExtendedInfo":[{"MessageId":"SMC.1.0.OemRequestAcceptedMessage","Severity":"Ok","Resolution":"No resolution was required.","Message":"Please also check Task Resource /redfish/v1/TaskService/Tasks/5 to see more information.","MessageArgs":["/redfish/v1/TaskService/Tasks/5"],"RelatedProperties":["VirtualMediaMountAccepted"]}]}}

$ curl --user ADMIN:<PASS> -k -X POST https://192.168.11.82/redfish/v1/Managers/1/VirtualMedia/CD1/Actions/VirtualMedia.EjectMedia -H "Content-Type: application/json" -d '{}'
{"Success":{"code":"Base.v1_4_0.Success","Message":"Successfully Completed Request. See ExtendedInfo for more information.","@Message.ExtendedInfo":[{"MessageId":"SMC.1.0.OemVmUnmounted","Severity":"Ok","Resolution":"No resolution was required.","Message":"The Virtual Media was unmounted successfully.","MessageArgs":[""],"RelatedProperties":[""]}]}}
~~~

[1] - https://github.com/openshift/ironic-image/pull/226
[2] - https://opendev.org/openstack/ironic/commit/e05f74c623d53aecc4a2e097595da8cdbd2607ef

*** PASSED ***

Comment 37 errata-xmlrpc 2022-05-02 18:38:50 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (OpenShift Container Platform 4.10.12 bug fix update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2022:1601


Note You need to log in before you can comment on or make changes to this bug.