aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPavel Moravec <pmoravec@redhat.com>2018-05-12 12:13:34 +0200
committerBryn M. Reeves <bmr@redhat.com>2018-06-07 16:42:39 +0100
commit7b9d4baee31383cb85159ba7aa58a1c56e5df88a (patch)
treeffb79f5811a7a9b08b824d73d2460b0af495db74
parentf1f3a63aada7e5559f25c918fb8bb45c9ecdff7a (diff)
downloadsos-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.py51
-rw-r--r--sos/plugins/omnipath_manager.py58
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 :