Architecture Overview
A Python desktop app (CustomTkinter GUI over a GUI-agnostic engine) that migrates ArubaOS-8 controller-managed campus APs to ArubaOS-10 on Aruba Central. It loads an AP inventory, keeps the in-scope 500 / 600 (Wi-Fi 6 / 6E) APs, and converts each one on the controller it terminates to — downloading the AOS-10 image from an HTTPS image server. A live MM Console mirrors every command and lets you type your own. Simulation mode is on by default.
Thin GUI over a reusable engine
after() bus-drain loop, and the controller-acknowledgement modal.WorkerBus ↓show ap database + show switches; tag each AP with family, AOS-10 scope, and its primary controller.select_controller() navigation (exit/cd/mdc).ap convert sequence and the HTTPS image-url; enforce scope/precheck gates.ap convert commands run on the controller it terminates to, over SSH.image-url).From connect to report
show switchesshow ap databaseSSH to the MM (or simulation); resolve controllers and parse the AP inventory on a worker thread.
add_to_convert_list()Keep in-scope 500/600 APs (others hidden & blocked); multi-select them into the convert list.
UpgradeOptionsBatch-by-model or dynamic per-AP; HTTPS image server or controller-staged image; dry-run & ack toggles.
UpgradeEngine.run()Per-AP state machine streams live states + controller + progress; every command echoes to the MM Console.
export_report_csv()DONE / FAILED / SKIPPED plus the primary controller per AP, saved for the change record.
Same path for both strategies
ap convert pre-validate are reported and skipped. (In simulation, the first AP in the list always fails to exercise this path.)Each AP converts on the controller it terminates to
build_switch_map()The MM reports every managed controller; build an {ip: hostname} map.
annotate_controllers()Each AP's Switch IP resolves to its primary controller name.
ack_callback()On each controller change a modal names the target; Continue proceeds, Abort cancels.
exit → cd → mdcLeave the previous controller's mdc, cd to the new one, enter mdc — convert commands run there.
exit is emitted only when switching out of a previous managed-device-context — never on the first controller. ap convert commands are valid only in mdc mode.
| Command | Role |
|---|---|
show ap database long | Inventory load — also yields each AP's Switch IP (primary controller). |
show switches | Resolve controller hostname ↔ IP across the MM-managed cluster. |
exit (when switching) | Leave the previous controller's managed-device-context before navigating. |
cd <controller> → mdc | Navigate to the controller node, then enter managed-device-context (required for ap convert). |
ap convert add ap-name <name> | Add the AP to the convert list on its controller. |
ap convert pre-validate specific-aps | Pre-flight check (Central reachability / subscription) before activation. |
ap convert active specific-aps activate image-url <https> | Start conversion, pulling the AOS-10 image from the HTTPS server (local-flash for a controller-staged image). |
show ap convert-status-list | Per-AP verification fallback when Central REST is not configured. |
The actual app, running in your browser
A full-screen, faithful replica of the desktop toolkit running in simulation mode — the same five views
(Inventory, Convert List, Upgrade Runner, Logs, Settings), the same persistent MM Console, and the same
controller responses: show ap database / show switches output, exit → cd → mdc
per-controller routing, the ap convert sequence, and the first-AP Aruba Central
pre-validation failure. Nothing leaves your browser.
Pull the AP database from the Mobility Master, then push in-scope APs into the convert list. 200/300-series & RAPs are excluded at parse time.
| AP Name | Model | Family | IP Address | Status | Group | Primary Controller | Scope | Target Image | |
|---|---|---|---|---|---|---|---|---|---|
| No inventory loaded — click Connect to MM and List APs. | |||||||||
APs queued for AOS-10 conversion. Review the model mix before running the upgrade.
| AP Name | Model | Family | IP Address | Target AOS-10 Image | State |
|---|---|---|---|---|---|
| Convert list is empty — add APs from the Inventory view. | |||||
Pick a processing strategy and image source, then run the migration and watch each AP move through the state machine live.
| AP Name | Model | Primary Controller | State | Detail |
|---|---|---|---|---|
| Add APs to the convert list, then press Start Migration. | ||||
Full audit trail of SSH / REST / engine activity for the session.
Connection, Aruba Central, and migration-behavior settings. Defaults reflect the built-in simulated controller.