1
0
mirror of https://github.com/kellyjonbrazil/jc.git synced 2025-07-09 01:05:53 +02:00

reorder patterns

This commit is contained in:
Kelly Brazil
2022-09-03 14:05:57 -07:00
parent c1b2bae333
commit 146dc070ea

View File

@ -119,6 +119,10 @@ def _parse_modules():
print('modules')
def _parse_mtrr():
print('mtrr')
def _parse_partitions():
print('partitions')
@ -139,10 +143,6 @@ def _parse_softirqs():
print('softirqs')
def _parse_scsi():
print('scsi')
def _parse_stat():
print('stat')
@ -213,6 +213,9 @@ def _parse_net_protocols():
def _parse_net_route():
print('net route')
def _parse_net_unix():
print('net unix')
####
@ -251,6 +254,14 @@ def _parse_pid_mountinfo():
def _parse_pid_fdinfo():
print('pid fdinfo')
####
def _parse_scsi_scsi():
print('scsi scsi')
def _parse_scsi_device_info():
print('scsi device_info')
def parse(
data: str,
@ -278,30 +289,30 @@ def parse(
if jc.utils.has_data(data):
# signatures
uptime_p = re.compile(r'^\d+.\d\d \d+.\d\d$')
loadavg_p = re.compile(r'^\d+.\d\d \d+.\d\d \d+.\d\d \d+/\d+ \d+$')
buddyinfo_p = re.compile(r'^Node \d+, zone\s+\w+\s+(?:\d+\s+){11}\n')
consoles_p = re.compile(r'^\w+\s+[\-WUR]{3} \([ECBpba ]+\)\s+\d+:\d+\n')
cpuinfo_p = re.compile(r'^processor\s+:.*\nvendor_id\s+:.*\ncpu family\s+:.*\n')
meminfo_p = re.compile(r'^MemTotal:.*\nMemFree:.*\nMemAvailable:.*\n')
version_p = re.compile(r'^.+\sversion\s[^\n]+$')
crypto_p = re.compile(r'^name\s+:.*\ndriver\s+:.*\nmodule\s+:.*\n')
devices_p = re.compile(r'^Character devices:\n\s+\d+ .*\n')
diskstats_p = re.compile(r'^\s*\d+\s+\d\s\w+\s(?:\d+\s){16}\d\n')
filesystems_p = re.compile(r'^(?:(?:nodev\t|\t)\w+\n){3}')
interrupts_p = re.compile(r'^\s+(?:CPU\d+ +)+\n\s*\d+:\s+\d+')
iomem_p = re.compile(r'^00000000-[0-9a-f]{8} : .*\n[0-9a-f]{8}-[0-9a-f]{8} : ')
ioports_p = re.compile(r'^0000-[0-9a-f]{4} : .*\n\s*0000-[0-9a-f]{4} : ')
loadavg_p = re.compile(r'^\d+.\d\d \d+.\d\d \d+.\d\d \d+/\d+ \d+$')
locks_p = re.compile(r'^\d+: (?:POSIX|FLOCK|OFDLCK)\s+(?:ADVISORY|MANDATORY)\s+(?:READ|WRITE) ')
meminfo_p = re.compile(r'^MemTotal:.*\nMemFree:.*\nMemAvailable:.*\n')
modules_p = re.compile(r'^\w+ \d+ \d+ (?:-|\w+,).*0x[0-9a-f]{16}\n')
buddyinfo_p = re.compile(r'^Node \d+, zone\s+\w+\s+(?:\d+\s+){11}\n')
mtrr_p = re.compile(r'^reg\d+: base=0x[0-9a-f]+ \(')
pagetypeinfo_p = re.compile(r'^Page block order:\s+\d+\nPages per block:\s+\d+\n\n')
partitions_p = re.compile(r'^major minor #blocks name\n\n\s*\d+\s+\d+\s+\d+ \w+\n')
vmallocinfo_p = re.compile(r'^0x[0-9a-f]{16}-0x[0-9a-f]{16}\s+\d+ \w+\+\w+/\w+ ')
softirqs_p = re.compile(r'^\s+(CPU\d+\s+)+\n\s+HI:\s+\d')
scsi_p = re.compile(r'^Attached devices:\nHost: \w+ ')
stat_p = re.compile(r'^cpu\s+(?: \d+){10}.*intr ', re.DOTALL)
consoles_p = re.compile(r'^\w+\s+[\-WUR]{3} \([ECBpba ]+\)\s+\d+:\d+\n')
devices_p = re.compile(r'^Character devices:\n\s+\d+ .*\n')
slabinfo_p = re.compile(r'^slabinfo - version: \d+.\d+\n')
softirqs_p = re.compile(r'^\s+(CPU\d+\s+)+\n\s+HI:\s+\d')
stat_p = re.compile(r'^cpu\s+(?: \d+){10}.*intr ', re.DOTALL)
swaps_p = re.compile(r'^Filename\t\t\t\tType\t\tSize\t\tUsed\t\tPriority\n')
uptime_p = re.compile(r'^\d+.\d\d \d+.\d\d$')
version_p = re.compile(r'^.+\sversion\s[^\n]+$')
vmallocinfo_p = re.compile(r'^0x[0-9a-f]{16}-0x[0-9a-f]{16}\s+\d+ \w+\+\w+/\w+ ')
vmstat_p = re.compile(r'nr_free_pages \d+\n.* \d$', re.DOTALL)
zoneinfo_p = re.compile(r'^Node \d+, zone\s+\w+\n')
@ -310,15 +321,16 @@ def parse(
net_arp_p = re.compile(r'^IP address\s+HW type\s+Flags\s+HW address\s+Mask\s+Device\n')
net_dev_p = re.compile(r'^Inter-\|\s+Receive\s+\|\s+Transmit\n')
net_dev_mcast_p = re.compile(r'^\d+\s+\w+\s+\d+\s+\d+\s+[0-9a-f]{12}')
net_if_inet6_p = re.compile(r'^[0-9a-f]{32} \d\d \d\d \d\d \d\d\s+\w+')
net_igmp_p = re.compile(r'^Idx\tDevice\s+:\s+Count\s+Querier\tGroup\s+Users\s+Timer\tReporter\n')
net_igmp6_p = re.compile(r'^\d+\s+\w+\s+[0-9a-f]{32}\s+\d+\s+[0-9A-F]{8}\s+\d+')
net_if_inet6_p = re.compile(r'^[0-9a-f]{32} \d\d \d\d \d\d \d\d\s+\w+')
net_ipv6_route_p = re.compile(r'^[0-9a-f]{32} \d\d [0-9a-f]{32} \d\d [0-9a-f]{32} (?:[0-9a-f]{8} ){4}\s+\w+')
net_netlink_p = re.compile(r'^sk\s+Eth Pid\s+Groups\s+Rmem\s+Wmem')
net_netstat_p = re.compile(r'^TcpExt: SyncookiesSent SyncookiesRecv SyncookiesFailed')
net_packet_p = re.compile(r'^sk RefCnt Type Proto Iface R Rmem User Inode\n')
net_protocols_p = re.compile(r'^protocol size sockets memory press maxhdr slab module cl co di ac io in de sh ss gs se re sp bi br ha uh gp em\n')
net_route_p = re.compile(r'^Iface\tDestination\tGateway \tFlags\tRefCnt\tUse\tMetric\tMask\t\tMTU\tWindow\tIRTT\s+\n')
net_unix_p = re.compile(r'^Num RefCount Protocol Flags Type St Inode Path\n')
pid_status_p = re.compile(r'^Name:\t.+\nUmask:\t\d+\nState:\t.+\nTgid:\t\d+\n')
pid_statm_p = re.compile(r'^\d+ \d+ \d+\s\d+\s\d+\s\d+\s\d+$')
@ -330,31 +342,34 @@ def parse(
pid_mountinfo_p = re.compile(r'^\d+ \d+ \d+:\d+ /.+\n')
pid_fdinfo_p = re.compile(r'^pos:\t\d+\nflags:\t\d+\nmnt_id:\t\d+\n')
scsi_device_info = re.compile(r"^'\w+' '.+' 0x\d+")
scsi_scsi_p = re.compile(r'^Attached devices:\nHost: \w+ ')
procmap = {
uptime_p: _parse_uptime,
loadavg_p: _parse_loadavg,
buddyinfo_p: _parse_buddyinfo,
consoles_p: _parse_consoles,
cpuinfo_p: _parse_cpuinfo,
meminfo_p: _parse_meminfo,
version_p: _parse_version,
crypto_p: _parse_crypto,
devices_p: _parse_devices,
diskstats_p: _parse_diskstats,
filesystems_p: _parse_filesystems,
interrupts_p: _parse_interrupts,
iomem_p: _parse_iomem,
ioports_p: _parse_ioports,
loadavg_p: _parse_loadavg,
locks_p: _parse_locks,
meminfo_p: _parse_meminfo,
modules_p: _parse_modules,
buddyinfo_p: _parse_buddyinfo,
mtrr_p: _parse_mtrr,
pagetypeinfo_p: _parse_pagetypeinfo,
partitions_p: _parse_partitions,
vmallocinfo_p: _parse_vmallocinfo,
slabinfo_p: _parse_slabinfo,
softirqs_p: _parse_softirqs,
scsi_p: _parse_scsi,
stat_p: _parse_stat,
swaps_p: _parse_swaps,
consoles_p: _parse_consoles,
devices_p: _parse_devices,
uptime_p: _parse_uptime,
version_p: _parse_version,
vmallocinfo_p: _parse_vmallocinfo,
vmstat_p: _parse_vmstat,
zoneinfo_p: _parse_zoneinfo,
@ -362,26 +377,30 @@ def parse(
net_arp_p: _parse_net_arp,
net_dev_p: _parse_net_dev,
net_ipv6_route_p: _parse_net_ipv6_route, # before net_dev_mcast
net_dev_mcast_p: _parse_net_dev_mcast, # after net_ipv6_route
net_if_inet6_p: _parse_net_if_inet6,
net_igmp_p: _parse_net_igmp,
net_igmp6_p: _parse_net_igmp6,
net_if_inet6_p: _parse_net_if_inet6,
net_netlink_p: _parse_net_netlink,
net_netstat_p: _parse_net_netstat,
net_packet_p: _parse_net_packet,
net_protocols_p: _parse_net_protocols,
net_route_p: _parse_net_route,
net_unix_p: _parse_net_unix,
net_ipv6_route_p: _parse_net_ipv6_route, # before net_dev_mcast
net_dev_mcast_p: _parse_net_dev_mcast, # after net_ipv6_route
pid_status_p: _parse_pid_status,
pid_statm_p: _parse_pid_statm,
pid_stat_p: _parse_pid_stat,
pid_smaps_p: _parse_pid_smaps, # before pid_maps
pid_maps_p: _parse_pid_maps, # after pid_smaps
pid_numa_maps_p: _parse_pid_numa_maps,
pid_fdinfo_p: _parse_pid_fdinfo,
pid_io_p: _parse_pid_io,
pid_mountinfo_p: _parse_pid_mountinfo,
pid_fdinfo_p: _parse_pid_fdinfo
pid_numa_maps_p: _parse_pid_numa_maps,
pid_stat_p: _parse_pid_stat,
pid_statm_p: _parse_pid_statm,
pid_status_p: _parse_pid_status,
pid_smaps_p: _parse_pid_smaps, # before pid_maps
pid_maps_p: _parse_pid_maps, # after pid_smaps
scsi_device_info: _parse_scsi_device_info,
scsi_scsi_p: _parse_scsi_scsi
}
for reg_pattern, parse_func in procmap.items():