bmc-toolbox / bmclib

Library to abstract Baseboard Management Controller interaction
Apache License 2.0
189 stars 36 forks source link

Multipart HTTP update support #341

Open ofaurax opened 1 year ago

ofaurax commented 1 year ago

When trying to update a firmware with bmclib (using install-firmware example):

$ ./main --host REDACTED --user root --password REDACTED --component bios --firmware update.tar.gz
FATA[0007] 3 errors occurred:
    * provider: gofish: Multipart HTTP push updates not supported: redfish update service error
    * Multipart HTTP push updates not supported: redfish update service error
    * failure in FirmwareInstall
ofaurax commented 1 year ago

It seems only multipart update is supported in bmclib. OpenBMC only supports basic update, as of now.

ofaurax commented 1 year ago

OpenBMC only supports basic update, as of now.

In fact, OpenBMC implements "Unstructured HTTP push update", which is deprecated, not "basic update".

davidallendj commented 11 months ago

I'm having this issue as well. Did you ever find a solution or try rolling your own?

ofaurax commented 11 months ago

We implemented "Unstructured HTTP push update" in bmclib so that OpenBMC can be updated

ofaurax commented 10 months ago

Also, support for multipart update has been merged in openbmc: https://gerrit.openbmc.org/c/openbmc/bmcweb/+/32174

davidallendj commented 10 months ago

Awesome! That means this should now work with bmclib if using the latest openbmc since bmclib already supports this, correct?

ofaurax commented 10 months ago

Awesome! That means this should now work with bmclib if using the latest openbmc since bmclib already supports this, correct?

Yes, and if both are supported, bmclib should use multipart update. Please give feedback if you test it

davidallendj commented 1 month ago

I forgot to come back and report, but I have had success updating firmware after the multipart update support was added to OpenBMC.