From a3d43f27f7bb0835b3593b7c303fe0ee8d896a58 Mon Sep 17 00:00:00 2001 From: Kelly Brazil Date: Fri, 25 Oct 2019 18:25:33 -0700 Subject: [PATCH] fix odd uptime text parsing --- jc/parsers/uptime.py | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/jc/parsers/uptime.py b/jc/parsers/uptime.py index 558d484f..c5d6c362 100644 --- a/jc/parsers/uptime.py +++ b/jc/parsers/uptime.py @@ -25,19 +25,21 @@ def parse(data): if cleandata: parsed_line = cleandata[0].split() - # fix parsing if uptime is only a few minutes - if len(parsed_line) < 12: + # allow space for odd times + while len(parsed_line) < 20: parsed_line.insert(2, ' ') - # fix parsing if uptime is only a few hours - if len(parsed_line) == 11: - parsed_line.insert(2, ' ') + # find first part of time + for i, word in enumerate(parsed_line[2:]): + if word != ' ': + marker = i + 2 + break output['time'] = parsed_line[0] - output['uptime'] = ' '.join(parsed_line[2:5]).lstrip().rstrip(',') - output['users'] = parsed_line[5] - output['load_1m'] = parsed_line[9].rstrip(',') - output['load_5m'] = parsed_line[10].rstrip(',') - output['load_15m'] = parsed_line[11] + 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] return output