Commit Graph

7 Commits

Author SHA1 Message Date
278c0c03b3 Wait for IOM to come back online after restart instead of fixed sleep
A fixed 30s sleep is not enough for a full BMC boot cycle. Add
_wait_for_iom_online() which polls GET /redfish/v1/ every 15s until the
IOM responds (up to 5 minutes), then call it after every IOM restart in
both _update_iom_fw and _update_fabric_fw. This ensures the fabric card
update (and post-update validation) don't run while the IOM is still
booting and unreachable.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-16 13:17:53 -04:00
a05ba977d3 Prompt for firmware file once — IOM and Fabric Card use the same file
Previously prompted separately for each component. Since both updates
use the same firmware file, select it once and pass it to both steps.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-16 13:06:57 -04:00
b745643a4b Simplify network workflows to use a single IOM IP address
Either IOM can reach the other via Redfish, so there's no need to collect
separate IOM1/IOM2 addresses. Firmware update and system check now prompt
for one IP per shelf with a note that either IOM's address works.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-04 10:57:44 -04:00
46312e37fb Add firmware/ directory and update file scanning logic
- Add firmware/ directory to hold firmware files for techs cloning the repo
- Scan firmware/ (relative to script location) instead of CWD
- Add .fwc to supported firmware extensions

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 18:34:27 -04:00
2b55617db2 Associate password with each shelf for multi-shelf firmware updates
Each ES24N shelf has a unique Admin password (its BMC serial number), so a
single shared password is incorrect for multi-shelf runs. The password prompt
now appears once per shelf inside _collect_shelves(), stored as the first
element of each (password, [(iom, ip), ...]) shelf tuple. _make_targets()
threads the password into each (label, iom, ip, password) target entry, and
_show_fw_versions() uses the per-target password instead of a global one.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-18 08:24:09 -04:00
10354794f8 Add multi-shelf support to firmware update workflow
The firmware update workflow now supports updating any number of shelves in a
single run. After entering IPs for the first shelf, the user is prompted to
add another; this repeats until done. Firmware file and update-type choices
are made once and applied to all shelves sequentially.

_show_fw_versions() updated to accept (label, iom, ip) tuples so the display
label and Redfish path name can differ for multi-shelf tables (e.g. "S1 / IOM1"
vs "IOM1"). Pre- and post-update version tables include the shelf number when
more than one shelf is being updated.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-18 08:20:48 -04:00
cb1c23480e Rename es24n/ to modules/
Update sys.path reference in es24n_conf.py and all documentation
to reflect the new folder name.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 19:12:29 -04:00