stmcginnis / gofish

Gofish is a Golang client library for DMTF Redfish and SNIA Swordfish interaction.
BSD 3-Clause "New" or "Revised" License
211 stars 112 forks source link

Add HttpBootUri into Boot #271

Closed lzap closed 1 year ago

lzap commented 1 year ago

This flag allows to override UEFI HTTP Boot URI, only works when BootSourceOverrideTarget is set to UefiHttp.

I could not find any unit test for updating boot structure, let me know if I missed it. Thanks!

stmcginnis commented 1 year ago

There's a minor linting issue. Can you address that?

lzap commented 1 year ago

Absolutely, force-pushed.

lzap commented 1 year ago

So I tested on a DELL R350 and it works, unfortunately this system does not support this Redfish field yet :-D

stmcginnis commented 1 year ago

So I tested on a DELL R350 and it works, unfortunately this system does not support this Redfish field yet :-D

Oh well, I guess we at least know it doesn't make older systems blow up. :D

stmcginnis commented 1 year ago

Absolutely, force-pushed.

Shoot, part way there! Linter still not happy yet.

lzap commented 1 year ago

Yeah I was waiting until it passes before I make another comment, sorry about that :-)

Thanks. FYI I am building a small prototype, a provisioning service for Red Hat systems, it’s an image-based provisioning via Anaconda and HTTP UEFI Boot via Redfish, fully automated:

https://github.com/foresterorg/forester

Thanks again. Cheers.

lzap commented 9 months ago

I finally got to hardware testing this feature and I noticed that the field is serialized as HTTPBootURI whereas the spec says HttpBootUri. Linter made me to change the name, I am not sure if Redfish API is actually case-insensitive so it would not make any difference. Currently I loaned 6 systems from Dell and SuperMicro and any of them does not support this relatively new feature so I cannot confirm for sure :-(

stmcginnis commented 9 months ago

I finally got to hardware testing this feature and I noticed that the field is serialized as HTTPBootURI whereas the spec says HttpBootUri. Linter made me to change the name, I am not sure if Redfish API is actually case-insensitive so it would not make any difference. Currently I loaned 6 systems from Dell and SuperMicro and any of them does not support this relatively new feature so I cannot confirm for sure :-(

If/when you are able to test, and if the casing is an issue, that is handled by giving a serialize/deserialize name to the JSON settings. An example can be seen here.

lzap commented 9 months ago

I still don’t have access to any system that supports this, from what I have learned modern HPE systems do support it. Anyway, I want to fix this anyway: https://github.com/stmcginnis/gofish/pull/292