in fiosynth_lib/flash_config.py [0:0]
def smartctlToJson(data):
# Skip boot device (sda)
index = 1
device = "disk"
smart = {}
KEY = 0
VALUE = 2
while index != len(data[device]):
syntax = "smartctl -i /dev/%s | grep :" % (data[device][index])
lb = subprocess.Popen(syntax, stdout=subprocess.PIPE, shell=True)
smart.setdefault(index, {})
device_path = "/dev/%s" % data[device][index]
smart[index].setdefault("Device Path:", device_path)
for line in lb.stdout:
bits = line.split()
a = "%s %s" % (bits[KEY].decode("utf-8"), bits[KEY + 1].decode("utf-8"))
try:
b = "%s %s" % (
bits[VALUE].decode("utf-8"),
bits[VALUE + 1].decode("utf-8"),
)
except IndexError:
b = "%s" % (bits[VALUE].decode("utf-8"))
smart.setdefault(index, {})
smart[index].setdefault(a, b)
index += 1
return json.dumps(smart)