diff options
author | Pavel Moravec <pmoravec@redhat.com> | 2018-05-12 12:13:34 +0200 |
---|---|---|
committer | Bryn M. Reeves <bmr@redhat.com> | 2018-06-07 16:42:39 +0100 |
commit | 7b9d4baee31383cb85159ba7aa58a1c56e5df88a (patch) | |
tree | ffb79f5811a7a9b08b824d73d2460b0af495db74 | |
parent | f1f3a63aada7e5559f25c918fb8bb45c9ecdff7a (diff) | |
download | sos-7b9d4baee31383cb85159ba7aa58a1c56e5df88a.tar.gz |
[omnipath_*] Add two plugins
plugins added:
- omnipath_manager for OPA fabric subnet manager
- omnipath_client for management/head node of the cluster
Resolves: #1291
Signed-off-by: Pavel Moravec <pmoravec@redhat.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-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 : |