1
0
mirror of https://github.com/kellyjonbrazil/jc.git synced 2025-06-19 00:17:51 +02:00

process lsblk data

This commit is contained in:
Kelly Brazil
2019-11-05 23:10:49 -06:00
parent c780aac3ab
commit 2bb7409887
2 changed files with 36 additions and 11 deletions

View File

@ -5,7 +5,7 @@ Usage:
Examples: Examples:
$ df | jc --df -p $ df | jc --df -p
[ [
{ {
"filesystem": "devtmpfs", "filesystem": "devtmpfs",
@ -71,6 +71,7 @@ def process(proc_data):
[ [
{ {
"filesystem": string, "filesystem": string,
"size": string,
"1k-blocks": integer, "1k-blocks": integer,
"used": integer, "used": integer,
"available": integer, "available": integer,
@ -100,7 +101,7 @@ def process(proc_data):
try: try:
key_int = int(entry[key]) key_int = int(entry[key])
entry[key] = key_int entry[key] = key_int
except (ValueError, TypeError): except (ValueError):
entry[key] = None entry[key] = None
return proc_data return proc_data

View File

@ -107,17 +107,17 @@ def process(proc_data):
"group": string, "group": string,
"mode": string, "mode": string,
"alignment": integer, "alignment": integer,
"min-io": integer, "min_io": integer,
"opt-io": integer, "opt_io": integer,
"phy-sec": integer, "phy_sec": integer,
"log-sec": integer, "log_sec": integer,
"rota": boolean, "rota": boolean,
"sched": string, "sched": string,
"rq-size": integer, "rq_size": integer,
"disc-aln": integer, "disc_aln": integer,
"disc-gran": string, "disc_gran": string,
"disc-max": string, "disc_max": string,
"disc-zero": boolean, "disc_zero": boolean,
"wsame": string, "wsame": string,
"wwn": string, "wwn": string,
"rand": boolean, "rand": boolean,
@ -126,6 +126,27 @@ def process(proc_data):
} }
] ]
''' '''
for entry in proc_data:
# boolean changes
int_list = ['rm', 'ro', 'ra', 'rota', 'disc_zero', 'rand']
for key in int_list:
if key in entry:
try:
key_int = bool(int(entry[key]))
entry[key] = key_int
except (ValueError):
entry[key] = None
# integer changes
int_list = ['alignment', 'min_io', 'opt_io', 'phy_sec', 'log_sec', 'rq_size', 'disc_aln']
for key in int_list:
if key in entry:
try:
key_int = int(entry[key])
entry[key] = key_int
except (ValueError):
entry[key] = None
return proc_data return proc_data
@ -165,6 +186,9 @@ def parse(data, raw=False):
output_line = dict(zip(headers, temp_line)) output_line = dict(zip(headers, temp_line))
raw_output.append(output_line) raw_output.append(output_line)
for entry in raw_output:
entry['name'] = entry['name'].encode('ascii', errors='ignore').decode()
if raw: if raw:
return raw_output return raw_output
else: else: