bmc-toolbox/bmclib

Multipart HTTP update support

Opened this issue · 8 comments

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

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

OpenBMC only supports basic update, as of now.

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

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

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

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

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

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

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