Refactor import logic for wk.hw.diags
This commit is contained in:
parent
20f91f01d1
commit
312df1ee9d
1 changed files with 10 additions and 19 deletions
|
|
@ -16,21 +16,12 @@ from wk.hw import benchmark as hw_benchmark
|
||||||
from wk.hw import cpu as hw_cpu
|
from wk.hw import cpu as hw_cpu
|
||||||
from wk.hw import disk as hw_disk
|
from wk.hw import disk as hw_disk
|
||||||
from wk.hw import sensors as hw_sensors
|
from wk.hw import sensors as hw_sensors
|
||||||
|
from wk.hw import smart as hw_smart
|
||||||
from wk.hw import surface_scan as hw_surface_scan
|
from wk.hw import surface_scan as hw_surface_scan
|
||||||
from wk.hw import system as hw_system
|
from wk.hw import system as hw_system
|
||||||
from wk.hw.audio import audio_test
|
from wk.hw.audio import audio_test
|
||||||
from wk.hw.keyboard import keyboard_test
|
from wk.hw.keyboard import keyboard_test
|
||||||
from wk.hw.network import network_test
|
from wk.hw.network import network_test
|
||||||
from wk.hw.smart import (
|
|
||||||
CriticalHardwareError,
|
|
||||||
SMARTSelfTestInProgressError,
|
|
||||||
abort_self_test,
|
|
||||||
check_attributes,
|
|
||||||
check_self_test_results,
|
|
||||||
generate_attribute_report,
|
|
||||||
run_self_test,
|
|
||||||
safety_checks,
|
|
||||||
)
|
|
||||||
from wk.hw.screensavers import screensaver
|
from wk.hw.screensavers import screensaver
|
||||||
from wk.hw.test import Test, TestGroup
|
from wk.hw.test import Test, TestGroup
|
||||||
|
|
||||||
|
|
@ -131,8 +122,8 @@ class State():
|
||||||
continue
|
continue
|
||||||
|
|
||||||
try:
|
try:
|
||||||
safety_checks(disk)
|
hw_smart.safety_checks(disk)
|
||||||
except CriticalHardwareError:
|
except hw_smart.CriticalHardwareError:
|
||||||
disable_tests = True
|
disable_tests = True
|
||||||
disk.add_note('Critical hardware error detected.', 'RED')
|
disk.add_note('Critical hardware error detected.', 'RED')
|
||||||
if 'Disk Attributes' in disk.tests:
|
if 'Disk Attributes' in disk.tests:
|
||||||
|
|
@ -145,7 +136,7 @@ class State():
|
||||||
'Critical hardware error detected during diagnostics',
|
'Critical hardware error detected during diagnostics',
|
||||||
'YELLOW',
|
'YELLOW',
|
||||||
)
|
)
|
||||||
except SMARTSelfTestInProgressError as err:
|
except hw_smart.SMARTSelfTestInProgressError as err:
|
||||||
if prep:
|
if prep:
|
||||||
std.print_warning(f'SMART self-test(s) in progress for {disk.path}')
|
std.print_warning(f'SMART self-test(s) in progress for {disk.path}')
|
||||||
if std.ask('Continue with all tests disabled for this device?'):
|
if std.ask('Continue with all tests disabled for this device?'):
|
||||||
|
|
@ -170,7 +161,7 @@ class State():
|
||||||
if (
|
if (
|
||||||
'Disk Attributes' in disk.tests
|
'Disk Attributes' in disk.tests
|
||||||
and not disk.tests['Disk Attributes'].failed
|
and not disk.tests['Disk Attributes'].failed
|
||||||
and not check_attributes(disk, only_blocking=False)
|
and not hw_smart.check_attributes(disk, only_blocking=False)
|
||||||
):
|
):
|
||||||
# No blocking errors encountered, but found minor attribute failures
|
# No blocking errors encountered, but found minor attribute failures
|
||||||
if not prep:
|
if not prep:
|
||||||
|
|
@ -595,7 +586,7 @@ def disk_attribute_check(state, test_objects) -> None:
|
||||||
test.set_status('N/A')
|
test.set_status('N/A')
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if check_attributes(test.dev):
|
if hw_smart.check_attributes(test.dev):
|
||||||
test.passed = True
|
test.passed = True
|
||||||
test.set_status('Passed')
|
test.set_status('Passed')
|
||||||
else:
|
else:
|
||||||
|
|
@ -691,7 +682,7 @@ def disk_self_test(state, test_objects) -> None:
|
||||||
# Start thread
|
# Start thread
|
||||||
test.set_status('Working')
|
test.set_status('Working')
|
||||||
test_log = f'{state.log_dir}/{test.dev.path.name}_selftest.log'
|
test_log = f'{state.log_dir}/{test.dev.path.name}_selftest.log'
|
||||||
threads.append(exe.start_thread(run_self_test, args=(test, test_log)))
|
threads.append(exe.start_thread(hw_smart.run_self_test, args=(test, test_log)))
|
||||||
|
|
||||||
# Show progress
|
# Show progress
|
||||||
if threads[-1].is_alive():
|
if threads[-1].is_alive():
|
||||||
|
|
@ -710,12 +701,12 @@ def disk_self_test(state, test_objects) -> None:
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
aborted = True
|
aborted = True
|
||||||
for test in test_objects:
|
for test in test_objects:
|
||||||
abort_self_test(test.dev)
|
hw_smart.abort_self_test(test.dev)
|
||||||
std.sleep(0.5)
|
std.sleep(0.5)
|
||||||
|
|
||||||
# Save report(s)
|
# Save report(s)
|
||||||
for test in test_objects:
|
for test in test_objects:
|
||||||
check_self_test_results(test, aborted=aborted)
|
hw_smart.check_self_test_results(test, aborted=aborted)
|
||||||
|
|
||||||
# Cleanup
|
# Cleanup
|
||||||
state.update_progress_pane()
|
state.update_progress_pane()
|
||||||
|
|
@ -745,7 +736,7 @@ def disk_surface_scan(state, test_objects) -> None:
|
||||||
)
|
)
|
||||||
for disk in state.disks:
|
for disk in state.disks:
|
||||||
failed_attributes = [
|
failed_attributes = [
|
||||||
line for line in generate_attribute_report(disk) if 'failed' in line
|
line for line in hw_smart.generate_attribute_report(disk) if 'failed' in line
|
||||||
]
|
]
|
||||||
if failed_attributes:
|
if failed_attributes:
|
||||||
size_str = std.bytes_to_string(disk.size, use_binary=False)
|
size_str = std.bytes_to_string(disk.size, use_binary=False)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue