From d9aa743d2b0e4c4cf07bbd88fb0bf957e3a28cef Mon Sep 17 00:00:00 2001 From: Bhushan Kale Date: Tue, 2 Jan 2024 12:10:13 +0530 Subject: [PATCH] [sedutil.py] Added sedutil plugin to collect SED drives info Now collecting Self Encrypting Drives info using sedutil utility Signed-off-by: Bhushan Kale --- sos/report/plugins/sedutil.py | 48 +++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 sos/report/plugins/sedutil.py diff --git a/sos/report/plugins/sedutil.py b/sos/report/plugins/sedutil.py new file mode 100644 index 0000000000..f46fab0ce6 --- /dev/null +++ b/sos/report/plugins/sedutil.py @@ -0,0 +1,48 @@ +# This file is part of the sos project: https://github.com/sosreport/sos +# +# This copyrighted material is made available to anyone wishing to use, +# modify, copy, or redistribute it subject to the terms and conditions of +# version 2 of the GNU General Public License. +# +# See the LICENSE file in the source distribution for further information. + +from sos.report.plugins import Plugin, IndependentPlugin, PluginOpt + + +class SEDUtility(Plugin, IndependentPlugin): + """ + Collects information about SED drives installed on host system. + This plugin will capture data using sedutil utility + """ + + short_desc = 'Self Encrypting Drives' + plugin_name = 'sedutil' + profiles = ('security', 'system', 'storage', 'hardware') + packages = ('sedutil',) + + option_list = [ + PluginOpt('debug', default=False, desc='capture debug data'), + ] + + def setup(self): + sed_list = [] + result = self.collect_cmd_output('sedutil-cli --scan') + + if self.get_option("debug"): + if 0 == result['status']: + # iterate over all the devices returned and + # create a list of SED drives. + for line in result['output'].splitlines(): + if line.startswith("/dev/"): + line = line.split() + disk, tcg_opal_dev = line[:2] + # Check if it is SED device or not + if "2" == tcg_opal_dev: + sed_list.append(disk) + self.do_debug(sed_list) + + def do_debug(self, sed_list): + for device in sed_list: + self.add_cmd_output(f"sedutil-cli --query {device}") + +# vim: set et ts=4 sw=4 :