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

add val fields and append device table flags to state

This commit is contained in:
Kelly Brazil
2022-08-07 15:11:16 -07:00
parent bc1521d937
commit b7a281c6c4

View File

@ -67,7 +67,8 @@ def _process(proc_data: Dict) -> Dict:
'active_devices', 'working_devices', 'failed_devices', 'spare_devices', 'active_devices', 'working_devices', 'failed_devices', 'spare_devices',
'events', 'number', 'major', 'minor', 'raid_device', 'avail_dev_size_num', 'events', 'number', 'major', 'minor', 'raid_device', 'avail_dev_size_num',
'data_offset', 'super_offset', 'unused_space_before', 'unused_space_after', 'data_offset', 'super_offset', 'unused_space_before', 'unused_space_after',
'chunk_size', 'preferred_minor', 'check_status_percent', 'resync_status_percent'} 'chunk_size', 'preferred_minor', 'check_status_percent', 'resync_status_percent',
'rebuild_status_percent'}
array_state_map = { array_state_map = {
'A': 'active', 'A': 'active',
@ -103,6 +104,9 @@ def _process(proc_data: Dict) -> Dict:
if 'name' in proc_data: if 'name' in proc_data:
proc_data['name_val'] = proc_data['name'].split(maxsplit=1)[0] proc_data['name_val'] = proc_data['name'].split(maxsplit=1)[0]
if 'uuid' in proc_data:
proc_data['uuid_val'] = proc_data['uuid'].split(maxsplit=1)[0]
if 'checksum' in proc_data: if 'checksum' in proc_data:
proc_data['checksum_val'] = proc_data['checksum'].split(maxsplit=1)[0] proc_data['checksum_val'] = proc_data['checksum'].split(maxsplit=1)[0]
proc_data['checksum_state'] = proc_data['checksum'].split()[-1] proc_data['checksum_state'] = proc_data['checksum'].split()[-1]
@ -129,6 +133,9 @@ def _process(proc_data: Dict) -> Dict:
if 'check_status' in proc_data: if 'check_status' in proc_data:
proc_data['check_status_percent'] = proc_data['check_status'].split('%')[0] proc_data['check_status_percent'] = proc_data['check_status'].split('%')[0]
if 'rebuild_status' in proc_data:
proc_data['rebuild_status_percent'] = proc_data['rebuild_status'].split('%')[0]
# add timestamp fields # add timestamp fields
if 'creation_time' in proc_data: if 'creation_time' in proc_data:
dt = jc.utils.timestamp(proc_data['creation_time'], format_hint=(1000,)) dt = jc.utils.timestamp(proc_data['creation_time'], format_hint=(1000,))
@ -215,8 +222,12 @@ def parse(
if 'RaidDevice' in item: if 'RaidDevice' in item:
item['raid_device'] = item.pop('RaidDevice') item['raid_device'] = item.pop('RaidDevice')
raw_output['device_table'] = d_table if 'device' in item and item['device']:
if not item['device'].startswith('/'):
flags, dev = item['device'].rsplit(maxsplit=1)
item['device'] = dev
item['state'] = item['state'] + ' ' + flags
raw_output['device_table'] = d_table # type: ignore
return raw_output if raw else _process(raw_output) return raw_output if raw else _process(raw_output)