88 lines
3.5 KiB
Python
88 lines
3.5 KiB
Python
# 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, RedHatPlugin, PluginOpt
|
|
|
|
|
|
class Qpid(Plugin, RedHatPlugin):
|
|
|
|
short_desc = 'Qpid messaging'
|
|
|
|
plugin_name = 'qpid'
|
|
profiles = ('services',)
|
|
|
|
packages = ('qpidd', 'qpid-cpp-server', 'qpid-tools')
|
|
option_list = [
|
|
PluginOpt('port', default='', val_type=int,
|
|
desc='listening port to connect to'),
|
|
PluginOpt('ssl-certificate', default='', val_type=str,
|
|
desc='Path to file containing client SSL certificate'),
|
|
PluginOpt('ssl-key', default='', val_type=str,
|
|
desc='Path to file containing client SSL private key'),
|
|
PluginOpt('ssl', default=False, desc='enforce SSL amqps connection')
|
|
]
|
|
|
|
def setup(self):
|
|
""" performs data collection for qpid broker """
|
|
options = ""
|
|
amqps_prefix = "" # set amqps:// when SSL is used
|
|
if self.get_option("ssl"):
|
|
amqps_prefix = "amqps://"
|
|
# for either present option, add --option=value to 'options' variable
|
|
for option in ["ssl-certificate", "ssl-key"]:
|
|
if self.get_option(option):
|
|
amqps_prefix = "amqps://"
|
|
options = options + f" --{option}={self.get_option(option)}"
|
|
if self.get_option("port"):
|
|
options = (options + " -b " + amqps_prefix +
|
|
f"localhost:{self.get_option('port')}")
|
|
|
|
self.add_cmd_output([
|
|
"qpid-stat -g" + options, # applies since 0.18 version
|
|
"qpid-stat -b" + options, # applies to pre-0.18 versions
|
|
"qpid-stat -c" + options,
|
|
"qpid-stat -e" + options,
|
|
"qpid-stat -q" + options,
|
|
"qpid-stat -u" + options,
|
|
"qpid-stat -m" + options, # applies since 0.18 version
|
|
"qpid-config exchanges" + options,
|
|
"qpid-config queues" + options,
|
|
"qpid-config exchanges -b" + options, # applies to pre-0.18 vers.
|
|
"qpid-config queues -b" + options, # applies to pre-0.18 versions
|
|
"qpid-config exchanges -r" + options, # applies since 0.18 version
|
|
"qpid-config queues -r" + options, # applies since 0.18 version
|
|
"qpid-route link list" + options,
|
|
"qpid-route route list" + options,
|
|
"qpid-cluster" + options, # applies to pre-0.22 versions
|
|
"qpid-ha query" + options, # applies since 0.22 version
|
|
])
|
|
|
|
self.add_dir_listing('/var/lib/qpidd', recursive=True)
|
|
|
|
self.add_copy_spec([
|
|
"/etc/qpidd.conf", # applies to pre-0.22 versions
|
|
"/etc/qpid/qpidd.conf", # applies since 0.22 version
|
|
"/var/lib/qpid/syslog",
|
|
"/var/lib/qpidd/.qpidd/qls/dat2/DB_CONFIG",
|
|
"/var/lib/qpidd/qls/dat2/DB_CONFIG",
|
|
"/etc/ais/openais.conf",
|
|
"/var/log/cumin.log",
|
|
"/var/log/mint.log",
|
|
"/etc/sasl2/qpidd.conf",
|
|
"/etc/qpid/qpidc.conf",
|
|
"/etc/sesame/sesame.conf",
|
|
"/etc/cumin/cumin.conf",
|
|
"/etc/corosync/corosync.conf",
|
|
"/var/lib/sesame",
|
|
"/var/log/qpidd.log",
|
|
"/var/log/sesame",
|
|
"/var/log/cumin"
|
|
])
|
|
|
|
# vim: set et ts=4 sw=4 :
|