#!/usr/bin/env python3 """ ES24N IOM Network Configuration Tool TrueNAS ES24N Expansion Shelf — Serial Configuration Utility Based on ES24N Product Service Guide v.26011 Zero external dependencies — Python 3 standard library only. Compatible with TrueNAS (FreeBSD) and Linux. Usage: python3 es24n_conf.py All source files must be present in the same directory: ui.py, serial_port.py, models.py, redfish.py, workflow_serial.py, workflow_firmware.py """ import os import sys import time sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)), "es24n")) from ui import _c, C, banner, draw_box, ok, warn, prompt from workflow_firmware import firmware_update_workflow from workflow_serial import configure_shelf def main(): while True: banner() draw_box([ f" {_c(C.BOLD, '1')} Configure a new ES24N shelf (serial)", f" {_c(C.BOLD, '2')} Update IOM / Fabric Card Firmware", f" {_c(C.BOLD, '3')} Exit", ]) print() choice = prompt("Select [1/2/3]") if choice == "1": another = configure_shelf() if not another: break elif choice == "2": firmware_update_workflow() elif choice == "3": break else: warn("Please enter 1, 2, or 3.") time.sleep(1) print() ok("Exiting ES24N IOM Configuration Tool. Goodbye.") print() if __name__ == "__main__": try: main() except KeyboardInterrupt: print() warn("Interrupted. Exiting.") sys.exit(0)