def smartctlToJson()

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)