diff options
author | Masco Kaliyamoorthy <mkaliyam@redhat.com> | 2018-06-05 18:09:38 +0530 |
---|---|---|
committer | Bryn M. Reeves <bmr@redhat.com> | 2018-06-18 17:18:54 +0100 |
commit | 5941d73b9b65d1519bb285608a583abc7289f19c (patch) | |
tree | dc06e893533215a421bd947db42e3407d25c11b8 | |
parent | 147346d4ee4a558ec0da39a288cbc84c5053c5e1 (diff) | |
download | sos-5941d73b9b65d1519bb285608a583abc7289f19c.tar.gz |
[skydive] add plugin
skydive is an open source real-time network topology and protocols
analyzer for more info: http://skydive.network/
Resolves: #1351
Signed-off-by: Masco Kaliyamoorthy <mkaliyam@redhat.com>
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-rw-r--r-- | sos/plugins/skydive.py | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/sos/plugins/skydive.py b/sos/plugins/skydive.py new file mode 100644 index 00000000..d34d7926 --- /dev/null +++ b/sos/plugins/skydive.py @@ -0,0 +1,61 @@ +# Copyright (C) 2018 Masco Kaliyamoorthy <mkaliyam@redhat.com> + +# 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.plugins import Plugin, RedHatPlugin +import os + + +class Skydive(Plugin, RedHatPlugin): + """Skydive, a network topology and protocols analyzer + """ + + plugin_name = "skydive" + profiles = ('network', ) + files = ( + '/usr/bin/skydive', + '/etc/skydive/skydive.yml' + ) + + password_warn_text = " (password visible in process listings)" + + option_list = [ + ("username", "skydive user name", "", ""), + ("password", "skydive password" + password_warn_text, "", ""), + ("analyzer", "skydive analyzer address", "", "") + ] + + def setup(self): + self.limit = self.get_option("log_size") + self.add_copy_spec("/etc/skydive/skydive.yml") + self.add_copy_spec("/var/log/skydive.log", sizelimit=self.limit) + + username = (self.get_option("username") or + os.getenv("SKYDIVE_USERNAME", "") or + os.getenv("OS_USERNAME", "")) + password = (self.get_option("password") or + os.getenv("SKYDIVE_PASSWORD", "") or + os.getenv("OS_PASSWORD", "")) + analyzer = (self.get_option("analyzer") or + os.getenv("SKYDIVE_ANALYZER", "localhost:8082")) + + if not all([username, password, analyzer]): + self.soslog.warning("Some or all of the skydive params are not " + "set properly. Skydive status command may " + " not work as expected.") + + # Setting all the params in environment variable for + # skydive client access. + os.environ["SKYDIVE_USERNAME"] = username + os.environ["SKYDIVE_PASSWORD"] = password + os.environ["SKYDIVE_ANALYZER"] = analyzer + status_cmd = "skydive client status" + self.add_cmd_output(status_cmd) + +# vim: set et ts=4 sw=4 : |