Ensure SMART values are shown for some disks
* smartctl can return non-zero if there are errors in the SMART logs
This commit is contained in:
parent
14ebc23b81
commit
4d9ab2215b
2 changed files with 3 additions and 3 deletions
|
|
@ -350,7 +350,7 @@ class DiskObj():
|
|||
def get_smart_details(self):
|
||||
"""Get data from smartctl."""
|
||||
cmd = ['sudo', 'smartctl', '--all', '--json', self.path]
|
||||
self.smartctl = get_json_from_command(cmd)
|
||||
self.smartctl = get_json_from_command(cmd, check=False)
|
||||
|
||||
# Check for attributes
|
||||
if KEY_NVME in self.smartctl:
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import json
|
|||
|
||||
from functions.common import *
|
||||
|
||||
def get_json_from_command(cmd, ignore_errors=True):
|
||||
def get_json_from_command(cmd, check=True, ignore_errors=True):
|
||||
"""Capture JSON content from cmd output, returns dict.
|
||||
|
||||
If the data can't be decoded then either an exception is raised
|
||||
|
|
@ -17,7 +17,7 @@ def get_json_from_command(cmd, ignore_errors=True):
|
|||
errors = 'ignore'
|
||||
|
||||
try:
|
||||
result = run_program(cmd, encoding='utf-8', errors=errors)
|
||||
result = run_program(cmd, check=check, encoding='utf-8', errors=errors)
|
||||
json_data = json.loads(result.stdout)
|
||||
except (subprocess.CalledProcessError, json.decoder.JSONDecodeError):
|
||||
if not ignore_errors:
|
||||
|
|
|
|||
Loading…
Reference in a new issue