Skip disk utilization checks for small devices
This commit is contained in:
parent
8c67830345
commit
4b269cc120
3 changed files with 24 additions and 16 deletions
|
|
@ -183,8 +183,9 @@ TMUX_LAYOUT = OrderedDict({
|
||||||
'I/O Benchmark': {'height': 1000, 'Check': False},
|
'I/O Benchmark': {'height': 1000, 'Check': False},
|
||||||
})
|
})
|
||||||
# VOLUME THRESHOLDS in percent
|
# VOLUME THRESHOLDS in percent
|
||||||
VOLUME_WARNING_THRESHOLD = 70
|
VOLUME_WARNING_THRESHOLD = 70
|
||||||
VOLUME_FAILURE_THRESHOLD = 85
|
VOLUME_FAILURE_THRESHOLD = 85
|
||||||
|
VOLUME_SIZE_THRESHOLD = 30 # In GB
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
|
||||||
|
|
@ -981,12 +981,6 @@ def run_diags(state, menu, quick_mode=False, test_mode=False) -> None:
|
||||||
# Post disk results
|
# Post disk results
|
||||||
hw_osticket.post_disk_results(state, NUM_DISK_TESTS)
|
hw_osticket.post_disk_results(state, NUM_DISK_TESTS)
|
||||||
|
|
||||||
# Drop Disk Utilization reports (only needed for OST)
|
|
||||||
for test_group in state.test_groups:
|
|
||||||
if test_group.name == 'Disk Utilization':
|
|
||||||
for test in test_group.test_objects:
|
|
||||||
test.report = []
|
|
||||||
|
|
||||||
# Show results
|
# Show results
|
||||||
show_results(state)
|
show_results(state)
|
||||||
|
|
||||||
|
|
@ -1020,6 +1014,12 @@ def show_results(state) -> None:
|
||||||
std.print_report(state.system.generate_report())
|
std.print_report(state.system.generate_report())
|
||||||
std.print_standard(' ')
|
std.print_standard(' ')
|
||||||
|
|
||||||
|
# Drop Disk Utilization reports (only needed for OST)
|
||||||
|
for test_group in state.test_groups:
|
||||||
|
if test_group.name == 'Disk Utilization':
|
||||||
|
for test in test_group.test_objects:
|
||||||
|
test.report = []
|
||||||
|
|
||||||
# Disk Tests
|
# Disk Tests
|
||||||
disk_tests_enabled = [
|
disk_tests_enabled = [
|
||||||
group.name for group in state.test_groups if 'Disk' in group.name
|
group.name for group in state.test_groups if 'Disk' in group.name
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,8 @@
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
from wk import os as wk_os
|
from wk import os as wk_os
|
||||||
from wk.cfg.hw import VOLUME_FAILURE_THRESHOLD
|
from wk.cfg.hw import VOLUME_FAILURE_THRESHOLD, VOLUME_SIZE_THRESHOLD
|
||||||
from wk.std import PLATFORM, bytes_to_string
|
from wk.std import PLATFORM, GenericError, bytes_to_string
|
||||||
|
|
||||||
|
|
||||||
# STATIC VARIABLES
|
# STATIC VARIABLES
|
||||||
|
|
@ -40,14 +40,17 @@ def add_child_dev_line(test_obj, child) -> None:
|
||||||
elif PLATFORM == 'Linux':
|
elif PLATFORM == 'Linux':
|
||||||
free = int(child['fsavail'])
|
free = int(child['fsavail'])
|
||||||
used = int(child['fsused'])
|
used = int(child['fsused'])
|
||||||
percent_used = (used / size) * 100
|
if free == 0:
|
||||||
except TypeError:
|
raise GenericError('Most likely a false positive.')
|
||||||
|
percent_used = (used / size) * 100
|
||||||
|
except (GenericError, TypeError):
|
||||||
# Bail early
|
# Bail early
|
||||||
test_obj.report.append(f'{dev_info}... Mounted on {child["mountpoint"]}')
|
test_obj.report.append(f'{dev_info}... Mounted on {child["mountpoint"]}')
|
||||||
return
|
return
|
||||||
|
|
||||||
# Check for failures
|
# Check for failures
|
||||||
if percent_used >= VOLUME_FAILURE_THRESHOLD:
|
if (percent_used >= VOLUME_FAILURE_THRESHOLD
|
||||||
|
and size >= VOLUME_SIZE_THRESHOLD * 1024**3):
|
||||||
test_obj.failed = True
|
test_obj.failed = True
|
||||||
vol_full = True
|
vol_full = True
|
||||||
|
|
||||||
|
|
@ -74,7 +77,7 @@ def add_root_dev_line(test_obj) -> None:
|
||||||
vol_full = False
|
vol_full = False
|
||||||
|
|
||||||
# Get sizes
|
# Get sizes
|
||||||
percent_used = 0
|
percent_used = -1
|
||||||
size = dev.size
|
size = dev.size
|
||||||
try:
|
try:
|
||||||
if PLATFORM == 'Darwin':
|
if PLATFORM == 'Darwin':
|
||||||
|
|
@ -84,8 +87,10 @@ def add_root_dev_line(test_obj) -> None:
|
||||||
elif PLATFORM == 'Linux':
|
elif PLATFORM == 'Linux':
|
||||||
free = int(dev.raw_details['fsavail'])
|
free = int(dev.raw_details['fsavail'])
|
||||||
used = int(dev.raw_details['fsused'])
|
used = int(dev.raw_details['fsused'])
|
||||||
|
if free == 0:
|
||||||
|
raise GenericError('Most likely a false positive.')
|
||||||
percent_used = (used / size) * 100
|
percent_used = (used / size) * 100
|
||||||
except TypeError:
|
except (GenericError, TypeError):
|
||||||
# Bail early
|
# Bail early
|
||||||
test_obj.report.append(
|
test_obj.report.append(
|
||||||
f'{dev_info}... Mounted on {dev.raw_details["mountpoint"]}',
|
f'{dev_info}... Mounted on {dev.raw_details["mountpoint"]}',
|
||||||
|
|
@ -137,7 +142,9 @@ def check_volume_utilization(test_obj) -> None:
|
||||||
def mount_all_volumes(dev) -> None:
|
def mount_all_volumes(dev) -> None:
|
||||||
"""Mount all volumes for dev using."""
|
"""Mount all volumes for dev using."""
|
||||||
if PLATFORM == 'Darwin':
|
if PLATFORM == 'Darwin':
|
||||||
wk_os.mac.mount_disk(device_path=dev.path)
|
# NOTE: Disabled due to a bug they should already be mounted by macOS
|
||||||
|
#wk_os.mac.mount_disk(device_path=dev.path)
|
||||||
|
pass
|
||||||
elif PLATFORM == 'Linux':
|
elif PLATFORM == 'Linux':
|
||||||
wk_os.linux.mount_volumes(
|
wk_os.linux.mount_volumes(
|
||||||
device_path=dev.path,
|
device_path=dev.path,
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue