diff options
-rw-r--r-- | sos/plugins/omnipath_client.py | 51 | ||||
-rw-r--r-- | sos/plugins/omnipath_manager.py | 58 |
2 files changed, 109 insertions, 0 deletions
diff --git a/sos/plugins/omnipath_client.py b/sos/plugins/omnipath_client.py new file mode 100644 index 00000000..9f8be55f --- /dev/null +++ b/sos/plugins/omnipath_client.py @@ -0,0 +1,51 @@ +# Copyright (C) 2018 Red Hat, Inc., Pavel Moravec <pmoravec@redhat.com> + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +from sos.plugins import Plugin, RedHatPlugin +from os.path import join + + +class OmnipathClient(Plugin, RedHatPlugin): + """OmniPath Tools and Fast Fabric Client + """ + + plugin_name = 'omnipath_client' + profiles = ('hardware',) + + packages = ('opa-basic-tools') + + def setup(self): + + self.add_cmd_output([ + "opainfo", + "opafabricinfo", + "opahfirev", + "opapmaquery", + "opaportinfo", + "opasaquery", + "opasmaquery", + "opashowmc", + "opareports", + ]) + + # opacapture generates a tarball of given name we should collect; + # rather than storing it somewhere under /var/tmp and copying it via + # add_copy_spec, add it directly to sos_commands/<plugin> dir by + # building a path argument using self.get_cmd_output_path(). + self.add_cmd_output("opacapture %s" % join(self.get_cmd_output_path(), + "opacapture.tgz")) + +# vim: set et ts=4 sw=4 : diff --git a/sos/plugins/omnipath_manager.py b/sos/plugins/omnipath_manager.py new file mode 100644 index 00000000..95989bf8 --- /dev/null +++ b/sos/plugins/omnipath_manager.py @@ -0,0 +1,58 @@ +# Copyright (C) 2018 Red Hat, Inc., Pavel Moravec <pmoravec@redhat.com> + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +from sos.plugins import Plugin, RedHatPlugin + + +class OmnipathManager(Plugin, RedHatPlugin): + """OmniPath Fabric Manager + """ + + plugin_name = 'omnipath_manager' + profiles = ('hardware',) + + packages = ('opa-fm') + + def setup(self): + + # Use absolute paths for the opa-fm binaries since they are installed + # in a non-standard location (sos policies do not evaluate drop-in + # files from /etc/profile.d). + self.add_cmd_output([ + "/usr/lib/opa-fm/bin/config_check -v -d -s", + "/usr/lib/opa-fm/bin/fm_cmdall smAdaptiveRouting", + "/usr/lib/opa-fm/bin/fm_cmdall smLooptestShowConfig", + "/usr/lib/opa-fm/bin/fm_cmdall smLooptestShowTopology", + "/usr/lib/opa-fm/bin/fm_cmdall smLooptestShowSwitchLft", + "/usr/lib/opa-fm/bin/fm_cmdall smLooptestShowLoopPaths", + "/usr/lib/opa-fm/bin/fm_cmdall pmShowCounters", + "/usr/lib/opa-fm/bin/fm_cmdall smShowCounters", + ]) + + # fm_capture generates a dated tgz file in the current directory only + # so change dir to sos_commands/<plugin>, collect the tarball directly + # there now, and change dir back. This is unfortunate but is the only + # way to collect this since fm_capture has no option to set the output + # path or file name. + # + # This may also need to be amended for other distributions if these + # binaries are placed in an alternative location (e.g. /usr/libexec). + self.add_cmd_output("/usr/lib/opa-fm/bin/fm_capture", + runat=self.get_cmd_output_path()) + + self.add_copy_spec("/etc/opa-fm/opafm.xml") + +# vim: set et ts=4 sw=4 : |