From aada5f0794416b7e8e90beb0c5f8dd8546a0549d Mon Sep 17 00:00:00 2001 From: Kelly Brazil Date: Sat, 4 Feb 2023 19:04:43 -0800 Subject: [PATCH] add int conversions --- jc/parsers/zpool_status.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/jc/parsers/zpool_status.py b/jc/parsers/zpool_status.py index 1912e2c2..78f0baa9 100644 --- a/jc/parsers/zpool_status.py +++ b/jc/parsers/zpool_status.py @@ -162,6 +162,15 @@ def _process(proc_data: List[JSONDictType]) -> List[JSONDictType]: List of Dictionaries. Structured to conform to the schema. """ + int_list = {'read', 'write', 'checksum'} + + for obj in proc_data: + if 'config' in obj: + for conf in obj['config']: + for k, v in conf.items(): + if k in int_list: + conf[k] = jc.utils.convert_to_int(v) + return proc_data @@ -223,10 +232,17 @@ def parse( pool_str += line + '\n' continue + # preserve indentation in continuation lines if line.startswith(' '): pool_str += line + '\n' continue + # indent path lines for errors field + if line.startswith('/'): + pool_str += ' ' + line + '\n' + continue + + # remove initial spaces from field start lines so we don't confuse line continuation pool_str += line.strip() + '\n' if pool_str: