mirror of
https://github.com/xcat2/confluent.git
synced 2026-08-27 17:16:42 +00:00
b0ae4f201d
Three things stopped a redfish firmware update on MegaRAC. The AMI handler opened by asking the bmc to preserve fourteen named settings, and a build that knows a different set rejects the whole request, which aborted the update before anything was uploaded; send only the keys the bmc advertises. The multipart push carried the image alone, and the specification has it carry an UpdateParameters part too, which this firmware enforces. AMI also wants an OemParameters part naming the kind of image, and nothing was supplying one. The kind of image is asked for rather than worked out from the file. The extension is vendor habit rather than format, and the leading bytes answer just as confidently about an image they have never seen, while being wrong means a bmc flashed with a bios image. So nodefirmware takes --type, it travels as far as the handler that wants it, and where the bmc publishes the types it accepts, an unknown one is refused with the list, as is asking with none. A platform that reads the kind of firmware out of the image itself refuses the option rather than dropping it, so nobody aims an update somewhere they did not mean to. A parameter file still wins, since it can carry more than the image type. Updating the bmc takes the bmc, and the task being watched, away for minutes. That is the update working rather than the monitoring failing, so wait a bounded while for it to answer again instead of reporting a successful flash as an error.