diff options
author | Daniil Baturin <daniil@vyos.io> | 2022-02-21 08:06:40 -0500 |
---|---|---|
committer | Daniil Baturin <daniil@vyos.io> | 2022-02-21 10:32:07 -0500 |
commit | a3b7e985911eeaccac4fa229563b78c5a64e7e90 (patch) | |
tree | d61bd035889fe8b24c2c4f62316bc54b285821a5 /src/op_mode/cpu_summary.py | |
parent | 529af7898d062b42ac33e15bfdc62c14184e098f (diff) | |
download | vyos-1x-a3b7e985911eeaccac4fa229563b78c5a64e7e90.tar.gz vyos-1x-a3b7e985911eeaccac4fa229563b78c5a64e7e90.zip |
T2719: initial batch of standardized structure op mode scripts
Diffstat (limited to 'src/op_mode/cpu_summary.py')
-rwxr-xr-x | src/op_mode/cpu_summary.py | 36 |
1 files changed, 24 insertions, 12 deletions
diff --git a/src/op_mode/cpu_summary.py b/src/op_mode/cpu_summary.py index cfd321522..3bdf5a718 100755 --- a/src/op_mode/cpu_summary.py +++ b/src/op_mode/cpu_summary.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -# Copyright (C) 2018 VyOS maintainers and contributors +# Copyright (C) 2018-2022 VyOS maintainers and contributors # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 or later as @@ -19,18 +19,30 @@ from vyos.util import colon_separated_to_dict FILE_NAME = '/proc/cpuinfo' -with open(FILE_NAME, 'r') as f: - data_raw = f.read() +def get_raw_data(): + with open(FILE_NAME, 'r') as f: + data_raw = f.read() -data = colon_separated_to_dict(data_raw) + data = colon_separated_to_dict(data_raw) -# Accumulate all data in a dict for future support for machine-readable output -cpu_data = {} -cpu_data['cpu_number'] = len(data['processor']) -cpu_data['models'] = list(set(data['model name'])) + # Accumulate all data in a dict for future support for machine-readable output + cpu_data = {} + cpu_data['cpu_number'] = len(data['processor']) + cpu_data['models'] = list(set(data['model name'])) -# Strip extra whitespace from CPU model names, /proc/cpuinfo is prone to that -cpu_data['models'] = map(lambda s: re.sub(r'\s+', ' ', s), cpu_data['models']) + # Strip extra whitespace from CPU model names, /proc/cpuinfo is prone to that + cpu_data['models'] = list(map(lambda s: re.sub(r'\s+', ' ', s), cpu_data['models'])) + + return cpu_data + +def get_formatted_output(): + cpu_data = get_raw_data() + + out = "CPU(s): {0}\n".format(cpu_data['cpu_number']) + out += "CPU model(s): {0}".format(",".join(cpu_data['models'])) + + return out + +if __name__ == '__main__': + print(get_formatted_output()) -print("CPU(s): {0}".format(cpu_data['cpu_number'])) -print("CPU model(s): {0}".format(",".join(cpu_data['models']))) |