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>
24 lines
535 B
Python
24 lines
535 B
Python
"""
|
|
models.py — Shared data classes for ES24N IOM configuration.
|
|
Used by both the serial and network configuration workflows.
|
|
"""
|
|
|
|
from dataclasses import dataclass, field
|
|
|
|
|
|
@dataclass
|
|
class IOMConfig:
|
|
iom: str
|
|
dhcp: bool = True
|
|
ip: str = ""
|
|
gateway: str = ""
|
|
netmask: str = ""
|
|
|
|
|
|
@dataclass
|
|
class ShelfConfig:
|
|
device: str = ""
|
|
password: str = ""
|
|
iom1: IOMConfig = field(default_factory=lambda: IOMConfig("IOM1"))
|
|
iom2: IOMConfig = field(default_factory=lambda: IOMConfig("IOM2"))
|