wrolpi/controller/test
Roland 9d6eb0873e
Controller can unmount foreign mounts; protect the primary drive.
The /api/disks/unmount endpoint only removed entries from fstab.yaml and
asked the reconciler to unmount, but the reconciler deliberately never
unmounts paths it has not claimed.  Foreign mounts (udisks2 desktop
automounts, manual mounts) therefore could not be unmounted from the UI,
failing with a confusing "check journalctl" error.

- Fall back to a direct umount(8) when a reconcile leaves the requested
  mount point live.
- Reject unmounting the primary WROLPi drive (/media/wrolpi) with a
  clear 400, normalized to catch path traversal.
- Require the normalized mount point to be strictly under /media/
  before any direct umount, since the fallback runs as root.
- Show "System" instead of an Unmount button for /media/wrolpi in both
  the React UI and the Controller's simplified UI.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 19:46:30 -06:00
..
__init__.py Creating Controller service which will control WROLPi services, admin, SMART, disks, and status. nginx will fallback to Controller UI when React UI is unavailable (such as during upgrades). 2025-12-15 15:48:40 -07:00
test_admin.py Consolidating controller tests. Fixing controller test cleanup which slowed down tests significantly. 2026-05-15 21:10:30 -06:00
test_admin_api.py Consolidating controller tests. Fixing controller test cleanup which slowed down tests significantly. 2026-05-15 21:10:30 -06:00
test_api.py Consolidating controller tests. Fixing controller test cleanup which slowed down tests significantly. 2026-05-15 21:10:30 -06:00
test_config.py Migrating Controller from port 8087 to 80 so that it is more discoverable. Reformatting Controller dashboard to make header at the top. Reformatting navigation bar to handle the new links which prevented Admin from being visible in some screens. 2026-04-09 15:01:05 -06:00
test_defaults.py Migrating Controller from port 8087 to 80 so that it is more discoverable. Reformatting Controller dashboard to make header at the top. Reformatting navigation bar to handle the new links which prevented Admin from being visible in some screens. 2026-04-09 15:01:05 -06:00
test_disks.py Consolidating controller tests. Fixing controller test cleanup which slowed down tests significantly. 2026-05-15 21:10:30 -06:00
test_disks_api.py Controller can unmount foreign mounts; protect the primary drive. 2026-06-11 19:46:30 -06:00
test_docker_services.py Replace nginx with Caddy for TLS termination and reverse proxying. 2026-03-07 18:48:44 -07:00
test_fstab.py Setting uid/gid when mounting exfat and vfat filesystems. 2026-02-08 09:50:18 -07:00
test_fstab_migration.py Moving WROLPi-managed mounts off /etc/fstab onto a drive-resident fstab.yaml. 2026-05-24 12:44:05 -06:00
test_fstab_yaml.py Moving WROLPi-managed mounts off /etc/fstab onto a drive-resident fstab.yaml. 2026-05-24 12:44:05 -06:00
test_mount_executor.py Moving WROLPi-managed mounts off /etc/fstab onto a drive-resident fstab.yaml. 2026-05-24 12:44:05 -06:00
test_onboarding.py Warning users when files exist in mount location. Users may have accidentally downloaded files into the media directory, we want to warn them. 2026-05-14 17:02:52 -06:00
test_onboarding_api.py Consolidating controller tests. Fixing controller test cleanup which slowed down tests significantly. 2026-05-15 21:10:30 -06:00
test_readiness.py Checking readiness of main app in Controller instead of javascript requests, which break with CORS. 2026-03-08 16:05:56 -06:00
test_ready_api.py Checking readiness of main app in Controller instead of javascript requests, which break with CORS. 2026-03-08 16:05:56 -06:00
test_reconciler.py Moving WROLPi-managed mounts off /etc/fstab onto a drive-resident fstab.yaml. 2026-05-24 12:44:05 -06:00
test_samba.py Adding docker support for samba shares. 2026-03-29 11:14:38 -06:00
test_samba_api.py Adding docker support for samba shares. 2026-03-29 11:14:38 -06:00
test_schemas.py Creating Controller service which will control WROLPi services, admin, SMART, disks, and status. nginx will fallback to Controller UI when React UI is unavailable (such as during upgrades). 2025-12-15 15:48:40 -07:00
test_scripts.py Enhancing Controller to run scripts, starting with the repair and upgrade scripts for onboarding use. 2026-02-25 17:08:32 -07:00
test_scripts_api.py Consolidating controller tests. Fixing controller test cleanup which slowed down tests significantly. 2026-05-15 21:10:30 -06:00
test_services_api.py Consolidating controller tests. Fixing controller test cleanup which slowed down tests significantly. 2026-05-15 21:10:30 -06:00
test_smart.py Creating Controller service which will control WROLPi services, admin, SMART, disks, and status. nginx will fallback to Controller UI when React UI is unavailable (such as during upgrades). 2025-12-15 15:48:40 -07:00
test_status.py Controller tracks disk bandwidth stats. 2026-01-23 15:29:18 -07:00
test_status_api.py Consolidating controller tests. Fixing controller test cleanup which slowed down tests significantly. 2026-05-15 21:10:30 -06:00
test_status_worker.py Consolidating controller tests. Fixing controller test cleanup which slowed down tests significantly. 2026-05-15 21:10:30 -06:00
test_systemd.py Key changes: 2026-04-04 13:48:19 -06:00
test_wrol_mode.py Creating Controller service which will control WROLPi services, admin, SMART, disks, and status. nginx will fallback to Controller UI when React UI is unavailable (such as during upgrades). 2025-12-15 15:48:40 -07:00