mirror of
https://github.com/kellyjonbrazil/jc.git
synced 2025-08-10 22:41:51 +02:00
process uptime data
This commit is contained in:
@@ -7,17 +7,59 @@ Example:
|
||||
|
||||
$ uptime | jc --uptime -p
|
||||
{
|
||||
"time": "16:52",
|
||||
"uptime": "3 days, 4:49",
|
||||
"users": "5",
|
||||
"load_1m": "1.85",
|
||||
"load_5m": "1.90",
|
||||
"load_15m": "1.91"
|
||||
"time": "11:30:44",
|
||||
"uptime": "1 day, 21:17",
|
||||
"users": 1,
|
||||
"load_1m": 0.01,
|
||||
"load_5m": 0.04,
|
||||
"load_15m": 0.05
|
||||
}
|
||||
|
||||
$ uptime | jc --uptime -p -r
|
||||
{
|
||||
"time": "11:31:09",
|
||||
"uptime": "1 day, 21:17",
|
||||
"users": "1",
|
||||
"load_1m": "0.00",
|
||||
"load_5m": "0.04",
|
||||
"load_15m": "0.05"
|
||||
}
|
||||
"""
|
||||
import jc.utils
|
||||
|
||||
|
||||
def process(proc_data):
|
||||
'''schema:
|
||||
{
|
||||
"time": string,
|
||||
"uptime": string,
|
||||
"users": integer,
|
||||
"load_1m": float,
|
||||
"load_5m": float,
|
||||
"load_15m": float
|
||||
}
|
||||
'''
|
||||
int_list = ['users']
|
||||
for key in int_list:
|
||||
if key in proc_data:
|
||||
try:
|
||||
key_int = int(proc_data[key])
|
||||
proc_data[key] = key_int
|
||||
except (ValueError):
|
||||
proc_data[key] = None
|
||||
|
||||
float_list = ['load_1m', 'load_5m', 'load_15m']
|
||||
for key in float_list:
|
||||
if key in proc_data:
|
||||
try:
|
||||
key_float = float(proc_data[key])
|
||||
proc_data[key] = key_float
|
||||
except (ValueError):
|
||||
proc_data[key] = None
|
||||
|
||||
return proc_data
|
||||
|
||||
|
||||
def parse(data, raw=False, quiet=False):
|
||||
# compatible options: linux, darwin, cygwin, win32, aix, freebsd
|
||||
compatible = ['linux', 'darwin', 'cygwin', 'aix', 'freebsd']
|
||||
@@ -25,7 +67,7 @@ def parse(data, raw=False, quiet=False):
|
||||
if not quiet:
|
||||
jc.utils.compatibility(__name__, compatible)
|
||||
|
||||
output = {}
|
||||
raw_output = {}
|
||||
|
||||
cleandata = data.splitlines()
|
||||
|
||||
@@ -42,11 +84,14 @@ def parse(data, raw=False, quiet=False):
|
||||
marker = i + 2
|
||||
break
|
||||
|
||||
output['time'] = parsed_line[0]
|
||||
output['uptime'] = ' '.join(parsed_line[marker:13]).lstrip().rstrip(',')
|
||||
output['users'] = parsed_line[13]
|
||||
output['load_1m'] = parsed_line[17].rstrip(',')
|
||||
output['load_5m'] = parsed_line[18].rstrip(',')
|
||||
output['load_15m'] = parsed_line[19]
|
||||
raw_output['time'] = parsed_line[0]
|
||||
raw_output['uptime'] = ' '.join(parsed_line[marker:13]).lstrip().rstrip(',')
|
||||
raw_output['users'] = parsed_line[13]
|
||||
raw_output['load_1m'] = parsed_line[17].rstrip(',')
|
||||
raw_output['load_5m'] = parsed_line[18].rstrip(',')
|
||||
raw_output['load_15m'] = parsed_line[19]
|
||||
|
||||
return output
|
||||
if raw:
|
||||
return raw_output
|
||||
else:
|
||||
return process(raw_output)
|
||||
|
Reference in New Issue
Block a user