Only disable disk tests for critical errors
This commit is contained in:
parent
b1a68e20d7
commit
4b7e34eb17
1 changed files with 35 additions and 34 deletions
|
|
@ -483,45 +483,45 @@ class DiskObj():
|
||||||
"""Run safety checks and disable tests if necessary."""
|
"""Run safety checks and disable tests if necessary."""
|
||||||
test_running = False
|
test_running = False
|
||||||
if self.nvme_attributes or self.smart_attributes:
|
if self.nvme_attributes or self.smart_attributes:
|
||||||
disk_ok = self.check_attributes()
|
self.disk_ok = self.check_attributes()
|
||||||
test_running = self.check_smart_self_test(silent)
|
test_running = self.check_smart_self_test(silent)
|
||||||
|
|
||||||
# Show errors (unless a SMART self-test is running)
|
# Show errors (unless a SMART self-test is running)
|
||||||
if not (silent or test_running):
|
#if not (silent or test_running):
|
||||||
if disk_ok:
|
# if self.disk_ok:
|
||||||
# 199/C7 warning
|
# # 199/C7 warning
|
||||||
if self.smart_attributes.get(199, {}).get('raw', 0) > 0:
|
# if self.smart_attributes.get(199, {}).get('raw', 0) > 0:
|
||||||
print_warning('199/C7 error detected')
|
# print_warning('199/C7 error detected')
|
||||||
print_standard(' (Have you tried swapping the disk cable?)')
|
# print_standard(' (Have you tried swapping the disk cable?)')
|
||||||
else:
|
# else:
|
||||||
# Override?
|
# # Override?
|
||||||
show_report(
|
# show_report(
|
||||||
self.generate_attribute_report(description=True),
|
# self.generate_attribute_report(description=True),
|
||||||
log_report=True)
|
# log_report=True)
|
||||||
print_warning(' {} error(s) detected.'.format(self.attr_type))
|
# print_warning(' {} error(s) detected.'.format(self.attr_type))
|
||||||
if self.override_disabled:
|
# if self.override_disabled:
|
||||||
print_standard('Tests disabled for this device')
|
# print_standard('Tests disabled for this device')
|
||||||
pause()
|
# pause()
|
||||||
elif not (len(self.tests) == 3 and OVERRIDES_LIMITED):
|
# elif not (len(self.tests) == 3 and OVERRIDES_LIMITED):
|
||||||
if OVERRIDES_FORCED or ask('Run tests on this device anyway?'):
|
# if OVERRIDES_FORCED or ask('Run tests on this device anyway?'):
|
||||||
disk_ok = True
|
# self.disk_ok = True
|
||||||
if 'NVMe / SMART' in self.tests:
|
# if 'NVMe / SMART' in self.tests:
|
||||||
self.disable_test('NVMe / SMART', 'OVERRIDE')
|
# self.disable_test('NVMe / SMART', 'OVERRIDE')
|
||||||
if not self.nvme_attributes and self.smart_attributes:
|
# if not self.nvme_attributes and self.smart_attributes:
|
||||||
# Re-enable for SMART short-tests
|
# # Re-enable for SMART short-tests
|
||||||
self.tests['NVMe / SMART'].disabled = False
|
# self.tests['NVMe / SMART'].disabled = False
|
||||||
print_standard(' ')
|
# print_standard(' ')
|
||||||
else:
|
else:
|
||||||
# No NVMe/SMART details
|
# No NVMe/SMART details
|
||||||
self.disable_test('NVMe / SMART', 'N/A')
|
self.disable_test('NVMe / SMART', 'N/A')
|
||||||
if silent:
|
#if silent:
|
||||||
disk_ok = OVERRIDES_FORCED
|
# self.disk_ok = OVERRIDES_FORCED
|
||||||
else:
|
#else:
|
||||||
show_report(
|
# show_report(
|
||||||
self.generate_attribute_report(description=True),
|
# self.generate_attribute_report(description=True),
|
||||||
log_report=True)
|
# log_report=True)
|
||||||
disk_ok = OVERRIDES_FORCED or ask('Run tests on this device anyway?')
|
# self.disk_ok = OVERRIDES_FORCED or ask('Run tests on this device anyway?')
|
||||||
print_standard(' ')
|
# print_standard(' ')
|
||||||
|
|
||||||
# Disable tests if necessary (statuses won't be overwritten)
|
# Disable tests if necessary (statuses won't be overwritten)
|
||||||
if test_running:
|
if test_running:
|
||||||
|
|
@ -530,7 +530,8 @@ class DiskObj():
|
||||||
self.disable_test('NVMe / SMART', 'Denied')
|
self.disable_test('NVMe / SMART', 'Denied')
|
||||||
for t in ['badblocks', 'I/O Benchmark']:
|
for t in ['badblocks', 'I/O Benchmark']:
|
||||||
self.disable_test(t, 'Denied')
|
self.disable_test(t, 'Denied')
|
||||||
elif not disk_ok:
|
elif self.override_disabled:
|
||||||
|
# Critical disk error, disable all tests
|
||||||
self.disable_test('NVMe / SMART', 'FAIL', test_failed=True)
|
self.disable_test('NVMe / SMART', 'FAIL', test_failed=True)
|
||||||
for t in ['badblocks', 'I/O Benchmark']:
|
for t in ['badblocks', 'I/O Benchmark']:
|
||||||
self.disable_test(t, 'Denied')
|
self.disable_test(t, 'Denied')
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue