Commit Graph

23 Commits

Author SHA1 Message Date
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
a5f69ae8b0 Update README to reflect current architecture and features
- Remove single-file description; document the es24n/ module structure
- Add serial cable requirement only where relevant (serial workflow)
- Document IOM selection option in firmware update workflow
- Add firmware file auto-detection to firmware update steps
- Add file structure section
- Add note about firmware file re-upload requirement

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 17:56:53 -04:00
0a49cbe516 Update CLAUDE.md to reflect current multi-file architecture
Document the new file structure, both connection methods (serial/network),
both workflows (serial config and firmware update), key design notes
(auth credentials, firmware bug workaround, API paths), and the planned
network-based config workflow.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 17:53:36 -04:00
df379eb509 Fix stale docstring and add .gitignore
Update module path reference in es24n_conf.py docstring to reflect
that modules now live in es24n/ rather than the root directory.
Add .gitignore to exclude __pycache__ and .pyc files.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 17:52:15 -04:00
0ef72bcc53 Move modules into es24n/ subfolder
Keeps the repo root clean with es24n_conf.py as the sole entry point.
All supporting modules (ui, serial_port, models, redfish, workflow_*)
now live in es24n/. The entry point adds es24n/ to sys.path at startup
so inter-module imports within the package remain unchanged.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 17:50:57 -04:00
ac2f67adad Split monolithic script into focused modules
Refactored the single 1200-line es24n_conf.py into six modules plus a
slim entry point, in preparation for the upcoming network-based config
workflow. Each file has a clear, single responsibility:

  ui.py              — ANSI colours, display primitives, input prompts
  serial_port.py     — SerialPort class (termios/fcntl/select)
  models.py          — IOMConfig and ShelfConfig dataclasses
  redfish.py         — Redfish API client (shared by all workflows)
  workflow_serial.py — Serial-based IOM network configuration workflow
  workflow_firmware.py — IOM and Fabric Card firmware update workflow
  es24n_conf.py      — Entry point and main menu only

No functional changes. All imports verified.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 17:48:51 -04:00
c11208199d Auto-detect firmware files in CWD for firmware update prompts
Instead of requiring a manual path entry, scan the current working
directory for files with common firmware extensions and present them
as a numbered list (most recently modified first). The last option
always allows entering a custom path, and the manual prompt is used
as a fallback if no matching files are found.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 17:28:47 -04:00
4e0a17429b Surface per-IOM Redfish error details in network config query
Previously fetch_current_config silently dropped the error string when
an IOM failed to respond, showing only "No response". Now the specific
error (HTTP status, connection refused, timeout, etc.) is printed below
the table to aid diagnosis.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 17:24:07 -04:00
3b14e7b3bc set executable 2026-03-16 19:11:28 -04:00
b65019df4f Add per-IOM selection to firmware update workflow
Prompt user to choose IOM1 only, IOM2 only, or both before collecting
IPs or running updates. Only prompts for IPs of selected IOMs, and
suppresses the IOM1-first HA warning when updating a single IOM.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-16 09:07:06 -04:00
ae415f89e1 Use root user for serial loopback, Admin for network connections
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-06 15:56:35 -05:00
73802ad96c Remove password masking from admin password prompt
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-06 15:27:59 -05:00
66142dcb3c Merge develop: Add README
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-06 13:16:55 -05:00
e3f1ffc839 Add README with usage, workflow, and feature overview
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-06 13:15:43 -05:00
aa85c956c9 Merge claude/gifted-curie: Add IOM and Fabric Card firmware update workflow
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-06 13:09:37 -05:00
42f8349757 Add IOM and Fabric Card firmware update workflow
- Add option 2 to main menu: "Update IOM / Fabric Card Firmware"
- Add firmware_update_workflow() connecting to IOMs via network IP
- Add _redfish_upload_firmware() for multipart/form-data firmware upload
- Add _redfish_trigger_update() for Redfish SimpleUpdate action
- Add _redfish_poll_tasks() to monitor TaskService until completion
- Add _redfish_restart_iom() and _redfish_reset_fabric() for graceful restarts
- Add _get_iom_fw_version() and _get_fabric_fw_version() for validation
- Add host param to _redfish_request() (default 127.0.0.1, backward-compatible)
- Implements §12 of ES24N Product Service Guide v.26011

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-06 13:06:18 -05:00
79849f9368 Split Static Ip configuration and Disable DHCP commands 2026-03-04 14:54:48 -05:00
a6ba8ebe4e Pull Shelf info upon serial connect 2026-03-04 07:59:44 -05:00
4b3c7abfda Upload files to "/" 2026-03-03 21:19:59 -05:00
7d59c3676c Delete es24n-conf.py/es24n_conf.py 2026-03-03 21:19:47 -05:00
2ddd5e397f Upload files to "es24n-conf.py" 2026-03-03 21:18:09 -05:00
21c45bc8bc Delete es24n-conf.sh 2026-03-03 21:16:46 -05:00
b1af09112a Add es24n-conf.sh 2026-03-03 20:52:47 -05:00