Initial commit — bootstrapped from es24n-conf (TrueNAS/Linux edition)
Starting point for Windows packaging. Serial backend will be replaced with pyserial; PyInstaller used to produce a standalone .exe. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
71
es24n_conf.py
Executable file
71
es24n_conf.py
Executable file
@@ -0,0 +1,71 @@
|
||||
#!/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 files in the modules/ subdirectory must be present:
|
||||
ui.py, serial_port.py, models.py, redfish.py,
|
||||
workflow_serial.py, workflow_firmware.py, workflow_check.py
|
||||
"""
|
||||
|
||||
import os
|
||||
import sys
|
||||
import time
|
||||
|
||||
sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)), "modules"))
|
||||
|
||||
from ui import _c, C, banner, draw_box, ok, warn, prompt
|
||||
from workflow_check import system_check_workflow
|
||||
from workflow_firmware import firmware_update_workflow
|
||||
from workflow_restart import restart_iom_workflow
|
||||
from workflow_serial import configure_shelf
|
||||
|
||||
|
||||
def main():
|
||||
while True:
|
||||
banner()
|
||||
draw_box([
|
||||
f" {_c(C.BOLD, '1')} Configure Network Settings",
|
||||
f" {_c(C.BOLD, '2')} Update IOM / Fabric Card Firmware",
|
||||
f" {_c(C.BOLD, '3')} Query Current Configuration",
|
||||
f" {_c(C.BOLD, '4')} Restart IOM",
|
||||
f" {_c(C.BOLD, '5')} Exit",
|
||||
])
|
||||
print()
|
||||
|
||||
choice = prompt("Select [1-5]")
|
||||
if choice == "1":
|
||||
another = True
|
||||
while another:
|
||||
another = configure_shelf()
|
||||
elif choice == "2":
|
||||
firmware_update_workflow()
|
||||
elif choice == "3":
|
||||
system_check_workflow()
|
||||
elif choice == "4":
|
||||
restart_iom_workflow()
|
||||
elif choice == "5":
|
||||
break
|
||||
else:
|
||||
warn("Please enter 1, 2, 3, 4, or 5.")
|
||||
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)
|
||||
Reference in New Issue
Block a user