wrolpi/controller/test
lrnselfreliance dac849f9f6
Some checks failed
CodeQL / Analyze (push) Has been cancelled
Controller Tests / controller-tests (push) Has been cancelled
Jest Tests / jest-tests (push) Has been cancelled
Surface coarse SMART health for USB-bridge drives (#498)
* Surface coarse SMART health for USB-bridge drives

USB enclosures that reject ATA pass-through (e.g. Seagate Expansion) are
invisible to pySMART/DeviceList, so the drive shows no SMART at all on the
Controller page. Fall back to smartctl over the SCSI transport, which many
such bridges still answer, to report a coarse PASS/FAIL health plus drive
identity (model/serial/capacity).

The health (-d scsi -H) and identity (-d scsi -i) reads are issued as
separate calls: combining them makes smartctl suppress the health line when
the identity read reports "SMART support is: Unavailable" (which these
bridges do). The entry is marked smart_limited (labelled "(limited)" in both
UIs) so a green PASS is not mistaken for full monitoring — these drives
expose no attributes or temperature, and some bridges report "OK" statically.

* Harden SCSI health fallback (Greptile review)

- _scsi_health: treat any unrecognised status (e.g. "UNKNOWN", "N/A") as
  unreadable (None) instead of a false FAIL. Only "OK" -> PASS and "FAIL*"
  -> FAIL; anything else omits the drive rather than showing a red FAIL that
  contradicts the smart_limited disclaimer.
- get_all_smart_status: isolate the SCSI supplement loop in its own
  try/except so an error there cannot discard the pySMART results already
  collected.

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 09:05:06 -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 Surface coarse SMART health for USB-bridge drives (#498) 2026-06-26 09:05:06 -06: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 Warn in the navbar when a hard drive runs hot (#470) 2026-06-11 19:46:33 -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