Skip to content

DAOS-19006 control: Remove storage firmware update#18595

Open
kjacque wants to merge 7 commits into
masterfrom
kjacque/rm-firmware
Open

DAOS-19006 control: Remove storage firmware update#18595
kjacque wants to merge 7 commits into
masterfrom
kjacque/rm-firmware

Conversation

@kjacque

@kjacque kjacque commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Firmware update for storage devices was supported for a very limited subset of devices, and has since become irrelevant in customer deployments. The feature is unused, so can be removed.

Features: control

Steps for the author:

  • Commit message follows the guidelines.
  • Appropriate Features or Test-tag pragmas were used.
  • Appropriate Functional Test Stages were run.
  • At least two positive code reviews including at least one code owner from each category referenced in the PR.
  • Testing is complete. If necessary, forced-landing label added and a reason added in a comment.

After all prior steps are complete:

  • Gatekeeper requested (daos-gatekeeper added as a reviewer).

Firmware update for storage devices was supported for a very limited
subset of devices, and has since become irrelevant in customer
deployments. The feature is unused, so can be removed.

Features: control

Signed-off-by: Kris Jacque <kris.jacque@hpe.com>
@kjacque kjacque self-assigned this Jul 1, 2026
@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown

Ticket title is 'Remove firmware management functionality from DAOS'
Status is 'In Review'
https://daosio.atlassian.net/browse/DAOS-19006

Features: control

Signed-off-by: Kris Jacque <kris.jacque@hpe.com>
@kjacque kjacque requested a review from tanabarr July 2, 2026 15:11
@daosbuild3

Copy link
Copy Markdown
Collaborator

Test stage Functional Hardware Medium Verbs Provider MD on SSD completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net//job/daos-stack/job/daos/view/change-requests/job/PR-18595/4/execution/node/1794/log

@tanabarr tanabarr left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Items that probably also need to be removed:

  • src/control/lib/spdk/nvme_stubs.go - Remove the Update() method (lines 27-30)
  • src/control/lib/spdk/mocks.go - Remove the UpdateErr field

@kjacque

kjacque commented Jul 6, 2026

Copy link
Copy Markdown
Contributor Author

Items that probably also need to be removed:

  • src/control/lib/spdk/nvme_stubs.go - Remove the Update() method (lines 27-30)
  • src/control/lib/spdk/mocks.go - Remove the UpdateErr field

Good catch, thanks.

kjacque added 2 commits July 6, 2026 15:00
Features: control

Signed-off-by: Kris Jacque <kris.jacque@hpe.com>
@kjacque kjacque marked this pull request as ready for review July 6, 2026 15:03
@kjacque kjacque requested review from a team as code owners July 6, 2026 15:03
@kjacque kjacque requested review from mjmac and tanabarr July 6, 2026 15:03
tanabarr
tanabarr previously approved these changes Jul 7, 2026
mjmac
mjmac previously approved these changes Jul 7, 2026

@mjmac mjmac left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great. Good to get rid of cruft. It seems like you could probably go further with the ipmctl stuff, if you wanted to do it all as one commit. As far as I can tell, control/lib/ipmctl is pretty much all dead code now, as the only caller was the firmware management stuff. The provisioning is still done by shelling out to the ipmctl binary.

The other thing that came up in my review is that you probably need to add a Obsoletes: daos-firmware in the main section specfile so that any systems that somehow installed the firmware RPM can do a clean upgrade. Won't be the end of the world if you don't. They'll need to manually remove the daos-firmware RPM before upgrading.

@kjacque

kjacque commented Jul 7, 2026

Copy link
Copy Markdown
Contributor Author

It seems like you could probably go further with the ipmctl stuff, if you wanted to do it all as one commit. As far as I can tell, control/lib/ipmctl is pretty much all dead code now, as the only caller was the firmware management stuff. The provisioning is still done by shelling out to the ipmctl binary.

The other thing that came up in my review is that you probably need to add a Obsoletes: daos-firmware in the main section specfile so that any systems that somehow installed the firmware RPM can do a clean upgrade. Won't be the end of the world if you don't. They'll need to manually remove the daos-firmware RPM before upgrading.

Good catches. I'll update both of these. There's an ipmctl type still in use by some of the SCM logic, but I'll just move that where it's used.

- Obsolete the daos-firmware package in the RPM spec.
- Remove ipmctl package and move still-used types into
  server/storage/scm.

Features: control

Signed-off-by: Kris Jacque <kris.jacque@hpe.com>
@kjacque kjacque dismissed stale reviews from mjmac and tanabarr via bb8c1be July 7, 2026 17:01
@kjacque kjacque requested review from mjmac and tanabarr July 7, 2026 17:25
@daosbuild3

Copy link
Copy Markdown
Collaborator

@tanabarr tanabarr left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good clean up but I would make sure we aren't introducing any SCM regressions by doing some manual testing with daos_server scm ... and dmg storage scan -v commands. I can't remember off the top of my head whether dmg storage query usage uses this indirectly as well so might be worth also verifying that.

Features: control

Signed-off-by: Kris Jacque <kris.jacque@hpe.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

4 participants