Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updates flasher to work with the newer firmware interfaces #113

Merged
merged 15 commits into from
Nov 29, 2023

Conversation

joelrebel
Copy link
Member

What does this PR do

  • A few fixes for flasher install
  • Update component search to return BIOS, BMC components regardless of vendor, model match
  • Pins bmclib to the provider that is applicable for the target hardware under firmware install, earlier the bmclib behaviour was less deterministic, and would try PowerStateGet() over redfish, FirmwareInstallStatus over vendorAPI and so on - this would result in various incorrect assumptions about the redfish/vendor API sessions being active.
  • Fixes up the pollFirmwareTaskStatue method to handle a few more edge cases when a BMC resets itself.
  • Switch to newer bmclib interface methods

Depends on bmc-toolbox/bmclib#372 and its parents.
Tested on Dells, SMCs X11, X12s.

coffeefreak101
coffeefreak101 previously approved these changes Nov 28, 2023
instead of attempting to match them by vendor, model
…res a powercycle

The host power cycle is done if polling the status indicates it's required.
…nect

- The bmc helper methods are updated to trace log the bmclib providers
  attempted for debugging.
- The bmclib client is reinitialized if a session gets terminated or the
  connection was lost because the BMC reset.
- Refactor to split out login retry method.
…ts, rework

The poller method is now a generic task status poller, it uses the
newer bmclib TaskState consts and will power cycle the host when
required. It also returns more useful task status information for debugging.
@joelrebel
Copy link
Member Author

rebase on main

- Add Update(), Last() methods on the task Status field
- The poll action method runs while the update is being installed, now
  it updates and publishes the task status. So we can have nice things
  like

```
     {
        "ts": "2023-11-29T11:38:53.25051698Z",
        "msg": "component: bios, install version: 2.12.4, running step pollInstallStatus -- id: JID_012795319585, state: Downloading, status: Downloading the BIOS_R1VM9_WN64_2.12.4.EXE update package., progress: 0%"
      }
  ```
@joelrebel joelrebel merged commit 31a08f8 into main Nov 29, 2023
7 checks passed
@joelrebel joelrebel deleted the dell-redfish branch November 29, 2023 14:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants