Redfish-Tacklebox icon indicating copy to clipboard operation
Redfish-Tacklebox copied to clipboard

rf_boot_override.py FutureState URI(/redfish/v1/Systems/Self/SD)

Open capnbb opened this issue 2 years ago • 8 comments

Dear Authors,

When attempting to change next boot device using rf_boot_override.py on a new ASRock motherboard we get this error:

rf_boot_override.py --user admin --password XXXXXXX --rhost fmg39-idrac --target Pxe /usr/local/lib/python3.6/site-packages/redfish/rest/v1.py:1163: UserWarning: Scheme not specified for 'fmg39-idrac'; adding 'https://' warnings.warn("Scheme not specified for '{}'; adding 'https://'".format(base_url)) Setting a one time boot for Pxe... Operation failed: HTTP 400

Support of this Operation for Boot Properties is moved to FutureState URI(/redfish/v1/Systems/Self/SD) Ami.1.0.OperationSupportedInFutureStateURI

Debug output: rf_boot_override-2024-04-05-130912.log

Contents of /redfish/v1/Systems/Self/SD curl -k -u admin:XXXXXXX https://fmg39-idrac:/redfish/v1/Systems/Self/SD -H "content-type:application/json" -X GET > SD.json SD.json

Other details: ASRock WRX80 Creator R2.0 motherboard BMC Firmware Version 1.04.00 BIOS Firmware Version 4.02

Many thanks

Jake

capnbb avatar Apr 05 '24 12:04 capnbb

You should be able to add the --workaround option to allow the tool to apply the override in non-conformant locations.

It would be good to provide this feedback to your vendor. Requiring users to step into the settings resource to apply an active override request is not a good practice. The reason being is the context of "boot override" is already loaded with the semantic that this occurs on the next reboot.

There's some history in this issue too: https://github.com/DMTF/Redfish-Tacklebox/issues/111

mraineri avatar Apr 05 '24 12:04 mraineri

Hi Mike,

Many thanks for your help, but unfortunately --workaround didn't work :(

jog@pcterm01:~/scripts/ rf_boot_override.py --user ADMIN --password XXXXXXXX --rhost fmg39-idrac -t Pxe --workaround /usr/local/lib/python3.6/site-packages/redfish/rest/v1.py:1163: UserWarning: Scheme not specified for 'fmg39-idrac'; adding 'https://' warnings.warn("Scheme not specified for '{}'; adding 'https://'".format(base_url)) Setting a one time boot for Pxe... Operation failed: HTTP 400

Support of this Operation for Boot Properties is moved to FutureState URI(/redfish/v1/Systems/Self/SD) Ami.1.0.OperationSupportedInFutureStateURI

Debug output attached here: rf_boot_override-2024-04-10-100954.log

does --workaround need a tweak for this board?

I have asked our vendor to provide a contact at ASRock so we can properly report this, we have 20 systems using the ASRock WRX80 Creator R2.0 motherboard motherboard, so it's worth our putting some time into this.

thanks again,

Jake

capnbb avatar Apr 10 '24 09:04 capnbb

It's possible we need an update to the workaround logic. I'll take a look at the log file to see what can be done.

mraineri avatar Apr 10 '24 13:04 mraineri

It seems like there's an additional requirement to specify the override mode (UEFI vs Legacy). A user shouldn't have to specify this; the service is expected to handle a default case (typically they default to UEFI if not specified).

"The property BootSourceOverrideMode is a required property and must be included in the request."

Can you try this?

/scripts/ rf_boot_override.py --user ADMIN --password XXXXXXXX --rhost fmg39-idrac -t Pxe --mode UEFI --workaround

mraineri avatar Apr 10 '24 14:04 mraineri

Hi Mike, again, many thanks for your help - the extra flag isn't quite enough. Any further ideas?

~/scripts/ rf_boot_override.py --user ADMIN --password XXXXX --rhost fmg39-idrac -t Pxe --mode UEFI --workaround /usr/local/lib/python3.6/site-packages/redfish/rest/v1.py:1163: UserWarning: Scheme not specified for 'fmg39-idrac'; adding 'https://' warnings.warn("Scheme not specified for '{}'; adding 'https://'".format(base_url)) Setting a one time boot for Pxe... /usr/local/lib/python3.6/site-packages/redfish_utilities/systems.py:231: UserWarning: System 'None' incorrectly required applying the boot override configuration to the settings resource. Contact your vendor. warnings.warn( "System '{}' incorrectly required applying the boot override configuration to the settings resource. Contact your vendor.".format( system_id ) )

Here is the log file from running the above command in debug mode: rf_boot_override-2024-04-11-150350.log

thanks again,

Jake

capnbb avatar Apr 11 '24 14:04 capnbb

That output is all expected; it looks like the setting took effect. The tool produces warnings if it had to fallback on workaround logic to highlight to the user that they should contact their vendor about the issue, but otherwise the desired outcome was achieved.

mraineri avatar Apr 11 '24 15:04 mraineri

The one last thing to check is if rebooting the system causes it to perform a PXE boot; if it does, then you should be unblocked for your systems at this point.

mraineri avatar Apr 11 '24 17:04 mraineri

Hi Mike,

Good news :) your suggestion worked - I had just interpreted the warnings as a fatal error.

To confirm, the ASRock AMI Redfish implementation on a WRX 90 evo (bios v4.02) will reboot using PXE,on both the onboard interfaces or an add-on Mellanox 100GB card after running:

rf_boot_override.py --user ADMIN --password XXXXXXX --rhost HOSTNAME -t Pxe --mode UEFI --workaround --debug

again, many thanks for your help,

Jake

capnbb avatar Apr 12 '24 14:04 capnbb

Closing; workaround flag gets past this issue, and the follow-up with the vendor is needed to fix the behavior of the service

mraineri avatar May 31 '24 19:05 mraineri