From e75bc709aef0c10a06f904c6dca92d100ba0de15 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Mar 05 2015 13:28:01 +0000 Subject: import sos-3.2-15.el7 --- diff --git a/.gitignore b/.gitignore index d31d1e2..1b546cb 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/sos-3.0.tar.gz +SOURCES/sos-3.2.tar.gz diff --git a/.sos.metadata b/.sos.metadata index 3604b33..43e2b07 100644 --- a/.sos.metadata +++ b/.sos.metadata @@ -1 +1 @@ -03814468bf9da81897f2157ac3e7013019d73169 SOURCES/sos-3.0.tar.gz +305adf65f683708e42114bea2d01ad8c795e2503 SOURCES/sos-3.2.tar.gz diff --git a/SOURCES/sos-bz1001599-add-file-size-restriction-to-sar.patch b/SOURCES/sos-bz1001599-add-file-size-restriction-to-sar.patch deleted file mode 100644 index 3ded6ea..0000000 --- a/SOURCES/sos-bz1001599-add-file-size-restriction-to-sar.patch +++ /dev/null @@ -1,84 +0,0 @@ -commit 3aa158a35a4e7fe4d370c254c320455081e3b1cb -Author: Bryn M. Reeves -Date: Tue Oct 29 14:43:02 2013 +0000 - - Move sar data colletion to sar plug-in - - Historically the general plug-in collected the content of the - /var/log/sa directory while a separate sar plug-in handles the text - formatted summary files. - - This makes little sense and adds to the bloat in the "general" - module; move the collection to the sar plug-in itself. - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/plugins/general.py b/sos/plugins/general.py -index fbf3991..d7059e6 100644 ---- a/sos/plugins/general.py -+++ b/sos/plugins/general.py -@@ -28,7 +28,6 @@ class General(Plugin): - "/etc/sos.conf", - "/etc/sysconfig", - "/proc/stat", -- "/var/log/sa", - "/var/log/pm/suspend.log", - "/var/log/up2date", - "/etc/hostid", -diff --git a/sos/plugins/sar.py b/sos/plugins/sar.py -index c09055c..6c09323 100644 ---- a/sos/plugins/sar.py -+++ b/sos/plugins/sar.py -@@ -33,6 +33,7 @@ class Sar(Plugin,): - return True - - def setup(self): -+ self.add_copy_spec("/var/log/sa") - dirList = os.listdir(self.sa_path) - # find all the sa file that don't have an existing sar file - for fname in dirList: -commit d51a2b5e3c07ddc986c41e1494dabc852d224873 -Author: Bryn M. Reeves -Date: Tue Oct 29 14:53:53 2013 +0000 - - Limit default sar data collection - - By default the general module will scoop up all files under the - /var/log/sa directory. With some configurations this path could - contain many GB of data. - - Use add_copy_spec_limit() by default for sar data and add a new - option sar.all_sar=False to allow the user to override this. - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/plugins/sar.py b/sos/plugins/sar.py -index 6c09323..4f89b53 100644 ---- a/sos/plugins/sar.py -+++ b/sos/plugins/sar.py -@@ -23,6 +23,10 @@ class Sar(Plugin,): - - packages = ('sysstat',) - sa_path = '/var/log/sa' -+ option_list = [("all_sar", "gather all system activity records", "", False)] -+ -+ # size-limit SAR data collected by default (MB) -+ sa_size = 20 - - def check_enabled(self): - # check to see if we are force-enabled with no sar installation -@@ -33,7 +37,13 @@ class Sar(Plugin,): - return True - - def setup(self): -- self.add_copy_spec("/var/log/sa") -+ if self.get_option("all_sar"): -+ self.sa_size = 0 -+ -+ self.add_copy_spec_limit("/var/log/sa/sar[0-9]*", -+ sizelimit = self.sa_size) -+ self.add_copy_spec_limit("/var/log/sa/sa[0-9]*", -+ sizelimit = self.sa_size) - dirList = os.listdir(self.sa_path) - # find all the sa file that don't have an existing sar file - for fname in dirList: diff --git a/SOURCES/sos-bz1001966-include-etc-yaboot-conf-in-boot.patch b/SOURCES/sos-bz1001966-include-etc-yaboot-conf-in-boot.patch deleted file mode 100644 index 59fa097..0000000 --- a/SOURCES/sos-bz1001966-include-etc-yaboot-conf-in-boot.patch +++ /dev/null @@ -1,20 +0,0 @@ -commit 04f6b8233c52cf852d6f002bc2983e7cfac7d60e -Author: Bryn M. Reeves -Date: Fri Oct 4 13:46:27 2013 +0100 - - Include /etc/yaboot.conf in boot plug-in - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/plugins/boot.py b/sos/plugins/boot.py -index 6e62eac..bf50120 100644 ---- a/sos/plugins/boot.py -+++ b/sos/plugins/boot.py -@@ -31,6 +31,7 @@ class Boot(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): - "/etc/milo.conf", - "/etc/silo.conf", - "/boot/efi/efi/redhat/elilo.conf", -+ "/etc/yaboot.conf", - "/boot/yaboot.conf" - ]) - self.add_cmd_output("ls -lanR /boot") diff --git a/SOURCES/sos-bz1002943-Do-not-exit-on-interactive-mode-read-exceptions.patch b/SOURCES/sos-bz1002943-Do-not-exit-on-interactive-mode-read-exceptions.patch deleted file mode 100644 index 4aa0c26..0000000 --- a/SOURCES/sos-bz1002943-Do-not-exit-on-interactive-mode-read-exceptions.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 4e5f11cc49d28bd678b1ec0c9c3a8df3b9ac4380 Mon Sep 17 00:00:00 2001 -From: "Bryn M. Reeves" -Date: Thu, 3 Oct 2013 17:58:07 +0100 -Subject: [PATCH 2/2] Do not exit on interactive mode read exceptions - -Currently the default policy object will exit without logging any -errors if an exception (e.g. EOF while reading line) is caught -during reads for interactive mode prompts. - -Instead re-set the report name to a sane value (localname) and -attempt to continue. - -Signed-off-by: Bryn M. Reeves ---- - sos/policies/__init__.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/sos/policies/__init__.py b/sos/policies/__init__.py -index 8eff993..752d480 100644 ---- a/sos/policies/__init__.py -+++ b/sos/policies/__init__.py -@@ -455,7 +455,7 @@ class LinuxPolicy(Policy): - self._print() - except: - self._print() -- sys.exit(0) -+ self.report_name = localname - - if len(self.report_name) == 0: - self.report_name = localname --- -1.7.11.7 - diff --git a/SOURCES/sos-bz1002943-No-TTY-should-not-imply-batch-mode.patch b/SOURCES/sos-bz1002943-No-TTY-should-not-imply-batch-mode.patch deleted file mode 100644 index a0a2879..0000000 --- a/SOURCES/sos-bz1002943-No-TTY-should-not-imply-batch-mode.patch +++ /dev/null @@ -1,54 +0,0 @@ -From d975e802c6513463cc52efa0cfdfaa2d2de84adf Mon Sep 17 00:00:00 2001 -From: "Bryn M. Reeves" -Date: Thu, 3 Oct 2013 17:57:42 +0100 -Subject: [PATCH 1/2] No TTY should not imply batch mode - -Commit 6ea48cbb introduced an isatty() check on stdin and -automatically sets batch mode if we're not attached to a TTY. - -Although the logic of this seems simple enough the combination of -this and commit 4b46e04 breaks valid uses that have worked since -sos-1.x, e.g.: - -Traceback (most recent call last): - File "/usr/sbin/sosreport", line 23, in - main(sys.argv[1:]) - File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 1171, in main - sos.execute() - File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 1133, in execute - self._setup_logging() - File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 630, in _setup_logging - self.opts.batch = True - File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 324, in batch - self._check_options_initialized() - File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 229, in _check_options_initialized - + "from command line") -ValueError: SoSOptions object already initialized from command line - -Given the actual semantics of --batch (do not prompt for or read -user input from stdin) there is no need to enable it if stdin is -a pipe or other non-TTY file descriptor. - -Signed-off-by: Bryn M. Reeves ---- - sos/sosreport.py | 4 ---- - 1 file changed, 4 deletions(-) - -diff --git a/sos/sosreport.py b/sos/sosreport.py -index 908cbed..88c6730 100644 ---- a/sos/sosreport.py -+++ b/sos/sosreport.py -@@ -625,10 +625,6 @@ class SoSReport(object): - pass - - def _setup_logging(self): -- -- if not sys.stdin.isatty(): -- self.opts.batch = True -- - # main soslog - self.soslog = logging.getLogger('sos') - self.soslog.setLevel(logging.DEBUG) --- -1.7.11.7 - diff --git a/SOURCES/sos-bz1015599-fix-dash-dash-build-regressions.patch b/SOURCES/sos-bz1015599-fix-dash-dash-build-regressions.patch deleted file mode 100644 index b7a7d45..0000000 --- a/SOURCES/sos-bz1015599-fix-dash-dash-build-regressions.patch +++ /dev/null @@ -1,98 +0,0 @@ -diff -up sos-3.0/sos/plugins/__init__.py.orig sos-3.0/sos/plugins/__init__.py -diff -up sos-3.0/sos/policies/__init__.py.orig sos-3.0/sos/policies/__init__.py ---- sos-3.0/sos/policies/__init__.py.orig 2013-11-14 15:24:08.058501213 +0000 -+++ sos-3.0/sos/policies/__init__.py 2013-11-14 15:24:37.410610397 +0000 -@@ -252,26 +252,32 @@ No changes will be made to system config - to use""" - return "md5" - -- def display_results(self, final_filename=None): -+ def display_results(self, final_filename=None, build=False): - - # make sure a report exists - if not final_filename: - return False - -- # store checksum into file -- fp = open(final_filename + "." + get_hash_name(), "w") -- checksum = self._create_checksum(final_filename) -- if checksum: -- fp.write(checksum + "\n") -- fp.close() -- - self._print() -- self._print(_("Your sosreport has been generated and saved in:\n %s") % final_filename) -+ -+ if not build: -+ # store checksum into file -+ fp = open(final_filename + "." + get_hash_name(), "w") -+ checksum = self._create_checksum(final_filename) -+ if checksum: -+ fp.write(checksum + "\n") -+ fp.close() -+ -+ self._print(_("Your sosreport has been generated and saved in:\n %s") % final_filename) -+ else: -+ checksum = None -+ self._print(_("sosreport build tree is located at : %s" % final_filename)) -+ - self._print() - if checksum: - self._print(_("The checksum is: ") + checksum) - self._print() -- self._print(_("Please send this file to your support representative.")) -+ self._print(_("Please send this file to your support representative.")) - self._print() - - def upload_results(self, final_filename): -diff -up sos-3.0/sos/sosreport.py.orig sos-3.0/sos/sosreport.py ---- sos-3.0/sos/sosreport.py.orig 2013-11-14 15:23:59.718470188 +0000 -+++ sos-3.0/sos/sosreport.py 2013-11-14 15:26:54.935121843 +0000 -@@ -204,6 +204,7 @@ class SoSOptions(object): - _usealloptions = False - _upload = False - _batch = False -+ _build = False - _verbosity = 0 - _quiet = False - _debug = False -@@ -1111,11 +1112,12 @@ class SoSReport(object): - raise - - def final_work(self): -- -+ # this must come before archive creation to ensure that log -+ # files are closed and cleaned up at exit. -+ self._finish_logging() - # package up the results for the support organization - if not self.opts.build: -- self.ui_log.info(_("Creating compressed archive...")) -- -+ print _("Creating compressed archive...") - # compression could fail for a number of reasons - try: - final_filename = self.archive.finalize(self.opts.compression_type) -@@ -1125,17 +1127,14 @@ class SoSReport(object): - else: - return False - -- # automated submission will go here -- if not self.opts.upload: -- self.policy.display_results(final_filename) -- else: -- self.policy.upload_results(final_filename) -- - else: -- self.ui_log.info(_("\n sosreport build tree is located at : %s\n" -- % self.archive.get_archive_path())) -+ final_filename = self.archive.get_archive_path() - -- self._finish_logging() -+ # automated submission will go here -+ if not self.opts.upload: -+ self.policy.display_results(final_filename, build = self.opts.build) -+ else: -+ self.policy.upload_results(final_filename) - - self.tempfile_util.clean() - diff --git a/SOURCES/sos-bz1015599-restore-build-command-line-option.patch b/SOURCES/sos-bz1015599-restore-build-command-line-option.patch deleted file mode 100644 index 06ec542..0000000 --- a/SOURCES/sos-bz1015599-restore-build-command-line-option.patch +++ /dev/null @@ -1,187 +0,0 @@ -commit b65606177be6210f3f0501e5689cdbb107e0f2f7 -Author: Bryn M. Reeves -Date: Tue Nov 5 16:07:23 2013 +0000 - - Restore --build command line option - - Releases of sos prior to 3.0 included the '--build' option to - disable creation of a compressed archive and to leave the - temporary build tree in place. This was removed with the - reorganisation of the archive classes to support in-line - archiving. Since all supported policies are now using an archive - that derives from FileCacheArchive (commit 0178d5f) the option - can be re-introduced. - - Archive classes that do not accumulate files in a temporary - directory will return the path to the in-progress archive file. - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/archive.py b/sos/archive.py -index 4291660..28bf197 100644 ---- a/sos/archive.py -+++ b/sos/archive.py -@@ -65,6 +65,15 @@ class Archive(object): - to be included in the generated archive.""" - raise NotImplementedError - -+ def get_archive_path(self): -+ """Return a string representing the path to the temporary -+ archive. For archive classes that implement in-line handling -+ this will be the archive file itself. Archives that use a -+ directory based cache prior to packaging should return the -+ path to the temporary directory where the report content is -+ located""" -+ pass -+ - def cleanup(self): - """Clean up any temporary resources used by an Archive class.""" - pass -@@ -81,7 +90,7 @@ class FileCacheArchive(Archive): - - _tmp_dir = "" - _archive_root = "" -- _archive_path = "" -+ _archive_name = "" - - def __init__(self, name, tmpdir): - self._name = name -@@ -146,6 +155,9 @@ class FileCacheArchive(Archive): - def get_tmp_dir(self): - return self._archive_root - -+ def get_archive_path(self): -+ return self._archive_root -+ - def makedirs(self, path, mode=0700): - self._makedirs(self.dest_path(path)) - self.log.debug("created directory at %s in FileCacheArchive %s" -@@ -162,8 +174,8 @@ class FileCacheArchive(Archive): - self.log.debug("finalizing archive %s" % self._archive_root) - self._build_archive() - self.cleanup() -- self.log.debug("built archive at %s (size=%d)" % (self._archive_path, -- os.stat(self._archive_path).st_size)) -+ self.log.debug("built archive at %s (size=%d)" % (self._archive_name, -+ os.stat(self._archive_name).st_size)) - return self._compress() - - class TarFileArchive(FileCacheArchive): -@@ -174,7 +186,7 @@ class TarFileArchive(FileCacheArchive): - def __init__(self, name, tmpdir): - super(TarFileArchive, self).__init__(name, tmpdir) - self._suffix = "tar" -- self._archive_path = os.path.join(tmpdir, self.name()) -+ self._archive_name = os.path.join(tmpdir, self.name()) - - def set_tarinfo_from_stat(self, tar_info, fstat, mode=None): - tar_info.mtime = fstat.st_mtime -@@ -218,7 +230,7 @@ class TarFileArchive(FileCacheArchive): - old_pwd = os.getcwd() - old_umask = os.umask(0077) - os.chdir(self._tmp_dir) -- tar = tarfile.open(self._archive_path, mode="w") -+ tar = tarfile.open(self._archive_name, mode="w") - tar.add(os.path.split(self._name)[1], filter=self.copy_permissions_filter) - tar.close() - os.umask(old_umask) -diff --git a/sos/policies/__init__.py b/sos/policies/__init__.py -index 983842d..6de93fb 100644 ---- a/sos/policies/__init__.py -+++ b/sos/policies/__init__.py -@@ -205,12 +205,6 @@ No changes will be made to system configuration. - """ - pass - -- def package_results(self, package_name): -- """ -- This function is called prior to packaging. -- """ -- pass -- - def post_work(self): - """ - This function is called after the sosreport has been generated. -@@ -476,5 +470,3 @@ class LinuxPolicy(Policy): - - return - -- def package_results(self, archive_filename): -- self._print(_("Creating compressed archive...")) -diff --git a/sos/sosreport.py b/sos/sosreport.py -index 49e9d92..42be3ee 100644 ---- a/sos/sosreport.py -+++ b/sos/sosreport.py -@@ -327,6 +327,19 @@ class SoSOptions(object): - self._batch = value - - @property -+ def build(self): -+ if self._options != None: -+ return self._options.build -+ return self._build -+ -+ @build.setter -+ def build(self): -+ self._check_options_initialized() -+ if not isinstance(value, bool): -+ raise TypeError("SoSOptions.build expects a boolean") -+ self._build = value -+ -+ @property - def verbosity(self): - if self._options != None: - return self._options.verbosity -@@ -476,6 +489,9 @@ class SoSOptions(object): - parser.add_option("--batch", action="store_true", - dest="batch", default=False, - help="batch mode - do not prompt interactively") -+ parser.add_option("--build", action="store_true", \ -+ dest="build", default=False, \ -+ help="keep sos tree available and dont package results") - parser.add_option("-v", "--verbose", action="count", - dest="verbosity", - help="increase verbosity") -@@ -1097,24 +1113,29 @@ class SoSReport(object): - def final_work(self): - - # package up the results for the support organization -- self.policy.package_results(self.archive.name()) -+ if not self.opts.build: -+ self.ui_log.info(_("Creating compressed archive...")) - -- self._finish_logging() -+ # compression could fail for a number of reasons -+ try: -+ final_filename = self.archive.finalize(self.opts.compression_type) -+ except: -+ if self.opts.debug: -+ raise -+ else: -+ return False - -- # compression could fail for a number of reasons -- try: -- final_filename = self.archive.finalize(self.opts.compression_type) -- except: -- if self.opts.debug: -- raise -+ # automated submission will go here -+ if not self.opts.upload: -+ self.policy.display_results(final_filename) - else: -- return False -+ self.policy.upload_results(final_filename) - -- # automated submission will go here -- if not self.opts.upload: -- self.policy.display_results(final_filename) - else: -- self.policy.upload_results(final_filename) -+ self.ui_log.info(_("\n sosreport build tree is located at : %s\n" -+ % self.archive.get_archive_path())) -+ -+ self._finish_logging() - - self.tempfile_util.clean() - diff --git a/SOURCES/sos-bz1015606-remove-version-checks-in-gluster.patch b/SOURCES/sos-bz1015606-remove-version-checks-in-gluster.patch deleted file mode 100644 index 4a9a58a..0000000 --- a/SOURCES/sos-bz1015606-remove-version-checks-in-gluster.patch +++ /dev/null @@ -1,40 +0,0 @@ -commit 038609bacd8fc6a21eb50f7722f13baa5884a6bb -Author: Bryn M. Reeves -Date: Tue Oct 29 16:03:03 2013 +0000 - - Remove version checks in gluster plug-in - - Current distributions do not include the legac package versions - that the plug-in was checking for. - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/plugins/gluster.py b/sos/plugins/gluster.py -index a535d79..7c54fa0 100644 ---- a/sos/plugins/gluster.py -+++ b/sos/plugins/gluster.py -@@ -80,22 +80,8 @@ class Gluster(Plugin, RedHatPlugin): - def setup(self): - self.add_cmd_output("gluster peer status") - -- # check package version handling rename of glusterfs-core -> glusterfs -- pkg = self.policy().pkg_by_name("glusterfs-core"); -- if not pkg: -- pkg = self.policy().pkg_by_name("glusterfs"); -- # need to handle "no package" case for users who enable with -e/-o -- if not pkg: -- return -- -- gluster_major = int((pkg["version"])[:1]) -- gluster_minor = int((pkg["version"])[2:3]) -- if (gluster_major == 3) and (gluster_minor <= 2): -- self.add_copy_spec("/etc/glusterd/") -- self.add_forbidden_path("/etc/glusterd/geo-replication/secret.pem") -- else: -- self.add_copy_spec("/var/lib/glusterd/") -- self.add_forbidden_path("/var/lib/glusterd/geo-replication/secret.pem") -+ self.add_copy_spec("/var/lib/glusterd/") -+ self.add_forbidden_path("/var/lib/glusterd/geo-replication/secret.pem") - - # collect unified file and object storage configuration - self.add_copy_spec("/etc/swift/") diff --git a/SOURCES/sos-bz1019235-remove-useless-os-path-check-for-brctl.patch b/SOURCES/sos-bz1019235-remove-useless-os-path-check-for-brctl.patch deleted file mode 100644 index eb08c01..0000000 --- a/SOURCES/sos-bz1019235-remove-useless-os-path-check-for-brctl.patch +++ /dev/null @@ -1,37 +0,0 @@ -commit 923a68777927eaaee3c5fa289053ac3a87d353f9 -Author: Bryn M. Reeves -Date: Tue Oct 15 17:00:09 2013 +0100 - - Remove useless os.path.exists check for brctl executable - - The networking module previously checked that its hard-coded path - for the brctl command existed before collecting output. This was - missed in the conversion to using policy defined PATH search for - external commands in commit e0d132e. - - Similar problems were fixed in commits 8b10cb0, 374da99, 8883155. - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/plugins/networking.py b/sos/plugins/networking.py -index 90e1b58..9724a4f 100644 ---- a/sos/plugins/networking.py -+++ b/sos/plugins/networking.py -@@ -111,12 +111,11 @@ class Networking(Plugin): - self.add_cmd_output("ethtool -c "+eth) - self.add_cmd_output("ethtool -g "+eth) - -- if os.path.exists("brctl"): -- brctl_file=self.add_cmd_output("brctl show") -- brctl_out=self.call_ext_prog("brctl show") -- if brctl_out: -- for br_name in self.get_bridge_name(brctl_out): -- self.add_cmd_output("brctl showstp "+br_name) -+ brctl_file=self.add_cmd_output("brctl show") -+ brctl_out=self.call_ext_prog("brctl show") -+ if brctl_out: -+ for br_name in self.get_bridge_name(brctl_out): -+ self.add_cmd_output("brctl showstp "+br_name) - - if self.get_option("traceroute"): - self.add_cmd_output("/bin/traceroute -n %s" % self.trace_host) diff --git a/SOURCES/sos-bz1019338-remove-pipe-communicate-newline-workaround.patch b/SOURCES/sos-bz1019338-remove-pipe-communicate-newline-workaround.patch deleted file mode 100644 index fa76a4e..0000000 --- a/SOURCES/sos-bz1019338-remove-pipe-communicate-newline-workaround.patch +++ /dev/null @@ -1,29 +0,0 @@ -commit 25bd83cda4ef1a5c89d95282c9f8fdc6cb9181d5 -Author: Bryn M. Reeves -Date: Tue Oct 15 17:26:12 2013 +0100 - - Remove obsolete workaround for newline added by pipe.communicate() - - Older versions of the python runtime would add a newline to output - obtained via pipe.communicate(). Current versions do not leading - to output being stored in reports without a trailing newline - character. - - Remove the workaround to ensure that stored content matches that - obtained via simple shell redirection ("/some/command > file"). - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/utilities.py b/sos/utilities.py -index 4279b12..fcc78c5 100644 ---- a/sos/utilities.py -+++ b/sos/utilities.py -@@ -161,8 +161,6 @@ def sos_get_command_output(command, timeout=300): - stdout=PIPE, stderr=STDOUT, - bufsize=-1, env = cmd_env) - stdout, stderr = p.communicate() -- # hack to delete trailing '\n' added by p.communicate() -- if stdout[-1:] == '\n': stdout = stdout[:-1] - return (p.returncode, stdout, 0) - else: - return (127, "", 0) diff --git a/SOURCES/sos-bz1019356-fix-alloptions.patch b/SOURCES/sos-bz1019356-fix-alloptions.patch deleted file mode 100644 index 1f4b963..0000000 --- a/SOURCES/sos-bz1019356-fix-alloptions.patch +++ /dev/null @@ -1,35 +0,0 @@ -commit d1bedc1ef48f6abe6f582336e275468a1e3634b9 -Author: Bryn M. Reeves -Date: Wed Oct 30 12:22:03 2013 +0000 - - Fix --alloptions - - During the re-organisation of sosreport.py the code to apply all - boolean options to plug-ins was factored out into its own - function, _set_all_options() however this was never called from - the main execute() method. Fix this to allow the option to work - as previously. - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/sosreport.py b/sos/sosreport.py -index 3fb60c7..1b13826 100644 ---- a/sos/sosreport.py -+++ b/sos/sosreport.py -@@ -290,7 +290,7 @@ class SoSOptions(object): - @property - def usealloptions(self): - if self._options != None: -- return _options.usealloptions -+ return self._options.usealloptions - return self._usealloptions - - @usealloptions.setter -@@ -1136,6 +1136,7 @@ class SoSReport(object): - self.policy.set_commons(self.get_commons()) - self.print_header() - self.load_plugins() -+ self._set_all_options() - self._set_tunables() - self._check_for_unknown_plugins() - self._set_plugin_options() diff --git a/SOURCES/sos-bz1019516-fix-config-file-regression.patch b/SOURCES/sos-bz1019516-fix-config-file-regression.patch deleted file mode 100644 index 1952406..0000000 --- a/SOURCES/sos-bz1019516-fix-config-file-regression.patch +++ /dev/null @@ -1,51 +0,0 @@ -commit ef485ea1d610a0679f86b39e39e7955f00b4351d -Author: Bryn M. Reeves -Date: Wed Oct 30 15:05:56 2013 +0000 - - Fix config file regression - - Changes in the organisation of sos in commit 6ea48cb broke the - reading of custom configuration files (either the default - /etc/sos.conf or one specified on the command line using - --config-file): - - Traceback (most recent call last): - File "/usr/sbin/sosreport", line 23, in - main(sys.argv[1:]) - File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 1167, in main - sos.execute() - File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 1133, in execute - self._set_tunables() - File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 798, in _set_tunables - if not opt.split('.')[0] in self.disabled: - AttributeError: 'SoSReport' object has no attribute 'disabled' - - The code attempts to reference the obsolete 'disabled' list of - plug-ins (rather than calling self._get_disabled_plugins()) and - failed to initialise the plugopts list to an empty deque. - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/sosreport.py b/sos/sosreport.py -index 1b13826..afe61f2 100644 ---- a/sos/sosreport.py -+++ b/sos/sosreport.py -@@ -465,7 +465,8 @@ class SoSOptions(object): - help="enable these plugins only", default = deque()) - parser.add_option("-k", "--plugin-option", action="append", - dest="plugopts", type="string", -- help="plugin options in plugname.option=value format (see -l)") -+ help="plugin options in plugname.option=value format (see -l)", -+ default = deque()) - parser.add_option("-a", "--alloptions", action="store_true", - dest="usealloptions", default=False, - help="enable all options for loaded plugins") -@@ -801,7 +802,7 @@ class SoSReport(object): - self.opts.plugopts = deque() - - for opt, val in self.config.items("tunables"): -- if not opt.split('.')[0] in self.disabled: -+ if not opt.split('.')[0] in self._get_disabled_plugins(): - self.opts.plugopts.append(opt + "=" + val) - if self.opts.plugopts: - opts = {} diff --git a/SOURCES/sos-bz1019517-check-for-usable-temporary-directory.patch b/SOURCES/sos-bz1019517-check-for-usable-temporary-directory.patch deleted file mode 100644 index e91e849..0000000 --- a/SOURCES/sos-bz1019517-check-for-usable-temporary-directory.patch +++ /dev/null @@ -1,29 +0,0 @@ -commit 0c9eef9d1270b9197a609ac46fdd5837c04a90dd -Author: Bryn M. Reeves -Date: Wed Oct 30 12:02:51 2013 +0000 - - Check for usable temporary directory - - A user may override the sos temporary directory via --tmp-dir to - a non-existent or unwritable location. Check for this before - initialising temporary files and exit with an error message. - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/sosreport.py b/sos/sosreport.py -index 88c6730..3fb60c7 100644 ---- a/sos/sosreport.py -+++ b/sos/sosreport.py -@@ -534,6 +534,12 @@ class SoSReport(object): - self.policy = sos.policies.load() - self._is_root = self.policy.is_root() - self.tmpdir = self.policy.get_tmp_dir(self.opts.tmp_dir) -+ if not os.path.isdir(self.tmpdir) \ -+ or not os.access(self.tmpdir, os.W_OK): -+ # write directly to stderr as logging is not initialised yet -+ sys.stderr.write("temporary directory %s " % self.tmpdir \ -+ + "does not exist or is not writable\n") -+ self._exit(1) - self.tempfile_util = TempFileUtil(self.tmpdir) - self._set_directories() - diff --git a/SOURCES/sos-bz1019863-rpm-restricted-verify.patch b/SOURCES/sos-bz1019863-rpm-restricted-verify.patch deleted file mode 100644 index daa343c..0000000 --- a/SOURCES/sos-bz1019863-rpm-restricted-verify.patch +++ /dev/null @@ -1,98 +0,0 @@ -commit 1b3fc3f029ed3ab1dcbfeaaaa8fe1616dbc3744f -Author: Bryn M. Reeves -Date: Tue Jul 30 19:30:13 2013 +0100 - - Add restricted rpm verify - - Add a default call to rpm -V/--verify for a targeted subset of - packages. This greatly reduces the time taken relative to rpm -Va - while still capturing important diagnostic information. - - In future this capability could be made a feature of the - PackageManager class interface and available to all ports/modules. - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/plugins/rpm.py b/sos/plugins/rpm.py -index 9d44fde..a315018 100644 ---- a/sos/plugins/rpm.py -+++ b/sos/plugins/rpm.py -@@ -23,6 +23,8 @@ class Rpm(Plugin, RedHatPlugin): - option_list = [("rpmq", "queries for package information via rpm -q", "fast", True), - ("rpmva", "runs a verify on all packages", "slow", False)] - -+ verify_list = [ 'kernel', 'glibc', 'pam_.*' ] -+ - def setup(self): - self.add_copy_spec("/var/log/rpmpkgs") - -@@ -36,3 +38,9 @@ class Rpm(Plugin, RedHatPlugin): - - if self.get_option("rpmva"): - self.add_cmd_output("rpm -Va", root_symlink = "rpm-Va", timeout = 3600) -+ else: -+ pkgs_by_regex = self.policy().package_manager.all_pkgs_by_name_regex -+ verify_list = map(pkgs_by_regex, self.verify_list) -+ for pkg_list in verify_list: -+ for pkg in pkg_list: -+ self.add_cmd_output("rpm -V %s" % pkg) -commit 1a73d5932a3f8153a9d1440c931823720e7e6245 -Author: Bryn M. Reeves -Date: Tue Aug 13 21:54:27 2013 +0100 - - Add new patterns to the RPM plug-in verify list - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/plugins/rpm.py b/sos/plugins/rpm.py -index a315018..71f36a0 100644 ---- a/sos/plugins/rpm.py -+++ b/sos/plugins/rpm.py -@@ -23,7 +23,13 @@ class Rpm(Plugin, RedHatPlugin): - option_list = [("rpmq", "queries for package information via rpm -q", "fast", True), - ("rpmva", "runs a verify on all packages", "slow", False)] - -- verify_list = [ 'kernel', 'glibc', 'pam_.*' ] -+ verify_list = [ -+ 'kernel', 'glibc', 'initscripts', -+ 'pam_.*', -+ 'java.*', 'perl.*', -+ 'rpm', 'yum', -+ 'spacewalk.*', -+ ] - - def setup(self): - self.add_copy_spec("/var/log/rpmpkgs") -commit ffcde57daa6f6cbbfd9cb588ab64eb485d07d9ca -Author: Bryn M. Reeves -Date: Wed Oct 16 19:12:58 2013 +0100 - - Verify fewer packages in rpm plug-in - - The current default set of packages to verify includes debuginfo - and devel subpackages. Filter these out to reduce the time spent - running rpm -V. - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/plugins/rpm.py b/sos/plugins/rpm.py -index 71f36a0..55c8019 100644 ---- a/sos/plugins/rpm.py -+++ b/sos/plugins/rpm.py -@@ -24,7 +24,7 @@ class Rpm(Plugin, RedHatPlugin): - ("rpmva", "runs a verify on all packages", "slow", False)] - - verify_list = [ -- 'kernel', 'glibc', 'initscripts', -+ 'kernel$', 'glibc', 'initscripts', - 'pam_.*', - 'java.*', 'perl.*', - 'rpm', 'yum', -@@ -49,4 +49,7 @@ class Rpm(Plugin, RedHatPlugin): - verify_list = map(pkgs_by_regex, self.verify_list) - for pkg_list in verify_list: - for pkg in pkg_list: -+ if 'debuginfo' in pkg \ -+ or pkg.endswith('-debuginfo-common'): -+ continue - self.add_cmd_output("rpm -V %s" % pkg) diff --git a/SOURCES/sos-bz1025236-add-powerpc-plugin.patch b/SOURCES/sos-bz1025236-add-powerpc-plugin.patch deleted file mode 100644 index 8b68bc6..0000000 --- a/SOURCES/sos-bz1025236-add-powerpc-plugin.patch +++ /dev/null @@ -1,97 +0,0 @@ -commit dac86b921fafecc81fbd492af177d9260cddfe20 -Author: Bryn M. Reeves -Date: Wed Oct 30 13:57:22 2013 +0000 - - This patch defines a new PowerPC Plugin to collect generic Power logs. - Based on further platform checks,IBM Power System specific logs and - commands will be collected. This would help IBM Power system users to - collect system data in one shot by running sosreport. - - Signed-off-by: Bharani C.V. - Signed-off-by: Vasant Hegde - Signed-off-by: Bryn M. Reeves - - --- - sos/plugins/powerpc.py | 73 ++++++++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 73 insertions(+) - create mode 100644 sos/plugins/powerpc.py - -diff --git a/sos/plugins/powerpc.py b/sos/plugins/powerpc.py -new file mode 100644 -index 0000000..974baa1 ---- /dev/null -+++ b/sos/plugins/powerpc.py -@@ -0,0 +1,73 @@ -+### 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., 675 Mass Ave, Cambridge, MA 02139, USA. -+ -+## This plugin enables collection of logs for Power systems and more -+## specific logs for Pseries, PowerNV platforms. -+ -+import os -+from sos.plugins import Plugin, RedHatPlugin, UbuntuPlugin, DebianPlugin -+ -+class PowerPC(Plugin, RedHatPlugin, UbuntuPlugin, DebianPlugin): -+ """IBM Power System related information -+ """ -+ -+ plugin_name = 'powerpc' -+ -+ def check_enabled(self): -+ return (self.policy().get_arch() == "ppc64") -+ -+ def setup(self): -+ try: -+ with open('/proc/cpuinfo', 'r') as fp: -+ contents = fp.read() -+ ispSeries = "pSeries" in contents -+ isPowerNV = "PowerNV" in contents -+ except: -+ ispSeries = False -+ isPowerNV = False -+ -+ if ispSeries or isPowerNV: -+ self.add_copy_spec("/proc/device-tree/") -+ self.add_copy_spec("/proc/loadavg") -+ self.add_copy_spec("/proc/locks") -+ self.add_copy_spec("/proc/misc") -+ self.add_copy_spec("/proc/swaps") -+ self.add_copy_spec("/proc/version") -+ self.add_copy_spec("/dev/nvram") -+ self.add_copy_spec("/var/log/platform") -+ self.add_cmd_output("ppc64_cpu --smt") -+ self.add_cmd_output("ppc64_cpu --cores-present") -+ self.add_cmd_output("ppc64_cpu --cores-on") -+ self.add_cmd_output("ppc64_cpu --run-mode") -+ self.add_cmd_output("ppc64_cpu --frequency") -+ self.add_cmd_output("ppc64_cpu --dscr") -+ -+ if ispSeries: -+ self.add_copy_spec("/proc/ppc64/lparcfg") -+ self.add_copy_spec("/proc/ppc64/eeh") -+ self.add_copy_spec("/proc/ppc64/systemcfg") -+ self.add_cmd_output("lscfg -vp") -+ self.add_cmd_output("lsmcode -A") -+ self.add_cmd_output("lsvpd --debug") -+ self.add_cmd_output("lsvio -des") -+ self.add_cmd_output("servicelog --dump") -+ self.add_cmd_output("servicelog_notify --list") -+ self.add_cmd_output("usysattn") -+ self.add_cmd_output("usysident") -+ self.add_cmd_output("serv_config -l") -+ self.add_cmd_output("bootlist -m both -r") -+ self.add_cmd_output("lparstat -i") -+ -+ if isPowerNV: -+ self.add_copy_spec("/proc/ppc64/") diff --git a/SOURCES/sos-bz1026829-collect-var-log-squid.patch b/SOURCES/sos-bz1026829-collect-var-log-squid.patch deleted file mode 100644 index 74c155b..0000000 --- a/SOURCES/sos-bz1026829-collect-var-log-squid.patch +++ /dev/null @@ -1,20 +0,0 @@ -commit 8d45d18afb87dbe7b1d864fabd36c58fad905f82 -Author: Bryn M. Reeves -Date: Mon Aug 12 20:31:51 2013 +0100 - - Collect /var/log/squid in squid plug-in - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/plugins/squid.py b/sos/plugins/squid.py -index 254a1be..4f6310f 100644 ---- a/sos/plugins/squid.py -+++ b/sos/plugins/squid.py -@@ -25,5 +25,6 @@ class Squid(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): - packages = ('squid',) - - def setup(self): -- self.add_copy_spec_limit("/etc/squid/squid.conf", -+ self.add_copy_spec("/etc/squid/squid.conf") -+ self.add_copy_spec_limit("/var/log/squid", - sizelimit=self.get_option('logsize')) diff --git a/SOURCES/sos-bz1026869-collect-proc-self-mountstats.patch b/SOURCES/sos-bz1026869-collect-proc-self-mountstats.patch deleted file mode 100644 index 2098e2c..0000000 --- a/SOURCES/sos-bz1026869-collect-proc-self-mountstats.patch +++ /dev/null @@ -1,21 +0,0 @@ -commit 78909be8385a74e807b705821296a94cb09cb8ca -Author: Bryn M. Reeves -Date: Mon Aug 12 18:33:49 2013 +0100 - - Collect /proc/self/mountstats and /proc/self/mountinfo - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/plugins/filesys.py b/sos/plugins/filesys.py -index 0ca3166..b8d6bab 100644 ---- a/sos/plugins/filesys.py -+++ b/sos/plugins/filesys.py -@@ -31,6 +31,8 @@ class Filesys(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): - "/proc/filesystems", - "/etc/fstab", - "/proc/self/mounts", -+ "/proc/self/mountinfo", -+ "/proc/self/mountstats", - "/proc/mounts" - ]) - self.add_cmd_output("mount -l", root_symlink = "mount") diff --git a/SOURCES/sos-bz1026906-nis-add-domainname-output.patch b/SOURCES/sos-bz1026906-nis-add-domainname-output.patch deleted file mode 100644 index 82c5301..0000000 --- a/SOURCES/sos-bz1026906-nis-add-domainname-output.patch +++ /dev/null @@ -1,17 +0,0 @@ -commit 1aa497258ebb8c85eed9d38ba19173c054b77043 -Author: Bryn M. Reeves -Date: Tue Nov 5 16:16:33 2013 +0000 - - Add domainname output to the NIS plug-in - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/plugins/nis.py b/sos/plugins/nis.py -index 5439b8f..baa71e8 100644 ---- a/sos/plugins/nis.py -+++ b/sos/plugins/nis.py -@@ -29,3 +29,4 @@ class Nis(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): - def setup(self): - self.add_copy_spec("/etc/yp*.conf") - self.add_copy_spec("/var/yp/*") -+ self.add_cmd_output("domainname") diff --git a/SOURCES/sos-bz1026959-collect-saved-vmcore-dmesg.patch b/SOURCES/sos-bz1026959-collect-saved-vmcore-dmesg.patch deleted file mode 100644 index 05c82cb..0000000 --- a/SOURCES/sos-bz1026959-collect-saved-vmcore-dmesg.patch +++ /dev/null @@ -1,43 +0,0 @@ -commit 557a5397304327abe2039229a2bd23bb489ea879 -Author: Bryn M. Reeves -Date: Tue Aug 13 18:46:47 2013 +0100 - - Collect saved vmcore-dmesg.txt files in kdump plug-in - - Recent versions of kexec-utils automatically generate a text - file containing the dmesg buffer of the captured vmcore. - - This is useful for first-fault debugging and should be included. - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/plugins/kdump.py b/sos/plugins/kdump.py -index 73e5d5e..81ce574 100644 ---- a/sos/plugins/kdump.py -+++ b/sos/plugins/kdump.py -@@ -23,7 +23,7 @@ class KDump(Plugin): - def setup(self): - self.add_copy_specs([ - "/proc/cmdline" -- ]) -+ ]) - - class RedHatKDump(KDump, RedHatPlugin): - """Kdump related information for Red Hat distributions -@@ -35,7 +35,9 @@ class RedHatKDump(KDump, RedHatPlugin): - def setup(self): - self.add_copy_specs([ - "/etc/kdump.conf", -- "/etc/udev/rules.d/*kexec.rules"]) -+ "/etc/udev/rules.d/*kexec.rules", -+ "/var/crash/*/vmcore-dmesg.txt" -+ ]) - - class DebianKDump(KDump, DebianPlugin, UbuntuPlugin): - """Kdump related information for Debian distributions -@@ -47,4 +49,4 @@ class DebianKDump(KDump, DebianPlugin, UbuntuPlugin): - def setup(self): - self.add_copy_specs([ - "/etc/default/kdump-tools" -- ]) -+ ]) diff --git a/SOURCES/sos-bz1026962-ctdb-fix-redhatplugin-tagging-use.patch b/SOURCES/sos-bz1026962-ctdb-fix-redhatplugin-tagging-use.patch new file mode 100644 index 0000000..9164028 --- /dev/null +++ b/SOURCES/sos-bz1026962-ctdb-fix-redhatplugin-tagging-use.patch @@ -0,0 +1,42 @@ +From 12ec2a4643c844a7a9bf46f3d9557e38f0ae7403 Mon Sep 17 00:00:00 2001 +From: "Bryn M. Reeves" +Date: Mon, 19 Jan 2015 18:47:03 +0000 +Subject: [PATCH] [ctdb] fix RedHatPlugin tagging use + +The generic Ctdb class is tagged with RedHatPlugin. This causes +the RedHatCtdb to not execute (since only the first matching class +is instantiated). + +Remove the RedHatPlugin tag from the Ctdb class and fix the +former's call to Ctdb.setup(). + +Signed-off-by: Bryn M. Reeves +--- + sos/plugins/ctdb.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/sos/plugins/ctdb.py b/sos/plugins/ctdb.py +index 443181c..e1bd78e 100644 +--- a/sos/plugins/ctdb.py ++++ b/sos/plugins/ctdb.py +@@ -16,7 +16,7 @@ + from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin + + +-class Ctdb(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): ++class Ctdb(Plugin, DebianPlugin, UbuntuPlugin): + """Samba Clustered TDB + """ + packages = ('ctdb',) +@@ -45,7 +45,7 @@ class Ctdb(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): + + class RedHatCtdb(Ctdb, RedHatPlugin): + def setup(self): +- super(RedHatCtdb, self).super() ++ super(RedHatCtdb, self).setup() + self.add_copy_spec("/etc/sysconfig/ctdb") + + # vim: et ts=4 sw=4 +-- +1.9.3 + diff --git a/SOURCES/sos-bz1026962-plugin-limit-names-to-pc_name_max.patch b/SOURCES/sos-bz1026962-plugin-limit-names-to-pc_name_max.patch new file mode 100644 index 0000000..fca14ce --- /dev/null +++ b/SOURCES/sos-bz1026962-plugin-limit-names-to-pc_name_max.patch @@ -0,0 +1,118 @@ +From 48a99c95078bab306cb56bb1a05420d88bf15a64 Mon Sep 17 00:00:00 2001 +From: "Bryn M. Reeves" +Date: Mon, 20 Oct 2014 16:12:01 +0100 +Subject: [PATCH] [plugin] limit names to PC_NAME_MAX + +Commit 8bf7b0c removed the truncation of mangled command names to +64 chars. This causes problems for some plugins (e.g. Issue #415) +that generate long enough command lines to hit system name length +limits. + +Instead of arbitrarily limiting to 64 characters limit to the +lesser of the archive format limit (if present) or the value of +PC_NAME_MAX for any intermediate FileCacheArchive path. + +Signed-off-by: Bryn M. Reeves +--- + sos/archive.py | 18 ++++++++++++++++++ + sos/plugins/__init__.py | 7 ++++--- + tests/plugin_tests.py | 12 ++++++++---- + 3 files changed, 30 insertions(+), 7 deletions(-) + +diff --git a/sos/archive.py b/sos/archive.py +index 2e42bbd..6063625 100644 +--- a/sos/archive.py ++++ b/sos/archive.py +@@ -98,6 +98,12 @@ class Archive(object): + to be included in the generated archive.""" + raise NotImplementedError + ++ def name_max(self): ++ """Return the maximum file name length this archive can support. ++ This is the lesser of the name length limit of the archive ++ format and any temporary file system based cache.""" ++ raise NotImplementedError ++ + def get_archive_path(self): + """Return a string representing the path to the temporary + archive. For archive classes that implement in-line handling +@@ -206,6 +212,13 @@ class FileCacheArchive(Archive): + def _makedirs(self, path, mode=0o700): + os.makedirs(path, mode) + ++ def name_max(self): ++ if 'PC_NAME_MAX' in os.pathconf_names: ++ pc_name_max = os.pathconf_names['PC_NAME_MAX'] ++ return os.pathconf(self._archive_root, pc_name_max) ++ else: ++ return 255 ++ + def get_tmp_dir(self): + return self._archive_root + +@@ -355,6 +368,11 @@ class TarFileArchive(FileCacheArchive): + def name(self): + return "%s.%s" % (self._name, self._suffix) + ++ def name_max(self): ++ # GNU Tar format supports unlimited file name length. Just return ++ # the limit of the underlying FileCacheArchive. ++ return super(TarFileArchive, self).name_max() ++ + def _build_archive(self): + # python2.6 TarFile lacks the filter parameter + if not six.PY3 and sys.version_info[1] < 7: +diff --git a/sos/plugins/__init__.py b/sos/plugins/__init__.py +index 3e39100..b289144 100644 +--- a/sos/plugins/__init__.py ++++ b/sos/plugins/__init__.py +@@ -42,11 +42,11 @@ def regex_findall(regex, fname): + return [] + + +-def _mangle_command(command): +- # FIXME: this can be improved ++def _mangle_command(command, name_max): + mangledname = re.sub(r"^/(usr/|)(bin|sbin)/", "", command) + mangledname = re.sub(r"[^\w\-\.\/]+", "_", mangledname) + mangledname = re.sub(r"/", ".", mangledname).strip(" ._-") ++ mangledname = mangledname[0:name_max] + return mangledname + + +@@ -518,7 +518,8 @@ class Plugin(object): + return grep(regexp, *fnames) + + def _mangle_command(self, exe): +- return _mangle_command(exe) ++ name_max = self.archive.name_max() ++ return _mangle_command(exe, name_max) + + def _make_command_filename(self, exe): + """The internal function to build up a filename based on a command.""" +diff --git a/tests/plugin_tests.py b/tests/plugin_tests.py +index 817e4f2..f73a003 100644 +--- a/tests/plugin_tests.py ++++ b/tests/plugin_tests.py +@@ -115,10 +115,14 @@ class PluginToolTests(unittest.TestCase): + self.assertEquals(matches, []) + + def test_mangle_command(self): +- self.assertEquals("foo", _mangle_command("/usr/bin/foo")) +- self.assertEquals("foo_-x", _mangle_command("/usr/bin/foo -x")) +- self.assertEquals("foo_--verbose", _mangle_command("/usr/bin/foo --verbose")) +- self.assertEquals("foo_.path.to.stuff", _mangle_command("/usr/bin/foo /path/to/stuff")) ++ name_max = 255 ++ self.assertEquals("foo", _mangle_command("/usr/bin/foo", name_max)) ++ self.assertEquals("foo_-x", _mangle_command("/usr/bin/foo -x", name_max)) ++ self.assertEquals("foo_--verbose", _mangle_command("/usr/bin/foo --verbose", name_max)) ++ self.assertEquals("foo_.path.to.stuff", _mangle_command("/usr/bin/foo /path/to/stuff", name_max)) ++ longcmd ="foo is " + "a" * 256 + " long_command" ++ expected = longcmd[0:name_max].replace(' ', '_') ++ self.assertEquals(expected, _mangle_command(longcmd, name_max)) + + + class PluginTests(unittest.TestCase): +-- +1.9.3 + diff --git a/SOURCES/sos-bz1026962-sosreport-fix-silent-exception-handling.patch b/SOURCES/sos-bz1026962-sosreport-fix-silent-exception-handling.patch new file mode 100644 index 0000000..b3daec4 --- /dev/null +++ b/SOURCES/sos-bz1026962-sosreport-fix-silent-exception-handling.patch @@ -0,0 +1,52 @@ +diff -up sos-3.2/sos/sosreport.py.orig sos-3.2/sos/sosreport.py +--- sos-3.2/sos/sosreport.py.orig 2015-01-20 14:39:34.149596845 +0000 ++++ sos-3.2/sos/sosreport.py 2015-01-20 14:39:56.132654519 +0000 +@@ -1131,11 +1131,13 @@ class SoSReport(object): + % e.strerror) + self.ui_log.error("") + self._exit(1) ++ if self.raise_plugins: ++ raise ++ self._log_plugin_exception(plugname, "setup") + except: + if self.raise_plugins: + raise +- else: +- self._log_plugin_exception(plugname, "setup") ++ self._log_plugin_exception(plugname, "setup") + + def version(self): + """Fetch version information from all plugins and store in the report +@@ -1177,11 +1179,13 @@ class SoSReport(object): + % e.strerror) + self.ui_log.error("") + self._exit(1) ++ if self.raise_plugins: ++ raise ++ self._log_plugin_exception(plugname, "collect") + except: + if self.raise_plugins: + raise +- else: +- self._log_plugin_exception(plugname, "collect") ++ self._log_plugin_exception(plugname, "collect") + self.ui_log.info("") + + def report(self): +@@ -1324,12 +1328,13 @@ class SoSReport(object): + % e.strerror) + self.ui_log.error("") + self._exit(1) ++ if self.raise_plugins: ++ raise ++ self._log_plugin_exception(plugname, "postproc") + except: + if self.raise_plugins: + raise +- else: +- self._log_plugin_exception(plugname, "postproc") +- ++ self._log_plugin_exception(plugname, "postproc") + + def final_work(self): + # this must come before archive creation to ensure that log diff --git a/SOURCES/sos-bz1026962-sosreport-log-plugin-exceptions-to-file.patch b/SOURCES/sos-bz1026962-sosreport-log-plugin-exceptions-to-file.patch new file mode 100644 index 0000000..069f186 --- /dev/null +++ b/SOURCES/sos-bz1026962-sosreport-log-plugin-exceptions-to-file.patch @@ -0,0 +1,67 @@ +From 8b49485153cc7dc03cd974dbc3a100c81ef04720 Mon Sep 17 00:00:00 2001 +From: "Bryn M. Reeves" +Date: Mon, 19 Jan 2015 19:40:06 +0000 +Subject: [PATCH] [sosreport] log plugin exceptions to a file + +Add exception logging for the Plugin.postproc() method and move +plugin exceptions into a separate per-plugin log file. This is +less cluttered than pushing a multi-line traceback through the +soslog.error logger and matches the behaviour of older releases. + +Signed-off-by: Bryn M. Reeves +--- + sos/sosreport.py | 17 +++++++++++++---- + 1 file changed, 13 insertions(+), 4 deletions(-) + +diff --git a/sos/sosreport.py b/sos/sosreport.py +index 3c0397c..f17194a 100644 +--- a/sos/sosreport.py ++++ b/sos/sosreport.py +@@ -1071,8 +1071,14 @@ class SoSReport(object): + self.ui_log.info("") + self._exit() + +- def _log_plugin_exception(self, plugin_name): +- self.soslog.error("%s\n%s" % (plugin_name, traceback.format_exc())) ++ def _log_plugin_exception(self, plugin, method): ++ trace = traceback.format_exc() ++ msg = "caught exception in plugin method" ++ plugin_err_log = "%s-plugin-errors.txt" % plugin ++ logpath = os.path.join(self.logdir, plugin_err_log) ++ self.soslog.error('%s "%s.%s()"' % (msg, plugin, method)) ++ self.soslog.error('writing traceback to %s' % logpath) ++ self.archive.add_string("%s\n" % trace, logpath) + + def prework(self): + self.policy.pre_work() +@@ -1129,7 +1135,7 @@ class SoSReport(object): + if self.raise_plugins: + raise + else: +- self._log_plugin_exception(plugname) ++ self._log_plugin_exception(plugname, "setup") + + def version(self): + """Fetch version information from all plugins and store in the report +@@ -1175,7 +1181,7 @@ class SoSReport(object): + if self.raise_plugins: + raise + else: +- self._log_plugin_exception(plugname) ++ self._log_plugin_exception(plugname, "collect") + self.ui_log.info("") + + def report(self): +@@ -1321,6 +1327,9 @@ class SoSReport(object): + except: + if self.raise_plugins: + raise ++ else: ++ self._log_plugin_exception(plugname, "postproc") ++ + + def final_work(self): + # this must come before archive creation to ensure that log +-- +1.9.3 + diff --git a/SOURCES/sos-bz1026962-squid-collect-var-log-squid.patch b/SOURCES/sos-bz1026962-squid-collect-var-log-squid.patch new file mode 100644 index 0000000..0ad4c03 --- /dev/null +++ b/SOURCES/sos-bz1026962-squid-collect-var-log-squid.patch @@ -0,0 +1,32 @@ +From d0408ac43e1ec3b114e69b2950202f87f2fcd250 Mon Sep 17 00:00:00 2001 +From: "Bryn M. Reeves" +Date: Mon, 19 Jan 2015 18:12:15 +0000 +Subject: [PATCH] [squid] collect logs from /var/log/squid + +Signed-off-by: Bryn M. Reeves +--- + sos/plugins/squid.py | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/sos/plugins/squid.py b/sos/plugins/squid.py +index 0d596e5..f1aea73 100644 +--- a/sos/plugins/squid.py ++++ b/sos/plugins/squid.py +@@ -29,8 +29,12 @@ class RedHatSquid(Squid, RedHatPlugin): + packages = ('squid',) + + def setup(self): +- self.add_copy_spec_limit("/etc/squid/squid.conf", +- sizelimit=self.get_option('log_size')) ++ log_size = self.get_option('log_size') ++ log_path = "/var/log/squid/" ++ self.add_copy_spec_limit("/etc/squid/squid.conf", sizelimit=log_size) ++ self.add_copy_spec_limit(log_path + "access.log", sizelimit=log_size) ++ self.add_copy_spec_limit(log_path + "cache.log", sizelimit=log_size) ++ self.add_copy_spec_limit(log_path + "squid.out", sizelimit=log_size) + + + class DebianSquid(Squid, DebianPlugin, UbuntuPlugin): +-- +1.9.3 + diff --git a/SOURCES/sos-bz1028072-add-nfs-client-plugin.patch b/SOURCES/sos-bz1028072-add-nfs-client-plugin.patch deleted file mode 100644 index 0b52e36..0000000 --- a/SOURCES/sos-bz1028072-add-nfs-client-plugin.patch +++ /dev/null @@ -1,65 +0,0 @@ -commit 9259b1ba0b19e4376815b3d77545cfb4f700c6dd -Author: Bryn M. Reeves -Date: Fri Nov 8 14:59:56 2013 +0000 - - Add simple nfs plug-in - - There has been an nfsserver plug-in for some time however no - corresponding client-side data is collected. - - This was added to sos-2.2 earlier this year. This commit is a - forward port of those changes: - - commit 71066b4a7d4fd97692b50bf231ad6810df5ec3d0 - Author: root - Date: Wed Jul 10 17:11:52 2013 +0100 - - Collect additional nfs-client relevant files - - Additional NFS client-side data collection: - - "/etc/nfsmount.conf", - "/proc/fs/nfsfs/servers", - "/proc/fs/nfsfs/volumes" - - Signed-off-by: Bryn M. Reeves - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/plugins/nfs.py b/sos/plugins/nfs.py -new file mode 100644 -index 0000000..4acbe38 ---- /dev/null -+++ b/sos/plugins/nfs.py -@@ -0,0 +1,31 @@ -+### 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., 675 Mass Ave, Cambridge, MA 02139, USA. -+ -+from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin -+ -+class Nfs(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): -+ """NFS related information -+ """ -+ plugin_name = 'nfs' -+ packages = ['nfs-utils'] -+ -+ def setup(self): -+ self.add_copy_specs([ -+ "/etc/nfsmount.conf", -+ "/etc/idmapd.conf", -+ "/proc/fs/nfsfs/servers", -+ "/proc/fs/nfsfs/volumes" -+ ]) -+ return -+ diff --git a/SOURCES/sos-bz1028121-include-openhpi-config.patch b/SOURCES/sos-bz1028121-include-openhpi-config.patch deleted file mode 100644 index 0a95010..0000000 --- a/SOURCES/sos-bz1028121-include-openhpi-config.patch +++ /dev/null @@ -1,116 +0,0 @@ -From c1e37e41831c8a9ce8c9901d604421b8b19a20e1 Mon Sep 17 00:00:00 2001 -From: "Bryn M. Reeves" -Date: Mon, 12 Aug 2013 20:11:29 +0100 -Subject: [PATCH 1/3] Add new plug-in to gather OpenHPI configuration - -New plug-in to collect OpenHPI configuration files. These files -may contain passwords; a regex substitution rule has been added -based on information from the reporter but this needs testing -with a range of actual configuration files. - -Signed-off-by: Bryn M. Reeves ---- - sos/plugins/openhpi.py | 34 ++++++++++++++++++++++++++++++++++ - 1 file changed, 34 insertions(+) - create mode 100644 sos/plugins/openhpi.py - -diff --git a/sos/plugins/openhpi.py b/sos/plugins/openhpi.py -new file mode 100644 -index 0000000..bb35206 ---- /dev/null -+++ b/sos/plugins/openhpi.py -@@ -0,0 +1,34 @@ -+### 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., 675 Mass Ave, Cambridge, MA 02139, USA. -+ -+from sos.plugins import Plugin, RedHatPlugin -+import os -+ -+class OpenHPI(Plugin, RedHatPlugin): -+ """OpenHPI related information -+ """ -+ -+ plugin_name = 'openhpi' -+ -+ def setup(self): -+ self.add_copy_specs([ -+ "/etc/openhpi/openhpi.conf", -+ "/etc/openhpi/openhpiclient.conf" -+ ]) -+ -+ def postproc(self): -+ self.do_file_sub("/etc/openhpi/openhpi.conf" -+ r'([Pp]assw(or)?d|[Pp]assphrase)[[:space:]]+\=[[:space:]]"(.*)"', -+ r"\1******") -+ --- -1.7.11.7 - - -From a2be6462e40acc48c4271b2faddc4e9a03187712 Mon Sep 17 00:00:00 2001 -From: "Bryn M. Reeves" -Date: Mon, 12 Aug 2013 20:15:25 +0100 -Subject: [PATCH 2/3] Add file substitution rule for openhpiclient.conf - -Signed-off-by: Bryn M. Reeves ---- - sos/plugins/openhpi.py | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/sos/plugins/openhpi.py b/sos/plugins/openhpi.py -index bb35206..a75f016 100644 ---- a/sos/plugins/openhpi.py -+++ b/sos/plugins/openhpi.py -@@ -31,4 +31,7 @@ class OpenHPI(Plugin, RedHatPlugin): - self.do_file_sub("/etc/openhpi/openhpi.conf" - r'([Pp]assw(or)?d|[Pp]assphrase)[[:space:]]+\=[[:space:]]"(.*)"', - r"\1******") -+ self.do_file_sub("/etc/openhpi/openhpiclient.conf" -+ r'([Pp]assw(or)?d|[Pp]assphrase)[[:space:]]+\=[[:space:]]"(.*)"', -+ r"\1******") - --- -1.7.11.7 - - -From a70afd9562a3ba9ad193fa25c6079c45533b9887 Mon Sep 17 00:00:00 2001 -From: "Bryn M. Reeves" -Date: Thu, 7 Nov 2013 18:17:18 +0000 -Subject: [PATCH 3/3] Fix regex substitution in openhpi plug-in - -Signed-off-by: Bryn M. Reeves ---- - sos/plugins/openhpi.py | 8 ++------ - 1 file changed, 2 insertions(+), 6 deletions(-) - -diff --git a/sos/plugins/openhpi.py b/sos/plugins/openhpi.py -index a75f016..dbe004d 100644 ---- a/sos/plugins/openhpi.py -+++ b/sos/plugins/openhpi.py -@@ -28,10 +28,6 @@ class OpenHPI(Plugin, RedHatPlugin): - ]) - - def postproc(self): -- self.do_file_sub("/etc/openhpi/openhpi.conf" -- r'([Pp]assw(or)?d|[Pp]assphrase)[[:space:]]+\=[[:space:]]"(.*)"', -- r"\1******") -- self.do_file_sub("/etc/openhpi/openhpiclient.conf" -- r'([Pp]assw(or)?d|[Pp]assphrase)[[:space:]]+\=[[:space:]]"(.*)"', -- r"\1******") -+ self.do_file_sub("/etc/openhpi/openhpi.conf", -+ r'(\s*[Pp]ass.*\s*=\s*).*', r'\1********') - --- -1.7.11.7 - diff --git a/SOURCES/sos-bz1028125-fix-traceback-when-sar-module.patch b/SOURCES/sos-bz1028125-fix-traceback-when-sar-module.patch deleted file mode 100644 index 248fa36..0000000 --- a/SOURCES/sos-bz1028125-fix-traceback-when-sar-module.patch +++ /dev/null @@ -1,48 +0,0 @@ -commit e53f06e9a50b16a204d27049b83c3a32505a4ab6 -Author: Bryn M. Reeves -Date: Thu Nov 7 17:48:03 2013 +0000 - - Fix traceback when sar module is force-enabled - - Forward port of the following sos-2.2 fix: - - commit d4e3bcc3ed247d8d9a1228c3661b6456f534daf4 - Author: Bryn M. Reeves - Date: Mon Aug 12 18:42:48 2013 +0100 - - Fix traceback when sar module is force-enabled - - The sar plug-in assumes that when it runs the /var/lib/sa - directory and binaries exist (they are part of checkenabled() for - this module). - - This leads to a traceback when the plug-in lists a non-existent - directory on hosts where sar is not installed but '-o sar' is - specified on the command line. - - Catch the exception and exit gracefully. - - (Edited by bmr to improve error message logged). - - Signed-off-by: David Kutálek - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/plugins/sar.py b/sos/plugins/sar.py -index 4f89b53..570262a 100644 ---- a/sos/plugins/sar.py -+++ b/sos/plugins/sar.py -@@ -43,8 +43,12 @@ class Sar(Plugin,): - self.add_copy_spec_limit("/var/log/sa/sar[0-9]*", - sizelimit = self.sa_size) - self.add_copy_spec_limit("/var/log/sa/sa[0-9]*", -- sizelimit = self.sa_size) -- dirList = os.listdir(self.sa_path) -+ sizelimit = self.sa_size) -+ try: -+ dirList = os.listdir(self.sa_path) -+ except: -+ self.soslog.error("sar: could not list /var/log/sa") -+ return - # find all the sa file that don't have an existing sar file - for fname in dirList: - if fname[0:2] == 'sa' and fname[2] != 'r': diff --git a/SOURCES/sos-bz1028150-add-krb5-plugin-and-klist.patch b/SOURCES/sos-bz1028150-add-krb5-plugin-and-klist.patch deleted file mode 100644 index 19ea04d..0000000 --- a/SOURCES/sos-bz1028150-add-krb5-plugin-and-klist.patch +++ /dev/null @@ -1,126 +0,0 @@ -commit c18486621d2df774f270f8bc1dc602d6487681aa -Author: Bryn M. Reeves -Date: Thu Aug 1 16:43:43 2013 +0100 - - Split kerberos data collection into separate plug-in - - The krb5 data collection in the samba plug-in is misplaced. Since - this is collecting information about the system keytab move it - to its own plug-in that can be activated on any kerberos enabled - system. - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/plugins/krb5.py b/sos/plugins/krb5.py -new file mode 100644 -index 0000000..d9dca89 ---- /dev/null -+++ b/sos/plugins/krb5.py -@@ -0,0 +1,29 @@ -+## Copyright (C) 2013 Red Hat, Inc., Bryn M. Reeves -+ -+### 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., 675 Mass Ave, Cambridge, MA 02139, USA. -+ -+from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin -+ -+class Krb5(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): -+ """Kerberos related information -+ """ -+ packages = ('krb5-libs', 'krb5-user') -+ plugin_name = 'krb5' -+ -+ def setup(self): -+ self.add_copy_specs([ -+ "/etc/krb5.conf", -+ "/etc/krb5.keytab"]) -+ -diff --git a/sos/plugins/samba.py b/sos/plugins/samba.py -index f3a44b7..f3dc862 100644 ---- a/sos/plugins/samba.py -+++ b/sos/plugins/samba.py -@@ -14,9 +14,10 @@ - - from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin - --class Samba(Plugin): -+class Samba(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): - """Samba related information - """ -+ packages = ('samba-common',) - plugin_name = "samba" - - def setup(self): -@@ -27,19 +28,3 @@ class Samba(Plugin): - self.add_cmd_output("wbinfo --domain='.' -u") - self.add_cmd_output("testparm -s -v") - -- --class RedHatSamba(Samba, RedHatPlugin): -- """Samba related information for RedHat based distributions -- """ -- def setup(self): -- super(RedHatSamba, self).setup() -- # FIXME: krb5 specific -- self.add_copy_specs([ -- "/etc/krb5.conf", -- "/etc/krb5.keytab"]) -- --class DebianSamba(Samba, DebianPlugin, UbuntuPlugin): -- """Samba related information for Debian based distributions -- """ -- def setup(self): -- super(DebianSamba, self).setup() -commit 54eb134fb78a64782560df8f0aa2f5e51c6ae410 -Author: Bryn M. Reeves -Date: Thu Aug 1 16:48:19 2013 +0100 - - Do not collect krb5.keytab - - Avoid collecting kerberos keytabs to prevent unintended - information disclosures. Instead retrieve a list using the klist - command. - - Also remove the duplicative collection of this information from - the ipa plug-in (which should only be collecting non-system - keytabs that are specific to the IPA tools). - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/plugins/ipa.py b/sos/plugins/ipa.py -index 3244f34..0061659 100644 ---- a/sos/plugins/ipa.py -+++ b/sos/plugins/ipa.py -@@ -73,7 +73,6 @@ class Ipa(Plugin, RedHatPlugin): - - self.add_cmd_output("klist -ket /etc/dirsrv/ds.keytab") - self.add_cmd_output("klist -ket /etc/httpd/conf/ipa.keytab") -- self.add_cmd_output("klist -ket /etc/krb5.keytab") - - return - -diff --git a/sos/plugins/krb5.py b/sos/plugins/krb5.py -index d9dca89..0d33094 100644 ---- a/sos/plugins/krb5.py -+++ b/sos/plugins/krb5.py -@@ -23,7 +23,6 @@ class Krb5(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): - plugin_name = 'krb5' - - def setup(self): -- self.add_copy_specs([ -- "/etc/krb5.conf", -- "/etc/krb5.keytab"]) -+ self.add_copy_spec("/etc/krb5.conf") -+ self.add_cmd_output("klist -ket /etc/krb5.keytab") - diff --git a/SOURCES/sos-bz1028484-remove-upload-option.patch b/SOURCES/sos-bz1028484-remove-upload-option.patch deleted file mode 100644 index 01fa7ac..0000000 --- a/SOURCES/sos-bz1028484-remove-upload-option.patch +++ /dev/null @@ -1,236 +0,0 @@ -commit 26bd7ddd523af051916954723f3edb2ab6bd297e -Author: Bryn M. Reeves -Date: Fri Jan 24 15:13:22 2014 +0000 - - Remove --upload option - - The --upload option has a lot of limitations and has not been - widely used. Recent trends are to handle uploading data in - higher-level tools (e.g. redhat-support-tool or web based - management UIs) and the python ftp library does not support - modern requirements like HTTP proxy traversal or encryption. - - Fixes Issue #217 - - Signed-off-by: Bryn M. Reeves - - Conflicts: - sos/policies/__init__.py - -diff --git a/man/en/sos.conf.5 b/man/en/sos.conf.5 -index dc10b1b..b40a48e 100644 ---- a/man/en/sos.conf.5 -+++ b/man/en/sos.conf.5 -@@ -6,26 +6,31 @@ sos.conf \- sosreport configuration - sosreport uses a configuration file at /etc/sos.conf. - .SH PARAMETERS - .sp --There are 3 sections of configuration in the sosreport configuration file: general, --plugins, and tunables. --.SH [general] OPTIONS --.sp --.in --ftp_upload_url Default ftp server to send reports. --.in --gpg_keyring Default gpgkey. --.in --gpg_recipient GPG recipient --.in --smtp_server Mail server --.SH [plugins] OPTIONS --.sp --.in -+There are two sections in the sosreport configuration file: -+plugins, and tunables. Options are set using 'ini'-style -+\fBname = value\fP pairs. -+ -+Some options accept a comma separated list of values. -+ -+.TP -+\fB[plugins]\fP - disable Comma separated list of plugins to disable. --.SH [tunables] OPTIONS -+.TP -+\fB[tunables]\fP -+plugin.option Alter available options for defined plugin. -+.SH EXAMPLES -+To disable the 'general' and 'filesys' plugins: -+.LP -+[plugins] -+.br -+disable = general, filesys - .sp --.in --(plugin, option) Alter available options for defined plugin. -+To disable rpm package verification in the RPM plugin: -+.LP -+[tunables] -+.br -+rpm.rpmva = off -+.br - .SH FILES - .sp - /etc/sos.conf -diff --git a/man/en/sosreport.1 b/man/en/sosreport.1 -index 87a099e..c800576 100644 ---- a/man/en/sosreport.1 -+++ b/man/en/sosreport.1 -@@ -10,7 +10,7 @@ sosreport \- Collect and package diagnostic and support data - [-a|--alloptions] [-v|--verbose]\fR - [--report] [--config-file conf] [--batch]\fR - [--build] [--name name] [--ticket-number number] -- [--debug] [--upload] [--tmp-dir directory]\fR -+ [--debug] [--tmp-dir directory]\fR - [--profile] [--help]\fR - .SH DESCRIPTION - \fBsosreport\fR generates a compressed tar archive of diagnostic -@@ -50,9 +50,6 @@ specified value in the plug-in PLUGNAME. - .B \-a, \--alloptions - Set all boolean options to True for all enabled plug-ins. - .TP --.B \--upload FTP_SERVER --Upload the report to the configured destination. --.TP - .B \-v, \--verbose - Increase logging verbosity. May be specified multiple times to enable - additional debugging messages. -diff --git a/sos/policies/__init__.py b/sos/policies/__init__.py -index b681e77..47ace5c 100644 ---- a/sos/policies/__init__.py -+++ b/sos/policies/__init__.py -@@ -280,79 +280,6 @@ No changes will be made to system configuration. - self._print(_("Please send this file to your support representative.")) - self._print() - -- def upload_results(self, final_filename): -- -- # make sure a report exists -- if not final_filename: -- return False -- -- self._print() -- # make sure it's readable -- try: -- fp = open(final_filename, "r") -- except: -- return False -- -- # read ftp URL from configuration -- if self.commons['cmdlineopts'].upload: -- upload_url = self.commons['cmdlineopts'].upload -- else: -- try: -- upload_url = self.commons['config'].get("general", "ftp_upload_url") -- except: -- self._print(_("No URL defined in config file.")) -- return -- -- from urlparse import urlparse -- url = urlparse(upload_url) -- -- if url[0] != "ftp": -- self._print(_("Cannot upload to specified URL.")) -- return -- -- # extract username and password from URL, if present -- if url[1].find("@") > 0: -- username, host = url[1].split("@", 1) -- if username.find(":") > 0: -- username, passwd = username.split(":", 1) -- else: -- passwd = None -- else: -- username, passwd, host = None, None, url[1] -- -- # extract port, if present -- if host.find(":") > 0: -- host, port = host.split(":", 1) -- port = int(port) -- else: -- port = 21 -- -- path = url[2] -- -- try: -- from ftplib import FTP -- upload_name = os.path.basename(final_filename) -- -- ftp = FTP() -- ftp.connect(host, port) -- if username and passwd: -- ftp.login(username, passwd) -- else: -- ftp.login() -- ftp.cwd(path) -- ftp.set_pasv(True) -- ftp.storbinary('STOR %s' % upload_name, fp) -- ftp.quit() -- except Exception, e: -- self._print(_("There was a problem uploading your report to Red Hat support. " + str(e))) -- else: -- self._print(_("Your report was successfully uploaded to %s with name:" % (upload_url,))) -- self._print(" " + upload_name) -- self._print() -- self._print(_("Please communicate this name to your support representative.")) -- self._print() -- -- fp.close() - - def _print(self, msg=None): - """A wrapper around print that only prints if we are not running in -diff --git a/sos/sosreport.py b/sos/sosreport.py -index 1c81af9..fb3aea7 100644 ---- a/sos/sosreport.py -+++ b/sos/sosreport.py -@@ -202,7 +202,6 @@ class SoSOptions(object): - _onlyplugins = [] - _plugopts = [] - _usealloptions = False -- _upload = False - _batch = False - _build = False - _verbosity = 0 -@@ -302,19 +301,6 @@ class SoSOptions(object): - self._usealloptions = value - - @property -- def upload(self): -- if self._options != None: -- return self._options.upload -- return self._upload -- -- @upload.setter -- def upload(self, value): -- self._check_options_initialized() -- if not isinstance(value, bool): -- raise TypeError("SoSOptions.upload expects a boolean") -- self._upload = value -- -- @property - def batch(self): - if self._options != None: - return self._options.batch -@@ -484,9 +470,6 @@ class SoSOptions(object): - parser.add_option("-a", "--alloptions", action="store_true", - dest="usealloptions", default=False, - help="enable all options for loaded plugins") -- parser.add_option("-u", "--upload", action="store", -- dest="upload", default=False, -- help="upload the report to an ftp server") - parser.add_option("--batch", action="store_true", - dest="batch", default=False, - help="batch mode - do not prompt interactively") -@@ -1130,12 +1113,7 @@ class SoSReport(object): - else: - final_filename = self.archive.get_archive_path() - -- # automated submission will go here -- if not self.opts.upload: -- self.policy.display_results(final_filename, build = self.opts.build) -- else: -- self.policy.upload_results(final_filename) -- -+ self.policy.display_results(final_filename, build = self.opts.build) - self.tempfile_util.clean() - - return True diff --git a/SOURCES/sos-bz1030042-remove-logs-debug-statements.patch b/SOURCES/sos-bz1030042-remove-logs-debug-statements.patch deleted file mode 100644 index 690c1ea..0000000 --- a/SOURCES/sos-bz1030042-remove-logs-debug-statements.patch +++ /dev/null @@ -1,34 +0,0 @@ -commit 3304589f0e643b9f43dbc0fd042f747d0e4c27c2 -Author: Bryn M. Reeves -Date: Wed Nov 13 19:02:05 2013 +0000 - - Remove debug statements from logs plugin - - The 'all_logs' path of the logs plugin has three leftover debug - print statements. Remove them to avoid cluttering the console - output when the option is used. - - Signed-off-by: Bryn M. Reeves - - Conflicts: - sos/plugins/logs.py - -diff --git a/sos/plugins/logs.py b/sos/plugins/logs.py -index 8359e06..7e7545f 100644 ---- a/sos/plugins/logs.py -+++ b/sos/plugins/logs.py -@@ -38,14 +38,11 @@ class Logs(Plugin): - self.add_copy_spec_limit("/var/log/boot*", sizelimit = self.limit) - - if self.get_option('all_logs'): -- print "doing all_logs..." - logs = self.do_regex_find_all("^\S+\s+(-?\/.*$)\s+", - "/etc/syslog.conf") -- print logs - if self.policy().pkg_by_name("rsyslog") \ - or os.path.exists("/etc/rsyslog.conf"): - logs += self.do_regex_find_all("^\S+\s+(-?\/.*$)\s+", "/etc/rsyslog.conf") -- print logs - for i in logs: - if i.startswith("-"): - i = i[1:] diff --git a/SOURCES/sos-bz1030553-fix-cluster-crm_report.patch b/SOURCES/sos-bz1030553-fix-cluster-crm_report.patch deleted file mode 100644 index dea4055..0000000 --- a/SOURCES/sos-bz1030553-fix-cluster-crm_report.patch +++ /dev/null @@ -1,72 +0,0 @@ -From 186b3317b1e8562bbbd7dddd191b8ab73d664d5c Mon Sep 17 00:00:00 2001 -From: "Bryn M. Reeves" -Date: Fri, 31 Jan 2014 15:08:28 +0000 -Subject: [PATCH] Fix cluster module crm_report support - -The cluster plugin used an obsolete sos-2.2 method to determine -the command output directory. This causes an excaption at runtime -since the referenced properties no longer exist. - -The crm_report script also expects a --from date and will not -collect data unless this is passed. Default to passing a value 72 -hours before the current time and add a 'crm_from' option to the -cluster module to allow the user to override this. - -Signed-off-by: Bryn M. Reeves ---- - sos/plugins/cluster.py | 27 +++++++++++++++++++-------- - 1 file changed, 19 insertions(+), 8 deletions(-) - -diff --git a/sos/plugins/cluster.py b/sos/plugins/cluster.py -index 50e0e0b..c2ce42b 100644 ---- a/sos/plugins/cluster.py -+++ b/sos/plugins/cluster.py -@@ -13,16 +13,17 @@ - ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - from sos.plugins import Plugin, RedHatPlugin --import re -+import re, os - from glob import glob -+from datetime import datetime, timedelta - - class Cluster(Plugin, RedHatPlugin): - """cluster suite and GFS related information - """ - - plugin_name = 'cluster' -- option_list = [("gfslockdump", -- 'gather output of gfs lockdumps', 'slow', False), -+ option_list = [("gfslockdump", 'gather output of gfs lockdumps', 'slow', False), -+ ("crm_from", 'specify the --from parameter passed to crm_report', 'fast', False), - ('lockdump', 'gather dlm lockdumps', 'slow', False)] - - packages = [ -@@ -83,9 +84,21 @@ class Cluster(Plugin, RedHatPlugin): - self.add_cmd_output("dlm_tool dump") - self.add_cmd_output("dlm_tool ls -n") - self.add_cmd_output("mkqdisk -L") -- crm_dest = os.path.join(self.cInfo['cmddir'], -- self.name(), 'crm_report') -- self.collectExtOutput("crm_report -S --dest %s" % crm_dest) -+ # crm_report needs to be given a --from "YYYY-MM-DD HH:MM:SS" start -+ # time in order to collect data. -+ crm_from = (datetime.today() -+ - timedelta(hours=72)).strftime("%Y-%m-%d %H:%m:%S") -+ if self.get_option('crm_from') != False: -+ if re.match(r'\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}', -+ str(self.getOption('crm_from'))): -+ crm_from = self.getOption('crm_from') -+ else: -+ self.soslog.error("crm_from parameter '%s' is not a valid date" -+ % self.getOption('crm_from')) -+ -+ crm_dest = os.path.join(self.get_cmd_dir(), 'crm_report') -+ self.add_cmd_output('crm_report -S -d --dest %s --from "%s"' -+ % (crm_dest, crm_from)) - - def do_lockdump(self): - status, output, time = self.call_ext_prog("dlm_tool ls") --- -1.7.11.7 - diff --git a/SOURCES/sos-bz1030553-fix-cluster-get_option-use.patch b/SOURCES/sos-bz1030553-fix-cluster-get_option-use.patch deleted file mode 100644 index a8412c7..0000000 --- a/SOURCES/sos-bz1030553-fix-cluster-get_option-use.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 50c2821c6211a06ee356d4d8d2f0e7573e1a8159 Mon Sep 17 00:00:00 2001 -From: "Bryn M. Reeves" -Date: Mon, 3 Feb 2014 11:48:46 +0000 -Subject: [PATCH] Fix get_option() use in cluster plugin - -Signed-off-by: Bryn M. Reeves ---- - sos/plugins/cluster.py | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/sos/plugins/cluster.py b/sos/plugins/cluster.py -index 0fc4ded..eeacdab 100644 ---- a/sos/plugins/cluster.py -+++ b/sos/plugins/cluster.py -@@ -90,11 +90,11 @@ class Cluster(Plugin, RedHatPlugin): - - timedelta(hours=72)).strftime("%Y-%m-%d %H:%m:%S") - if self.get_option('crm_from') != False: - if re.match(r'\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}', -- str(self.getOption('crm_from'))): -- crm_from = self.getOption('crm_from') -+ str(self.get_option('crm_from'))): -+ crm_from = self.get_option('crm_from') - else: - self.soslog.error("crm_from parameter '%s' is not a valid date" -- % self.getOption('crm_from')) -+ % self.get_option('crm_from')) - - crm_dest = os.path.join(self.get_cmd_dir(), 'crm_report') - self.add_cmd_output('crm_report -S -d --dest %s --from "%s"' --- -1.7.11.7 - diff --git a/SOURCES/sos-bz1030553-fix-command-output-substitution-exception.patch b/SOURCES/sos-bz1030553-fix-command-output-substitution-exception.patch deleted file mode 100644 index 0daf875..0000000 --- a/SOURCES/sos-bz1030553-fix-command-output-substitution-exception.patch +++ /dev/null @@ -1,141 +0,0 @@ -From c6e2ab3f1e941ececc7a461fd46a1a40041ad2b5 Mon Sep 17 00:00:00 2001 -From: "Bryn M. Reeves" -Date: Sun, 6 Oct 2013 15:01:23 +0100 -Subject: [PATCH 1/3] Fix exception in command output substitution - -If an attempt is made to apply command output substitution via -Plugin.do_cmd_output_sub() and no output has been collected (i.e. -called['file'] == None) an exception is thrown by os.path.join(). - -The exception is also not logged properly due to an attempt in -the do_cmd_output_sub() exception handler to access an unbound -local variable (path - the exception occurs before it is -assigned). - -Fix both of these by checking for an empty file entry and avoiding -access to the path variable from the exception handler. - -Signed-off-by: Bryn M. Reeves ---- - sos/plugins/__init__.py | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/sos/plugins/__init__.py b/sos/plugins/__init__.py -index 4a72161..fc3a851 100644 ---- a/sos/plugins/__init__.py -+++ b/sos/plugins/__init__.py -@@ -180,6 +180,9 @@ class Plugin(object): - - try: - for called in self.executed_commands: -+ # was anything collected? -+ if called['file'] == None: -+ continue - if fnmatch.fnmatch(called['exe'], globstr): - path = os.path.join(self.commons['cmddir'], called['file']) - self.soslog.debug("applying substitution to %s" % path) -@@ -192,7 +195,7 @@ class Plugin(object): - replacements = 0 - except Exception, e: - msg = 'regex substitution failed for %s in plugin %s with: "%s"' -- self.soslog.error(msg % (path, self.name(), e)) -+ self.soslog.error(msg % (called['exe'], self.name(), e)) - replacements = 0 - if self.commons['cmdlineopts'].profiler: - time_passed = time() - start_time --- -1.7.11.7 - - -From dafcbf33022ee2be24109c6c90bae97a1a4a2077 Mon Sep 17 00:00:00 2001 -From: "Bryn M. Reeves" -Date: Tue, 11 Feb 2014 16:53:16 +0000 -Subject: [PATCH 2/3] Fix command output substitution exception - -If a comand has a substitution registered via do_cmd_output_sub() -but no data was collected (e.g. command not found) the postproc -code will throw an exception as the return value ('replacements') -is never assigned. - -Initialise replacements to None before scanning the list of run -commands and return this if no substitutions were made. - -Signed-off-by: Bryn M. Reeves - -Conflicts: - sos/plugins/__init__.py ---- - sos/plugins/__init__.py | 9 +++++---- - 1 file changed, 5 insertions(+), 4 deletions(-) - -diff --git a/sos/plugins/__init__.py b/sos/plugins/__init__.py -index fc3a851..2bf8d98 100644 ---- a/sos/plugins/__init__.py -+++ b/sos/plugins/__init__.py -@@ -178,6 +178,7 @@ class Plugin(object): - if not self.executed_commands: - return 0 - -+ replacements = None - try: - for called in self.executed_commands: - # was anything collected? -@@ -191,12 +192,12 @@ class Plugin(object): - regexp, subst, readable.read()) - if replacements: - self.archive.add_string(result, path) -- else: -- replacements = 0 -- except Exception, e: -+ -+ except Exception as e: - msg = 'regex substitution failed for %s in plugin %s with: "%s"' - self.soslog.error(msg % (called['exe'], self.name(), e)) -- replacements = 0 -+ replacements = None -+ - if self.commons['cmdlineopts'].profiler: - time_passed = time() - start_time - self.proflog.debug("subst: %-75s time: %f" --- -1.7.11.7 - - -From 59e7695c52ef77b9045e0f1737672728e6b0275a Mon Sep 17 00:00:00 2001 -From: "Bryn M. Reeves" -Date: Tue, 11 Feb 2014 16:56:37 +0000 -Subject: [PATCH 3/3] Improve error message when cluster.crm_from is invalid - -If a user passes a non-date string value as the crm_from parameter -of the cluster plugin an error message is logged: - - crm_from parameter 'True' is not a valid date - -The plugin continues to run and uses the default value (T-72hrs) -as the value of crm_from. Make this clear in the message displayed -to users: - - crm_from parameter 'True' is not a valid date: using default - -Signed-off-by: Bryn M. Reeves ---- - sos/plugins/cluster.py | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/sos/plugins/cluster.py b/sos/plugins/cluster.py -index eeacdab..8d73dc1 100644 ---- a/sos/plugins/cluster.py -+++ b/sos/plugins/cluster.py -@@ -93,7 +93,8 @@ class Cluster(Plugin, RedHatPlugin): - str(self.get_option('crm_from'))): - crm_from = self.get_option('crm_from') - else: -- self.soslog.error("crm_from parameter '%s' is not a valid date" -+ self.soslog.error( -+ "crm_from parameter '%s' is not a valid date: using default" - % self.get_option('crm_from')) - - crm_dest = os.path.join(self.get_cmd_dir(), 'crm_report') --- -1.7.11.7 - diff --git a/SOURCES/sos-bz1030602-fix-ldap-postproc.patch b/SOURCES/sos-bz1030602-fix-ldap-postproc.patch deleted file mode 100644 index 4afb202..0000000 --- a/SOURCES/sos-bz1030602-fix-ldap-postproc.patch +++ /dev/null @@ -1,187 +0,0 @@ -From 2fd64785d330f6ff8090b9b01f15b7f75ab57e41 Mon Sep 17 00:00:00 2001 -From: "Bryn M. Reeves" -Date: Tue, 13 Aug 2013 14:54:20 +0100 -Subject: [PATCH 1/4] Improve readability of add_copy_specs() usage in ldap.py - -Use multi-line style for add_copy_specs() invocations in the ldap -plug-in per the recommendations in Issue #173. - -Signed-off-by: Bryn M. Reeves ---- - sos/plugins/ldap.py | 13 ++++++++++--- - 1 file changed, 10 insertions(+), 3 deletions(-) - -diff --git a/sos/plugins/ldap.py b/sos/plugins/ldap.py -index b16b7b3..4d33076 100644 ---- a/sos/plugins/ldap.py -+++ b/sos/plugins/ldap.py -@@ -1,4 +1,4 @@ --### This program is free software; you can redistribute it and/or modify -+## 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. -@@ -49,7 +49,10 @@ class RedHatLdap(Ldap, RedHatPlugin): - - def setup(self): - super(RedHatLdap, self).setup() -- self.add_copy_specs(["/etc/openldap", "/etc/nslcd.conf"]) -+ self.add_copy_specs([ -+ "/etc/openldap", -+ "/etc/nslcd.conf" -+ ]) - - def postproc(self): - self.do_file_sub("/etc/nslcd.conf", r"(\s*bindpw\s*)\S+", r"\1***") -@@ -66,7 +69,11 @@ class DebianLdap(Ldap, DebianPlugin, UbuntuPlugin): - - ldap_search = "ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// " - -- self.add_copy_specs(["/etc/ldap/ldap.conf", "/etc/slapd.conf", "/etc/ldap/slapd.d"]) -+ self.add_copy_specs([ -+ "/etc/ldap/ldap.conf", -+ "/etc/slapd.conf", -+ "/etc/ldap/slapd.d" -+ ]) - - self.add_cmd_output("ldapsearch -x -b '' -s base 'objectclass=*'") - self.add_cmd_output(ldap_search + "-b cn=config '(!(objectClass=olcSchemaConfig))'", --- -1.7.11.7 - - -From a4a686eb589f0d54bc3808ce57c792356aa36106 Mon Sep 17 00:00:00 2001 -From: "Bryn M. Reeves" -Date: Tue, 13 Aug 2013 15:19:02 +0100 -Subject: [PATCH 2/4] Add pam_ldap.conf collection to ldap plug-in - -Add the pam_ldap.conf file to the data collected by the ldap -plug-in and tidy up substitution strings for this plug-in. - -Signed-off-by: Bryn M. Reeves ---- - sos/plugins/ldap.py | 13 +++++++++---- - 1 file changed, 9 insertions(+), 4 deletions(-) - -diff --git a/sos/plugins/ldap.py b/sos/plugins/ldap.py -index 4d33076..361de73 100644 ---- a/sos/plugins/ldap.py -+++ b/sos/plugins/ldap.py -@@ -39,23 +39,28 @@ class Ldap(Plugin): - self.add_copy_spec("/etc/ldap.conf") - - def postproc(self): -- self.do_file_sub("/etc/ldap.conf", r"(\s*bindpw\s*)\S+", r"\1***") -+ self.do_file_sub("/etc/ldap.conf", r"(\s*bindpw\s*)\S+", r"\1******") - - class RedHatLdap(Ldap, RedHatPlugin): - """LDAP related information for RedHat based distribution - """ - - packages = ('openldap', 'nss-pam-ldapd') -+ files = ('/etc/ldap.conf', '/etc/pam_ldap.conf') - - def setup(self): - super(RedHatLdap, self).setup() - self.add_copy_specs([ - "/etc/openldap", -- "/etc/nslcd.conf" -+ "/etc/nslcd.conf", -+ "/etc/pam_ldap.conf" - ]) - - def postproc(self): -- self.do_file_sub("/etc/nslcd.conf", r"(\s*bindpw\s*)\S+", r"\1***") -+ self.do_file_sub("/etc/nslcd.conf", -+ r"(\s*bindpw\s*)\S+", r"\1********") -+ self.do_file_sub("/etc/pam_ldap.conf", -+ r"(\s*bindpw\s*)\S+", r"\1********") - - class DebianLdap(Ldap, DebianPlugin, UbuntuPlugin): - """LDAP related information for Debian based distribution -@@ -86,4 +91,4 @@ class DebianLdap(Ldap, DebianPlugin, UbuntuPlugin): - def postproc(self): - self.do_cmd_output_sub( - "ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config '(!(objectClass=olcSchemaConfig))'", -- r"(olcRootPW\: \s*)\S+", r"\1***") -+ r"(olcRootPW\: \s*)\S+", r"\1********") --- -1.7.11.7 - - -From cfb53a07ba72a311d2962e0bd73cf74430a4cad8 Mon Sep 17 00:00:00 2001 -From: "Bryn M. Reeves" -Date: Fri, 31 Jan 2014 15:25:15 +0000 -Subject: [PATCH 3/4] Remove obsolete diagnostics code from ldap plugin - -Signed-off-by: Bryn M. Reeves ---- - sos/plugins/ldap.py | 12 ------------ - 1 file changed, 12 deletions(-) - -diff --git a/sos/plugins/ldap.py b/sos/plugins/ldap.py -index 361de73..f1032a9 100644 ---- a/sos/plugins/ldap.py -+++ b/sos/plugins/ldap.py -@@ -22,18 +22,6 @@ class Ldap(Plugin): - plugin_name = "ldap" - ldap_conf = "/etc/openldap/ldap.conf" - -- def get_ldap_opts(self): -- # capture /etc/openldap/ldap.conf options in dict -- # FIXME: possibly not hardcode these options in? -- ldapopts=["URI","BASE","TLS_CACERTDIR"] -- results={} -- tmplist=[] -- for i in ldapopts: -- t=self.do_regex_find_all(r"^(%s)\s+(.*)" % i,self.ldap_conf) -- for x in t: -- results[x[0]]=x[1].rstrip("\n") -- return results -- - def setup(self): - super(Ldap, self).setup() - self.add_copy_spec("/etc/ldap.conf") --- -1.7.11.7 - - -From e1a30a6d63a376d892a10d9cec89b312356ba9c2 Mon Sep 17 00:00:00 2001 -From: "Bryn M. Reeves" -Date: Fri, 31 Jan 2014 15:43:44 +0000 -Subject: [PATCH 4/4] Ensure superclass postproc method is called in ldap - plugin - -Since the ldap plugins add files and post-processing methods at -multiple class levels (Ldap, RedHatLdap etc.) derived classes -must explicitly call their parent class's postproc() method to -apply all substitutions to collected data. - -Signed-off-by: Bryn M. Reeves ---- - sos/plugins/ldap.py | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/sos/plugins/ldap.py b/sos/plugins/ldap.py -index f1032a9..79d8394 100644 ---- a/sos/plugins/ldap.py -+++ b/sos/plugins/ldap.py -@@ -45,6 +45,7 @@ class RedHatLdap(Ldap, RedHatPlugin): - ]) - - def postproc(self): -+ super(RedHatLdap, self).postproc() - self.do_file_sub("/etc/nslcd.conf", - r"(\s*bindpw\s*)\S+", r"\1********") - self.do_file_sub("/etc/pam_ldap.conf", -@@ -77,6 +78,7 @@ class DebianLdap(Ldap, DebianPlugin, UbuntuPlugin): - suggest_filename="access_control_lists") - - def postproc(self): -+ super(RedHatLdap, self).postproc() - self.do_cmd_output_sub( - "ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config '(!(objectClass=olcSchemaConfig))'", - r"(olcRootPW\: \s*)\S+", r"\1********") --- -1.7.11.7 - diff --git a/SOURCES/sos-bz1030617-rhevm-treat-vdsmlogs-as-string.patch b/SOURCES/sos-bz1030617-rhevm-treat-vdsmlogs-as-string.patch deleted file mode 100644 index 2c60fb9..0000000 --- a/SOURCES/sos-bz1030617-rhevm-treat-vdsmlogs-as-string.patch +++ /dev/null @@ -1,28 +0,0 @@ -commit 3d4afc252c9b65f350285d166d625067ee945934 -Author: Bryn M. Reeves -Date: Mon Feb 3 12:26:45 2014 +0000 - - Always treat rhevm vdsmlogs option as string - - The rhevm plugin has a 'vdsmlogs' option to pass in a set of log - files to be collected. When run with '-a' (or with - '-krhevm.vdsmlogs) this evaluates to 'True' (a bool) and causes - an exception when this is passed to add_copy_specs(). - - Always treat the value as a string. - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/plugins/rhevm.py b/sos/plugins/rhevm.py -index 39b32f4..8068e05 100644 ---- a/sos/plugins/rhevm.py -+++ b/sos/plugins/rhevm.py -@@ -13,7 +13,7 @@ class RhevM(Plugin, RedHatPlugin): - self.add_copy_spec("/etc/rhevm") - self.add_copy_spec("/var/log/rhevm") - if self.get_option("vdsmlogs"): -- self.add_copy_spec(self.get_option("vdsmlogs")) -+ self.add_copy_spec(str(self.get_option("vdsmlogs"))) - - def postproc(self): - """ diff --git a/SOURCES/sos-bz1030824-make-ethernet-detection-more-robust.patch b/SOURCES/sos-bz1030824-make-ethernet-detection-more-robust.patch deleted file mode 100644 index 16c14c5..0000000 --- a/SOURCES/sos-bz1030824-make-ethernet-detection-more-robust.patch +++ /dev/null @@ -1,90 +0,0 @@ -commit 6fe3c9195b958e3b24a2dbf1768a45a459795f07 -Author: Bryn M. Reeves -Date: Fri Nov 15 13:40:17 2013 +0000 - - Make ethernet interface detection more robust - - The networking module parses the link information in the output - of the 'ip -o addr' command to determine a list of ethernet - interfaces on which to run ethtool. - - An upstream change in the iproute package appears to have - introduced a regression in the output of this command which causes - link information to not be displayed: - - 2: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000\ link/ether 52:54:00:ce:9d:6d brd ff:ff:ff:ff:ff:ff - 2: eth0 inet 192.168.122.31/24 brd 192.168.122.255 scope global eth0\ valid_lft forever preferred_lft forever - 2: eth0 inet6 fe80::5054:ff:fece:9d6d/64 scope link \ valid_lft forever preferred_lft forever - - vs: - - 2: eth0 inet 192.168.122.31/24 brd 192.168.122.255 scope global eth0\ valid_lft forever preferred_lft forever - 2: eth0 inet6 fe80::5054:ff:fece:9d6d/64 scope link \ valid_lft forever preferred_lft forever - - This breaks detection of ethernet interfaces and all ethtool data - collection. - - This was introduced in the following iproute commit: - - commit af9d406f99853848054162ed7aefbe71dc03e433 - Author: Mike Frysinger - Date: Mon Aug 13 08:09:52 2012 -0700 - - Fix regression with 'ip address show' - - Which appears to fix a different problem (i.e. the change to link - info was unintended). - - Make this more robust by switching the networking module to use - 'ip -o link' instead which explicitly requests the required - information. - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/plugins/networking.py b/sos/plugins/networking.py -index 9724a4f..64fb962 100644 ---- a/sos/plugins/networking.py -+++ b/sos/plugins/networking.py -@@ -41,16 +41,16 @@ class Networking(Plugin): - out.append(br_name) - return out - -- def get_interface_name(self,ip_addr_out): -- """Return a dictionary for which key are interface name according to the -- output of ifconifg-a stored in ifconfig_file. -+ def get_eth_interfaces(self,ip_link_out): -+ """Return a dictionary for which keys are ethernet interface -+ names taken from the output of "ip -o link". - """ - out={} -- for line in ip_addr_out[1].splitlines(): -+ for line in ip_link_out[1].splitlines(): - match=re.match('.*link/ether', line) - if match: -- int=match.string.split(':')[1].lstrip() -- out[int]=True -+ iface=match.string.split(':')[1].lstrip() -+ out[iface]=True - return out - - def collect_iptable(self,tablename): -@@ -85,7 +85,6 @@ class Networking(Plugin): - self.add_forbidden_path("/proc/net/rpc/*/flush") - - ip_addr_file=self.get_cmd_output_now("ip -o addr", root_symlink = "ip_addr") -- ip_addr_out=self.call_ext_prog("ip -o addr") - self.add_cmd_output("route -n", root_symlink = "route") - self.collect_iptable("filter") - self.collect_iptable("nat") -@@ -101,8 +100,9 @@ class Networking(Plugin): - self.add_cmd_output("ip mroute show") - self.add_cmd_output("ip maddr show") - self.add_cmd_output("ip neigh show") -- if ip_addr_out: -- for eth in self.get_interface_name(ip_addr_out): -+ ip_link_out=self.call_ext_prog("ip -o link") -+ if ip_link_out: -+ for eth in self.get_eth_interfaces(ip_link_out): - self.add_cmd_output("ethtool "+eth) - self.add_cmd_output("ethtool -i "+eth) - self.add_cmd_output("ethtool -k "+eth) diff --git a/SOURCES/sos-bz1031124-fix-multiple-plugin-opts.patch b/SOURCES/sos-bz1031124-fix-multiple-plugin-opts.patch deleted file mode 100644 index 9644c35..0000000 --- a/SOURCES/sos-bz1031124-fix-multiple-plugin-opts.patch +++ /dev/null @@ -1,35 +0,0 @@ -commit b98878d0843b8da9c1c963dc855889ec104bb5df -Author: Bryn M. Reeves -Date: Mon Nov 18 13:05:00 2013 +0000 - - Revert change to --plugin-options parser action - - Commit 6ea48cb changed the action for the -k/--plugin-option - command line argument from 'extend' to 'append'. This breaks the - handling of options that are chained with a ',': - - logs.logsize 1,logs.all_logs max size (MiB) to collect per syslog file - logs.all_logs off collect all log files defined in syslog.conf - - vs: - - logs.logsize 1 max size (MiB) to collect per syslog file - logs.all_logs on collect all log files defined in syslog.conf - - Revert to an 'append' action for this switch. - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/sosreport.py b/sos/sosreport.py -index 48bb3af..4ea5f95 100644 ---- a/sos/sosreport.py -+++ b/sos/sosreport.py -@@ -477,7 +477,7 @@ class SoSOptions(object): - parser.add_option("-o", "--only-plugins", action="extend", - dest="onlyplugins", type="string", - help="enable these plugins only", default = deque()) -- parser.add_option("-k", "--plugin-option", action="append", -+ parser.add_option("-k", "--plugin-option", action="extend", - dest="plugopts", type="string", - help="plugin options in plugname.option=value format (see -l)", - default = deque()) diff --git a/SOURCES/sos-bz1031126-correct-log-and-message-levels.patch b/SOURCES/sos-bz1031126-correct-log-and-message-levels.patch deleted file mode 100644 index fb1ac2f..0000000 --- a/SOURCES/sos-bz1031126-correct-log-and-message-levels.patch +++ /dev/null @@ -1,87 +0,0 @@ -commit c8ea3f5e17e48c577d8f6dde6ac0b782b72f98d6 -Author: Bryn M. Reeves -Date: Mon Nov 18 12:52:40 2013 +0000 - - Change default console log level to WARNING to match sos-2.2 - - Commit 6ea48cb changed the default log level for console output - from WARNING to ERROR and reclassified several messages. - - This causes plug-in validation messages to be silent at the - default verbosity. - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/sosreport.py b/sos/sosreport.py -index 4ea5f95..595015f 100644 ---- a/sos/sosreport.py -+++ b/sos/sosreport.py -@@ -669,7 +669,7 @@ class SoSReport(object): - elif self.opts.verbosity > 0: - console.setLevel(logging.INFO) - else: -- console.setLevel(logging.ERROR) -+ console.setLevel(logging.WARNING) - self.soslog.addHandler(console) - - # ui log -commit c2ab28f7fb159f149314a83f2493739f2d2aa88b -Author: Bryn M. Reeves -Date: Mon Nov 18 13:02:19 2013 +0000 - - Reclasify 'error' messages as 'warning' - - Several log messages used the 'error' level when reporting an - event that is not necessarily an error (and does not prevent sos - from continuing). - - Reclassify these to the 'warning' log level instead. - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/plugins/kernel.py b/sos/plugins/kernel.py -index 1afe9df..f96fe6c 100644 ---- a/sos/plugins/kernel.py -+++ b/sos/plugins/kernel.py -@@ -32,7 +32,7 @@ class Kernel(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): - modules = os.listdir(self.sys_module) - self.add_cmd_output("modinfo " + " ".join(modules)) - except OSError: -- self.soslog.error("could not list %s" % self.sys_module) -+ self.soslog.warning("could not list %s" % self.sys_module) - - self.add_cmd_output("dmesg") - self.add_cmd_output("sysctl -a") -diff --git a/sos/plugins/sar.py b/sos/plugins/sar.py -index 570262a..1086208 100644 ---- a/sos/plugins/sar.py -+++ b/sos/plugins/sar.py -@@ -47,7 +47,7 @@ class Sar(Plugin,): - try: - dirList = os.listdir(self.sa_path) - except: -- self.soslog.error("sar: could not list /var/log/sa") -+ self.soslog.warning("sar: could not list /var/log/sa") - return - # find all the sa file that don't have an existing sar file - for fname in dirList: -diff --git a/sos/sosreport.py b/sos/sosreport.py -index 595015f..1c81af9 100644 ---- a/sos/sosreport.py -+++ b/sos/sosreport.py -@@ -772,13 +772,13 @@ class SoSReport(object): - - for plugin_class in plugin_classes: - if not self.policy.validatePlugin(plugin_class): -- self.soslog.debug(_("plugin %s does not validate, skipping") % plug) -+ self.soslog.warning(_("plugin %s does not validate, skipping") % plug) - if self.opts.verbosity > 0: - self._skip(plugin_class, _("does not validate")) - continue - - if plugin_class.requires_root and not self._is_root: -- self.soslog.debug(_("plugin %s requires root permissions to execute, skipping") % plug) -+ self.soslog.info(_("plugin %s requires root permissions to execute, skipping") % plug) - self._skip(plugin_class, _("requires root")) - continue - diff --git a/SOURCES/sos-bz1031126-fix-verbose-file-logging.patch b/SOURCES/sos-bz1031126-fix-verbose-file-logging.patch deleted file mode 100644 index 12100fe..0000000 --- a/SOURCES/sos-bz1031126-fix-verbose-file-logging.patch +++ /dev/null @@ -1,38 +0,0 @@ -commit 23cdbd97a6bd2e44d87f01d6bf90b66667c4d7be -Author: Bryn M. Reeves -Date: Mon Feb 3 12:09:57 2014 +0000 - - Fix verbose file logging - - Prior versions of sos enable debug logging to the embedded log - file (sos_logs/sos.log) when a single '-v' is given. Restore this - behaviour and ensure that command-not-found messages are reported - at 'info' rather than 'warning' level. - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/plugins/__init__.py b/sos/plugins/__init__.py -index 681299a..b4768b0 100644 ---- a/sos/plugins/__init__.py -+++ b/sos/plugins/__init__.py -@@ -482,7 +482,7 @@ class Plugin(object): - self.soslog.warning("command '%s' timed out after %ds" - % (prog, timeout)) - if status == 127: -- self.soslog.warning("could not run '%s': command not found" % prog) -+ self.soslog.info("could not run '%s': command not found" % prog) - return (status, output, runtime) - - def call_ext_prog(self, prog, timeout=300): -diff --git a/sos/sosreport.py b/sos/sosreport.py -index fb3aea7..22e0ab2 100644 ---- a/sos/sosreport.py -+++ b/sos/sosreport.py -@@ -651,6 +651,7 @@ class SoSReport(object): - flog.setLevel(logging.DEBUG) - elif self.opts.verbosity > 0: - console.setLevel(logging.INFO) -+ flog.setLevel(logging.DEBUG) - else: - console.setLevel(logging.WARNING) - self.soslog.addHandler(console) diff --git a/SOURCES/sos-bz1034865-remove-anaconda-ks-cfg-from-general.patch b/SOURCES/sos-bz1034865-remove-anaconda-ks-cfg-from-general.patch deleted file mode 100644 index 4b5c4e1..0000000 --- a/SOURCES/sos-bz1034865-remove-anaconda-ks-cfg-from-general.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 8945cfd19c3d06d6cb79774a5d070016482f6976 Mon Sep 17 00:00:00 2001 -From: "Bryn M. Reeves" -Date: Tue, 26 Nov 2013 17:33:51 +0000 -Subject: [PATCH] Do not collect anaconda-ks.cfg in general plug-in - -The anaconda kickstart file is Red Hat specific and should not -be collected in the general plugin. It may also contain plaintext -or encrypted passwords - these are handled properly in the -anaconda plugin itself but are missing from the copy in general. - -Signed-off-by: Bryn M. Reeves ---- - sos/plugins/general.py | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/sos/plugins/general.py b/sos/plugins/general.py -index d7059e6..a6964c4 100644 ---- a/sos/plugins/general.py -+++ b/sos/plugins/general.py -@@ -33,8 +33,8 @@ class General(Plugin): - "/etc/hostid", - "/var/lib/dbus/machine-id", - "/etc/exports", -- "/etc/localtime", -- "/root/anaconda-ks.cfg"]) -+ "/etc/localtime" -+ ]) - - self.add_cmd_output("hostname", root_symlink="hostname") - self.add_cmd_output("date", root_symlink="date") --- -1.7.11.7 - diff --git a/SOURCES/sos-bz1034956-log-command-timeouts.patch b/SOURCES/sos-bz1034956-log-command-timeouts.patch deleted file mode 100644 index 1790bfc..0000000 --- a/SOURCES/sos-bz1034956-log-command-timeouts.patch +++ /dev/null @@ -1,71 +0,0 @@ -commit b4c768e38289e2cd85d09a1f465b233ba676b281 -Author: Bryn M. Reeves -Date: Tue Nov 26 18:35:37 2013 +0000 - - Log a warning when external commands time out - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/plugins/__init__.py b/sos/plugins/__init__.py -index e25f035..b86351f 100644 ---- a/sos/plugins/__init__.py -+++ b/sos/plugins/__init__.py -@@ -476,12 +476,21 @@ class Plugin(object): - if filespec not in self.copy_paths: - self.copy_paths.append((filespec, sub)) - -+ def get_command_output(self, prog, timeout=300): -+ (status, output, runtime) = sos_get_command_output(prog, timeout) -+ if status == 124: -+ self.soslog.warning("command %s timed out after %ds" -+ % (prog, timeout)) -+ if status == 127: -+ self.soslog.warning("could not run '%s': command not found" % prog) -+ return (status, output, runtime) -+ - def call_ext_prog(self, prog, timeout=300): - """Execute a command independantly of the output gathering part of - sosreport. - """ - # pylint: disable-msg = W0612 -- return sos_get_command_output(prog, timeout) -+ return self.get_command_output(prog, timeout) - - def check_ext_prog(self, prog): - """Execute a command independently of the output gathering part of -@@ -541,9 +550,8 @@ class Plugin(object): - start_time = time() - - # pylint: disable-msg = W0612 -- status, shout, runtime = sos_get_command_output(exe, timeout=timeout) -+ status, shout, runtime = self.get_command_output(exe, timeout=timeout) - if (status == 127): -- self.soslog.debug("could not run '%s': command not found" % exe) - return None - - if suggest_filename: -commit 4787ffa73970048eacc576081d4e35671d0fc408 -Author: Bryn M. Reeves -Date: Tue Nov 26 18:39:43 2013 +0000 - - Make command quoting in log messages consistent - - The last commit adds a log message for commands that time out but - is inconsistent with other messages that include an external - command string. Quote the command for better readability. - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/plugins/__init__.py b/sos/plugins/__init__.py -index b86351f..681299a 100644 ---- a/sos/plugins/__init__.py -+++ b/sos/plugins/__init__.py -@@ -479,7 +479,7 @@ class Plugin(object): - def get_command_output(self, prog, timeout=300): - (status, output, runtime) = sos_get_command_output(prog, timeout) - if status == 124: -- self.soslog.warning("command %s timed out after %ds" -+ self.soslog.warning("command '%s' timed out after %ds" - % (prog, timeout)) - if status == 127: - self.soslog.warning("could not run '%s': command not found" % prog) diff --git a/SOURCES/sos-bz1034970-update-sos-ui-text.patch b/SOURCES/sos-bz1034970-update-sos-ui-text.patch deleted file mode 100644 index c85f620..0000000 --- a/SOURCES/sos-bz1034970-update-sos-ui-text.patch +++ /dev/null @@ -1,103 +0,0 @@ -commit 93ddb343c48d7158f34c0e5e8f016b2798a078e8 -Author: Bryn M. Reeves -Date: Fri Jan 24 15:42:53 2014 +0000 - - Tidy up formatting of UI preamble text - - The formatting of the template preamble used a narrow terminal - width since there is no native python method for obtaining the - actual terminal geometry and the common methods for doing this - are non-portable (e.g. Windows specific ioctls or shelling out - to stty). - - This causes the top of the message to scroll off the screen on - a standard 80x25 terminal (e.g. putty or a non-resized - gnome-terminal or xterm window). - - Remove the paragraph indentation and increase the assumed width - from 58 to 72 chars. This causes the message to fill a standard - 80x25 terminal without scrolling. - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/policies/__init__.py b/sos/policies/__init__.py -index 47ace5c..c9cfd21 100644 ---- a/sos/policies/__init__.py -+++ b/sos/policies/__init__.py -@@ -115,17 +115,21 @@ class PackageManager(object): - class Policy(object): - - msg = _("""\ --This command will collect system configuration and diagnostic information \ --from this %(distro)s system. An archive containing the collected information \ --will be generated in %(tmpdir)s. -+This command will collect diagnostic and configuration \ -+information from this %(distro)s system and installed \ -+applications. - --For more information on %(vendor)s visit: -+An archive containing the collected information will be \ -+generated in %(tmpdir)s and may be provided to a %(vendor)s \ -+support representative. - -+Any information provided to %(vendor)s will be treated in \ -+accordance with the published support policies at:\n - %(vendor_url)s - --The generated archive may contain data considered sensitive and its content \ --should be reviewed by the originating organization before being passed to \ --any third party. -+The generated archive may contain data considered sensitive \ -+and its content should be reviewed by the originating \ -+organization before being passed to any third party. - - No changes will be made to system configuration. - %(vendor_text)s -@@ -296,14 +300,14 @@ No changes will be made to system configuration. - the user in non-batch mode. If your policy sets self.distro that - text will be substituted accordingly. You can also override this - method to do something more complicated.""" -- width = 58 -+ width = 72 - _msg = self.msg % {'distro': self.distro, 'vendor': self.vendor, - 'vendor_url': self.vendor_url, - 'vendor_text': self.vendor_text, - 'tmpdir': self.commons['tmpdir']} - _fmt = "" - for line in _msg.splitlines(): -- _fmt = _fmt + fill(" " + line, width, replace_whitespace = False) + '\n' -+ _fmt = _fmt + fill(line, width, replace_whitespace = False) + '\n' - return _fmt - - -diff --git a/sos/policies/redhat.py b/sos/policies/redhat.py -index 9321815..5b3a446 100644 ---- a/sos/policies/redhat.py -+++ b/sos/policies/redhat.py -@@ -91,26 +91,6 @@ class RedHatPolicy(LinuxPolicy): - return self.host_name() - - class RHELPolicy(RedHatPolicy): -- -- msg = _("""\ --This command will collect system configuration and diagnostic information \ --from this %(distro)s system. An archive containing the collected information \ --will be generated in %(tmpdir)s and may be provided to a %(vendor)s support \ --representative or used for local diagnostic or recording purposes. -- --Any information provided to %(vendor)s will be treated in strict confidence \ --in accordance with the published support policies at: -- -- %(vendor_url)s -- --The generated archive may contain data considered sensitive and its content \ --should be reviewed by the originating organization before being passed to \ --any third party. -- --No changes will be made to system configuration. --%(vendor_text)s --""") -- - distro = "Red Hat Enterprise Linux" - vendor = "Red Hat" - vendor_url = "https://access.redhat.com/support/" diff --git a/SOURCES/sos-bz1036752-fix-gluster-volume-name-extraction.patch b/SOURCES/sos-bz1036752-fix-gluster-volume-name-extraction.patch deleted file mode 100644 index 288f8e0..0000000 --- a/SOURCES/sos-bz1036752-fix-gluster-volume-name-extraction.patch +++ /dev/null @@ -1,26 +0,0 @@ -commit 8447dec1831feb4d93bf8d300880f87765efb1c8 -Author: Bryn M. Reeves -Date: Mon Feb 10 15:07:36 2014 +0000 - - Fix gluster volume name extraction - - The get_volume_names() function in the gluster plugin tries to - extract volume names from the output of the "gluster volume info" - command using a slice range. The range start should be 12 to - account for the "Volume Name:" label at the start of the line. - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/plugins/gluster.py b/sos/plugins/gluster.py -index 02dbac3..4286b59 100644 ---- a/sos/plugins/gluster.py -+++ b/sos/plugins/gluster.py -@@ -39,7 +39,7 @@ class Gluster(Plugin, RedHatPlugin): - for line in fp.readlines(): - if not line.startswith("Volume Name:"): - continue -- volname = line[14:-1] -+ volname = line[12:-1] - out.append(volname) - fp.close() - return out diff --git a/SOURCES/sos-bz1036752-gluster-include-geo-replication.patch b/SOURCES/sos-bz1036752-gluster-include-geo-replication.patch deleted file mode 100644 index 3ae6a15..0000000 --- a/SOURCES/sos-bz1036752-gluster-include-geo-replication.patch +++ /dev/null @@ -1,70 +0,0 @@ -From e05bfa7444cacc91972dfbf766f0a9495a7715fb Mon Sep 17 00:00:00 2001 -From: "Bryn M. Reeves" -Date: Mon, 3 Feb 2014 14:36:46 +0000 -Subject: [PATCH 1/2] Make get_cmd_output_now() behaviour match 2.2 - -The equivalent method in sos-2.2, collectOutputNow() returned an -absolute path to the collected file. Since the archive changes in -3.0 this now returns a path relative to the root of the archive. - -This breaks existing users of the interface that try to open and -process the content of the collected file (e.g. gluster). - -Return a join of the archive path and file path to the caller. - -Signed-off-by: Bryn M. Reeves ---- - sos/plugins/__init__.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/sos/plugins/__init__.py b/sos/plugins/__init__.py -index b4768b0..4a72161 100644 ---- a/sos/plugins/__init__.py -+++ b/sos/plugins/__init__.py -@@ -572,7 +572,7 @@ class Plugin(object): - time_passed = time() - start_time - self.proflog.debug("output: %-75s time: %f" % (exe, time_passed)) - -- return outfn -+ return os.path.join(self.archive.get_archive_path(), outfn) - - # For adding output - def add_alert(self, alertstring): --- -1.7.11.7 - - -From febb52040123293b9de01bc86c4f5c485e3bfc77 Mon Sep 17 00:00:00 2001 -From: "Bryn M. Reeves" -Date: Mon, 3 Feb 2014 15:17:55 +0000 -Subject: [PATCH 2/2] Include geo-replication status in gluster plugin - -Add the output of 'gluster volume geo-replication status' for -each discovered gluster volume to the report. - -Signed-off-by: Bryn M. Reeves ---- - sos/plugins/gluster.py | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/sos/plugins/gluster.py b/sos/plugins/gluster.py -index 7c54fa0..02dbac3 100644 ---- a/sos/plugins/gluster.py -+++ b/sos/plugins/gluster.py -@@ -102,6 +102,13 @@ class Gluster(Plugin, RedHatPlugin): - self.add_copy_spec('/tmp/glusterdump.options') - self.add_copy_spec(self.statedump_dir) - -+ volume_file = self.get_cmd_output_now("gluster volume info", -+ "gluster_volume_info") -+ if volume_file: -+ for volname in self.get_volume_names(volume_file): -+ self.add_cmd_output("gluster volume geo-replication %s status" -+ % volname) -+ - self.add_cmd_output("gluster volume status") - # collect this last as some of the other actions create log entries - self.add_copy_spec("/var/log/glusterfs") --- -1.7.11.7 - diff --git a/SOURCES/sos-bz1039036-add-rhsm-debug-to-yum.patch b/SOURCES/sos-bz1039036-add-rhsm-debug-to-yum.patch deleted file mode 100644 index 43335a6..0000000 --- a/SOURCES/sos-bz1039036-add-rhsm-debug-to-yum.patch +++ /dev/null @@ -1,21 +0,0 @@ -commit eaa0d9442972a38635967d855c57bbfbe6ba7023 -Author: Bryn M. Reeves -Date: Mon Feb 3 13:03:04 2014 +0000 - - Add rhsm-debug collection to yum plugin - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/plugins/yum.py b/sos/plugins/yum.py -index 867302c..a9ae4e4 100644 ---- a/sos/plugins/yum.py -+++ b/sos/plugins/yum.py -@@ -48,6 +48,8 @@ class Yum(Plugin, RedHatPlugin): - "/var/log/rhsm/rhsmcertd.log"]) - self.add_cmd_output("subscription-manager list --installed") - self.add_cmd_output("subscription-manager list --consumed") -+ self.add_cmd_output("rhsm-debug system --destination %s" -+ % self.get_cmd_dir()) - - if self.get_option("yumlist"): - # List various information about available packages diff --git a/SOURCES/sos-bz1039036-call-rhsm-debug-with-sos.patch b/SOURCES/sos-bz1039036-call-rhsm-debug-with-sos.patch deleted file mode 100644 index 5b221aa..0000000 --- a/SOURCES/sos-bz1039036-call-rhsm-debug-with-sos.patch +++ /dev/null @@ -1,23 +0,0 @@ -commit 23f9f34afc7f87bf72683909ca947a82b50cad4e -Author: Bryn M. Reeves -Date: Thu Mar 20 18:56:58 2014 +0000 - - Call rhsm-debug with the --sos switch - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/plugins/yum.py b/sos/plugins/yum.py -index 81788f1..9953a50 100644 ---- a/sos/plugins/yum.py -+++ b/sos/plugins/yum.py -@@ -48,8 +48,8 @@ class Yum(Plugin, RedHatPlugin): - "/var/log/rhsm/rhsmcertd.log"]) - self.add_cmd_output("subscription-manager list --installed") - self.add_cmd_output("subscription-manager list --consumed") -- self.add_cmd_output("rhsm-debug system --no-archive --destination %s" -- % self.get_cmd_dir()) -+ self.add_cmd_output("rhsm-debug system --sos --no-archive --destination %s" -+ % self.get_cmd_dir()) - - if self.get_option("yumlist"): - # List various information about available packages diff --git a/SOURCES/sos-bz1039036-pass-no-archive-to-rhsm-debug.patch b/SOURCES/sos-bz1039036-pass-no-archive-to-rhsm-debug.patch deleted file mode 100644 index 363d3f8..0000000 --- a/SOURCES/sos-bz1039036-pass-no-archive-to-rhsm-debug.patch +++ /dev/null @@ -1,26 +0,0 @@ -commit d5cbe4470b7bd6019b20e8c9d1de478fac622aad -Author: Bryn M. Reeves -Date: Tue Feb 4 15:43:56 2014 +0000 - - Pass --no-archive to rhsm-debug script - - Versions of subscription-manager since 1.10.11-2.el7 support the - --no-archive option to disable creation of a zip archive. Pass - this to the script to have the output stored in a directory in - the archive. - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/plugins/yum.py b/sos/plugins/yum.py -index a9ae4e4..81788f1 100644 ---- a/sos/plugins/yum.py -+++ b/sos/plugins/yum.py -@@ -48,7 +48,7 @@ class Yum(Plugin, RedHatPlugin): - "/var/log/rhsm/rhsmcertd.log"]) - self.add_cmd_output("subscription-manager list --installed") - self.add_cmd_output("subscription-manager list --consumed") -- self.add_cmd_output("rhsm-debug system --destination %s" -+ self.add_cmd_output("rhsm-debug system --no-archive --destination %s" - % self.get_cmd_dir()) - - if self.get_option("yumlist"): diff --git a/SOURCES/sos-bz1051009-fix-fd-leaks-on-popen.patch b/SOURCES/sos-bz1051009-fix-fd-leaks-on-popen.patch deleted file mode 100644 index 232a181..0000000 --- a/SOURCES/sos-bz1051009-fix-fd-leaks-on-popen.patch +++ /dev/null @@ -1,74 +0,0 @@ -commit 4f7231a897fb65aaf6ec7f079784ff9d3da44266 -Author: Bryn M. Reeves -Date: Tue Feb 4 11:37:15 2014 +0000 - - Ensure unused fds are closed when calling subprocesses via Popen - - When sos communicates with a child process using Popen all IO - takes place on stdin/stdout/stderr (or a subset). No other open - file descriptors should be inherited by the child. - - Make all calls to Popen set close_fds=True. - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/archive.py b/sos/archive.py -index 28bf197..67270db 100644 ---- a/sos/archive.py -+++ b/sos/archive.py -@@ -250,8 +250,12 @@ class TarFileArchive(FileCacheArchive): - if cmd != "gzip": - cmd = "%s -1" % cmd - try: -- command = shlex.split("%s %s" % (cmd,self.name())) -- p = Popen(command, stdout=PIPE, stderr=PIPE, bufsize=-1) -+ command = shlex.split("%s %s" % (cmd, self.name())) -+ p = Popen(command, -+ stdout=PIPE, -+ stderr=PIPE, -+ bufsize=-1, -+ close_fds=True) - stdout, stderr = p.communicate() - if stdout: - log.info(stdout) -diff --git a/sos/plugins/emc.py b/sos/plugins/emc.py -index 89d0734..f73bccd 100644 ---- a/sos/plugins/emc.py -+++ b/sos/plugins/emc.py -@@ -196,7 +196,8 @@ class Emc(Plugin, RedHatPlugin): - while CLARiiON_IP_loop == "stay_in": - ans = raw_input("CLARiiON SP IP Address or [Enter] to exit: ") - ## Check to make sure the CLARiiON SP IP address provided is valid -- p = Popen("navicli -h %s getsptime" % (ans,), shell=True, stdout=PIPE, stderr=PIPE) -+ p = Popen("navicli -h %s getsptime" % (ans,), -+ shell=True, stdout=PIPE, stderr=PIPE, close_fds=True) - out, err = p.communicate() - if p.returncode == 0: - CLARiiON_IP_address_list.append(ans) -diff --git a/sos/policies/redhat.py b/sos/policies/redhat.py -index 5b3a446..4e5b363 100644 ---- a/sos/policies/redhat.py -+++ b/sos/policies/redhat.py -@@ -68,7 +68,8 @@ class RedHatPolicy(LinuxPolicy): - shell=True, - stdout=PIPE, - stderr=PIPE, -- bufsize=-1) -+ bufsize=-1, -+ close_fds=True) - out, err = p.communicate() - if err: - return ret -diff --git a/sos/utilities.py b/sos/utilities.py -index fcc78c5..f1728fd 100644 ---- a/sos/utilities.py -+++ b/sos/utilities.py -@@ -159,7 +159,7 @@ def sos_get_command_output(command, timeout=300): - - p = Popen(command, shell=True, - stdout=PIPE, stderr=STDOUT, -- bufsize=-1, env = cmd_env) -+ bufsize=-1, env = cmd_env, close_fds = True) - stdout, stderr = p.communicate() - return (p.returncode, stdout, 0) - else: diff --git a/SOURCES/sos-bz1059760-add-distupgrade-plugin.patch b/SOURCES/sos-bz1059760-add-distupgrade-plugin.patch deleted file mode 100644 index f65a14c..0000000 --- a/SOURCES/sos-bz1059760-add-distupgrade-plugin.patch +++ /dev/null @@ -1,59 +0,0 @@ -commit 19b479bb0686ff1079300f417505503f8ba8f3d5 -Author: Bryn M. Reeves -Date: Mon Feb 10 15:27:24 2014 +0000 - - Add distupgrade plugin - - Add a new plugin to collect data relating to completed or - attempted distribution upgrades. Currently supports the Red Hat - set of tools and files but other distributions can supply their - own filelists or override setup() to perform other distribution - specific actions. - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/plugins/distupgrade.py b/sos/plugins/distupgrade.py -new file mode 100644 -index 0000000..b45d099 ---- /dev/null -+++ b/sos/plugins/distupgrade.py -@@ -0,0 +1,39 @@ -+## Copyright (C) 2014 Red Hat, Inc., Bryn M. Reeves -+ -+### 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., 675 Mass Ave, Cambridge, MA 02139, USA. -+ -+import os -+from sos.plugins import Plugin, RedHatPlugin -+ -+class DistUpgrade(Plugin): -+ """ Distribution upgrade data """ -+ -+ plugin_name = "distupgrade" -+ -+ files = None -+ -+ def setup(self): -+ self.add_copy_specs(list(self.files)) -+ -+class RedHatDistUpgrade(DistUpgrade, RedHatPlugin): -+ -+ files = ( -+ "/var/log/upgrade.log", -+ "/var/log/redhat_update_tool.log", -+ "/root/preupgrade/all-xccdf*", -+ "/root/preupgrade/kickstart" -+ ) -+ -+ diff --git a/SOURCES/sos-bz1067769-fix-anacron-checks.patch b/SOURCES/sos-bz1067769-fix-anacron-checks.patch deleted file mode 100644 index f76b94d..0000000 --- a/SOURCES/sos-bz1067769-fix-anacron-checks.patch +++ /dev/null @@ -1,28 +0,0 @@ -commit 4b20ae8823032918df1f1aee1c2b649d8c316f35 -Author: Bryn M. Reeves -Date: Mon Mar 3 13:56:23 2014 +0000 - - Replace package check with file check in anacron - - The anacron facility may be provided by packages named 'anacron', - 'chronie-anacron' etc. They all use a common /etc/anacrontab file - so check for this instead. - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/plugins/anacron.py b/sos/plugins/anacron.py -index 04b0dcb..b337c18 100644 ---- a/sos/plugins/anacron.py -+++ b/sos/plugins/anacron.py -@@ -20,7 +20,9 @@ class Anacron(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): - - plugin_name = 'anacron' - -- packages = ('anacron',) -+ # anacron may be provided by anacron, cronie-anacron etc. -+ # just look for the configuration file which is common -+ files = ('/etc/anacrontab',) - - def setup(self): -- self.add_copy_spec("/etc/anacrontab") -+ self.add_copy_specs(list(self.files)) diff --git a/SOURCES/sos-bz1087515-corosync-add-postprocessing-for-corosync-objctl.patch b/SOURCES/sos-bz1087515-corosync-add-postprocessing-for-corosync-objctl.patch new file mode 100644 index 0000000..f76548b --- /dev/null +++ b/SOURCES/sos-bz1087515-corosync-add-postprocessing-for-corosync-objctl.patch @@ -0,0 +1,35 @@ +From 77ea53cf7c13c59c2a1f4608d59e1b9e8f4da835 Mon Sep 17 00:00:00 2001 +From: "Bryn M. Reeves" +Date: Wed, 15 Oct 2014 15:57:47 +0100 +Subject: [PATCH] [corosync] add postprocessing for corosync-objctl output + +The corosync-objctl command may include fence device passwords in +its output. Remove them with the same postprocessing regex as the +cluster plugin uses. + +Signed-off-by: Bryn M. Reeves +--- + sos/plugins/corosync.py | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/sos/plugins/corosync.py b/sos/plugins/corosync.py +index 2cd22c3..db9b547 100644 +--- a/sos/plugins/corosync.py ++++ b/sos/plugins/corosync.py +@@ -40,6 +40,13 @@ class Corosync(Plugin): + ]) + self.call_ext_prog("killall -USR2 corosync") + ++ def postproc(self): ++ self.do_cmd_output_sub( ++ "corosync-objctl", ++ r"(.*fence.*\.passwd=)(.*)", ++ r"\1******" ++ ) ++ + + class RedHatCorosync(Corosync, RedHatPlugin): + +-- +1.9.3 + diff --git a/SOURCES/sos-bz1087977-sosreport-catch-oserror-in-execute.patch b/SOURCES/sos-bz1087977-sosreport-catch-oserror-in-execute.patch new file mode 100644 index 0000000..a516793 --- /dev/null +++ b/SOURCES/sos-bz1087977-sosreport-catch-oserror-in-execute.patch @@ -0,0 +1,71 @@ +From 95bb5df9eda253afed15fa81340d31e03c40fe94 Mon Sep 17 00:00:00 2001 +From: "Bryn M. Reeves" +Date: Tue, 13 Jan 2015 17:10:06 +0000 +Subject: [PATCH] [sosreport] catch OSError exceptions in SoSReport.execute() + +OSError exceptions during logging setup and tear down are not +currently handled: + + Traceback (most recent call last): + File "/usr/sbin/sosreport", line 25, in + main(sys.argv[1:]) + File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 1409, in main + sos.execute() + File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 1366, in execute + self._setup_logging() + File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 739, in _setup_logging + self.sos_log_file = self.get_temp_file() + File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 670, in get_temp_file + return self.tempfile_util.new() + File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 82, in new + fd, fname = tempfile.mkstemp(dir=self.tmp_dir) + File "/usr/lib64/python2.7/tempfile.py", line 304, in mkstemp + return _mkstemp_inner(dir, prefix, suffix, flags) + File "/usr/lib64/python2.7/tempfile.py", line 239, in _mkstemp_inner + fd = _os.open(file, flags, 0600) + OSError: [Errno 28] No space left on device: '/tmp/tmp.4ejNitjwcr/nospace_tmp/tmpBjPTOm' + +Address this by adding OSError to the list of caught exceptions +in the main SoSReport.execute() method. Wrap the exception branch +clean up in a try/except block to catch additional exceptions +while attempting to clean up (e.g. unlink failures following an +EROFS on the temporary archive path). + +Signed-off-by: Bryn M. Reeves +--- + sos/sosreport.py | 19 +++++++++++++------ + 1 file changed, 13 insertions(+), 6 deletions(-) + +diff --git a/sos/sosreport.py b/sos/sosreport.py +index 0dd26ad..2a16555 100644 +--- a/sos/sosreport.py ++++ b/sos/sosreport.py +@@ -1395,12 +1395,19 @@ class SoSReport(object): + self.version() + + return self.final_work() +- except (SystemExit, KeyboardInterrupt): +- if self.archive: +- self.archive.cleanup() +- if self.tempfile_util: +- self.tempfile_util.clean() +- return False ++ ++ except (OSError, SystemExit, KeyboardInterrupt): ++ try: ++ # archive and tempfile cleanup may fail due to a fatal ++ # OSError exception (ENOSPC, EROFS etc.). ++ if self.archive: ++ self.archive.cleanup() ++ if self.tempfile_util: ++ self.tempfile_util.clean() ++ except: ++ pass ++ ++ return False + + + def main(args): +-- +1.9.3 + diff --git a/SOURCES/sos-bz1087977-sosreport-do-not-make-logging-calls-after-oserror.patch b/SOURCES/sos-bz1087977-sosreport-do-not-make-logging-calls-after-oserror.patch new file mode 100644 index 0000000..6a3b057 --- /dev/null +++ b/SOURCES/sos-bz1087977-sosreport-do-not-make-logging-calls-after-oserror.patch @@ -0,0 +1,41 @@ +From ed44939d5988098feb3f3ddededd68a0a4b9a9df Mon Sep 17 00:00:00 2001 +From: "Bryn M. Reeves" +Date: Tue, 13 Jan 2015 17:26:33 +0000 +Subject: [PATCH] [sosreport] do not make logging calls after OSError + +Following an OSError during archive setup the logging subsystem +is potentially in an inconsistent or unusable state (e.g. due to +a readonly file system error). + +Use the print function directly since we just need to report the +error and exit. + +Signed-off-by: Bryn M. Reeves +--- + sos/sosreport.py | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +diff --git a/sos/sosreport.py b/sos/sosreport.py +index 2a16555..3c0397c 100644 +--- a/sos/sosreport.py ++++ b/sos/sosreport.py +@@ -1091,10 +1091,13 @@ class SoSReport(object): + self._make_archive_paths() + return + except (OSError, IOError) as e: ++ # we must not use the logging subsystem here as it is potentially ++ # in an inconsistent or unreliable state (e.g. an EROFS for the ++ # file system containing our temporary log files). + if e.errno in fatal_fs_errors: +- self.ui_log.error("") +- self.ui_log.error(" %s while setting up archive" % e.strerror) +- self.ui_log.error("") ++ print("") ++ print(" %s while setting up archive" % e.strerror) ++ print("") + else: + raise e + except Exception as e: +-- +1.9.3 + diff --git a/SOURCES/sos-bz1110918-fix-kpatch-force-enabled.patch b/SOURCES/sos-bz1110918-fix-kpatch-force-enabled.patch new file mode 100644 index 0000000..aa8ef94 --- /dev/null +++ b/SOURCES/sos-bz1110918-fix-kpatch-force-enabled.patch @@ -0,0 +1,33 @@ +From 6b43c42078604b0551923c2801108848e97ba3b9 Mon Sep 17 00:00:00 2001 +From: "Bryn M. Reeves" +Date: Tue, 14 Oct 2014 15:43:20 +0100 +Subject: [PATCH] [kpatch] do not try to read kpatch data if it could not be + run + +Everything the kpatch plugin does requires the list of available +kpatch patches obtained from 'kpatch list'. If this fails return +immediately from the setup method. + +Fixes #417. + +Signed-off-by: Bryn M. Reeves +--- + sos/plugins/kpatch.py | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/sos/plugins/kpatch.py b/sos/plugins/kpatch.py +index 7909926..6ef557e 100644 +--- a/sos/plugins/kpatch.py ++++ b/sos/plugins/kpatch.py +@@ -27,6 +27,8 @@ class Kpatch(Plugin, RedHatPlugin): + + def setup(self): + kpatch_list = self.get_cmd_output_now("kpatch list") ++ if not kpatch_list: ++ return + kpatches = open(kpatch_list, "r").read().splitlines() + for patch in kpatches: + if not re.match("^kpatch-.*\(.*\)", patch): +-- +1.9.3 + diff --git a/SOURCES/sos-bz1112175-anaconda-make-useradd-password-regex-tolerant.patch b/SOURCES/sos-bz1112175-anaconda-make-useradd-password-regex-tolerant.patch new file mode 100644 index 0000000..e7b5f5e --- /dev/null +++ b/SOURCES/sos-bz1112175-anaconda-make-useradd-password-regex-tolerant.patch @@ -0,0 +1,26 @@ +From 5a97e0e2571b948f1f7bc602e6f190976de99eee Mon Sep 17 00:00:00 2001 +From: "Bryn M. Reeves" +Date: Tue, 13 Jan 2015 16:31:58 +0000 +Subject: [PATCH] [anaconda] make useradd password regex tolerant of whitespace + +Signed-off-by: Bryn M. Reeves +--- + sos/plugins/anaconda.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/sos/plugins/anaconda.py b/sos/plugins/anaconda.py +index 08d300b..aea3300 100644 +--- a/sos/plugins/anaconda.py ++++ b/sos/plugins/anaconda.py +@@ -54,7 +54,7 @@ class Anaconda(Plugin, RedHatPlugin): + ) + self.do_file_sub( + "/root/anaconda-ks.cfg", +- r"(user.*--password=*)(\S*)", ++ r"(user.*--password=*\s*)\s*(\S*)", + r"\1********" + ) + +-- +1.9.3 + diff --git a/SOURCES/sos-bz1116349-call-rhsm-debug-with-no-subscriptions.patch b/SOURCES/sos-bz1116349-call-rhsm-debug-with-no-subscriptions.patch new file mode 100644 index 0000000..4e97a53 --- /dev/null +++ b/SOURCES/sos-bz1116349-call-rhsm-debug-with-no-subscriptions.patch @@ -0,0 +1,26 @@ +From e8428d458cfd65bdc34d69f32db0bf4f5aca7540 Mon Sep 17 00:00:00 2001 +From: "Bryn M. Reeves" +Date: Thu, 2 Oct 2014 17:16:55 +0100 +Subject: [PATCH] [yum] call rhsm-debug with --no-subscriptions + +Signed-off-by: Bryn M. Reeves +--- + sos/plugins/yum.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/sos/plugins/yum.py b/sos/plugins/yum.py +index 7dac5e4..816e2b0 100644 +--- a/sos/plugins/yum.py ++++ b/sos/plugins/yum.py +@@ -54,7 +54,7 @@ class Yum(Plugin, RedHatPlugin): + "subscription-manager list --consumed" + ]) + self.add_cmd_output("rhsm-debug system --sos --no-archive " +- "--destination %s" ++ "--no-subscriptions --destination %s" + % self.get_cmd_output_path()) + + if self.get_option("yumlist"): +-- +1.9.3 + diff --git a/SOURCES/sos-bz1118152-disable-the-zip-compression-type.patch b/SOURCES/sos-bz1118152-disable-the-zip-compression-type.patch new file mode 100644 index 0000000..7d3dfd7 --- /dev/null +++ b/SOURCES/sos-bz1118152-disable-the-zip-compression-type.patch @@ -0,0 +1,60 @@ +From 081e1ce9f9ad7570d057babd81b474fd407149d7 Mon Sep 17 00:00:00 2001 +From: "Bryn M. Reeves" +Date: Tue, 9 Dec 2014 17:32:45 +0000 +Subject: [PATCH] [sosreport] disable the 'zip' compression type + +The Zip archive format is little used and has been broken for +some time: + + Unexpected exception setting up archive: + Traceback (most recent call last): + File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 1092, in prework + self._set_archive() + File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 679, in _set_archive + self.archive = ZipFileArchive(archive_name, self.tmpdir) + TypeError: __init__() takes exactly 2 arguments (3 given) + __init__() takes exactly 2 arguments (3 given) + +Remove it from the allowed options list for --compression-type. + +The supporting Archive classes can be removed in a separate commit. + +Signed-off-by: Bryn M. Reeves +--- + sos/sosreport.py | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +diff --git a/sos/sosreport.py b/sos/sosreport.py +index 99b5f47..a697380 100644 +--- a/sos/sosreport.py ++++ b/sos/sosreport.py +@@ -599,7 +599,7 @@ class SoSOptions(object): + dest="report", + help="Disable HTML/XML reporting", default=False) + parser.add_option("-z", "--compression-type", dest="compression_type", +- help="compression technology to use [auto, zip, " ++ help="compression technology to use [auto, " + "gzip, bzip2, xz] (default=auto)", + default="auto") + +@@ -675,8 +675,6 @@ class SoSReport(object): + if self.opts.compression_type == 'auto': + auto_archive = self.policy.get_preferred_archive() + self.archive = auto_archive(archive_name, self.tmpdir) +- elif self.opts.compression_type == 'zip': +- self.archive = ZipFileArchive(archive_name, self.tmpdir) + else: + self.archive = TarFileArchive(archive_name, self.tmpdir) + self.archive.set_debug(True if self.opts.debug else False) +@@ -1080,7 +1078,7 @@ class SoSReport(object): + self.policy.pre_work() + try: + self.ui_log.info(_(" Setting up archive ...")) +- compression_methods = ('auto', 'zip', 'bzip2', 'gzip', 'xz') ++ compression_methods = ('auto', 'bzip2', 'gzip', 'xz') + method = self.opts.compression_type + if method not in compression_methods: + compression_list = ', '.join(compression_methods) +-- +1.9.3 + diff --git a/SOURCES/sos-bz1126001-mysql-fix-command-line-dbpass-handling.patch b/SOURCES/sos-bz1126001-mysql-fix-command-line-dbpass-handling.patch new file mode 100644 index 0000000..1cfa94e --- /dev/null +++ b/SOURCES/sos-bz1126001-mysql-fix-command-line-dbpass-handling.patch @@ -0,0 +1,39 @@ +From db9ac3fb615b731be87b4116a8939105bf5ced56 Mon Sep 17 00:00:00 2001 +From: "Bryn M. Reeves" +Date: Tue, 23 Dec 2014 14:40:50 +0000 +Subject: [PATCH] [mysql] fix command-line dbpass handling + +The logic for chosing between a command-line and environment +variable passed password in the MySQL plugin was incorrect. This +prevents a database dump from being collected when a password is +given on the command line. + +Altough use of the command line to pass authentication tokens +is discouraged we should ensure the case works. + +Fixes #456. + +Signed-off-by: Bryn M. Reeves +--- + sos/plugins/mysql.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/sos/plugins/mysql.py b/sos/plugins/mysql.py +index d148472..edab6d0 100644 +--- a/sos/plugins/mysql.py ++++ b/sos/plugins/mysql.py +@@ -45,9 +45,9 @@ class Mysql(Plugin): + if self.get_option("dbdump"): + dbuser = self.get_option("dbuser") + dbpass = self.get_option("dbpass") +- if dbpass is False and 'MYSQL_PWD' in os.environ: ++ if 'MYSQL_PWD' in os.environ: + dbpass = os.environ['MYSQL_PWD'] +- else: ++ if not dbpass or dbpass is False: + # no MySQL password + return + os.environ['MYSQL_PWD'] = dbpass +-- +1.9.3 + diff --git a/SOURCES/sos-bz1126001-obtain-mysql-password-from-env.patch b/SOURCES/sos-bz1126001-obtain-mysql-password-from-env.patch new file mode 100644 index 0000000..fcd3980 --- /dev/null +++ b/SOURCES/sos-bz1126001-obtain-mysql-password-from-env.patch @@ -0,0 +1,89 @@ +From 3d4cf0365d520be81abfe3435fa9a8a56a933961 Mon Sep 17 00:00:00 2001 +From: "Bryn M. Reeves" +Date: Mon, 20 Oct 2014 09:31:32 +0100 +Subject: [PATCH 1/2] [mysql] obtain dbpass from the environment + +Signed-off-by: Bryn M. Reeves +--- + sos/plugins/mysql.py | 13 ++++++++++--- + 1 file changed, 10 insertions(+), 3 deletions(-) + +diff --git a/sos/plugins/mysql.py b/sos/plugins/mysql.py +index 8bc6e72..1203f5c 100644 +--- a/sos/plugins/mysql.py ++++ b/sos/plugins/mysql.py +@@ -13,7 +13,7 @@ + # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin +- ++import os + + class Mysql(Plugin): + """MySQL and MariaDB RDBMS +@@ -25,7 +25,7 @@ class Mysql(Plugin): + + option_list = [ + ("dbuser", "username for database dumps", "", "mysql"), +- ("dbpass", "password for database dumps", "", ""), ++ ("dbpass", "password for database dumps", "", False), + ("dbdump", "collect a database dump", "", False) + ] + +@@ -44,7 +44,14 @@ class Mysql(Plugin): + if self.get_option("dbdump"): + dbuser = self.get_option("dbuser") + dbpass = self.get_option("dbpass") +- opts = "--user=%s --password=%s --all-databases" % (dbuser, dbpass) ++ if dbpass == False and 'MYSQL_PWD' in os.environ: ++ dbpass = os.environ['MYSQL_PWD'] ++ else: ++ # no MySQL password ++ return ++ os.environ['MYSQL_PWD'] = dbpass ++ ++ opts = "--user=%s --all-databases" % dbuser + name = "mysqldump_--all-databases" + self.add_cmd_output("mysqldump %s" % opts, suggest_filename=name) + +-- +1.9.3 + + +From 6ce502113f550c027424fa477edc091283c32e50 Mon Sep 17 00:00:00 2001 +From: "Bryn M. Reeves" +Date: Mon, 20 Oct 2014 14:33:57 +0100 +Subject: [PATCH 2/2] [mysql] fix pep8 violations + +The previous commit had a couple of pep8 errors that were fixed +in the working tree but not added to the commit; fix them. + +Signed-off-by: Bryn M. Reeves +--- + sos/plugins/mysql.py | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/sos/plugins/mysql.py b/sos/plugins/mysql.py +index 1203f5c..d148472 100644 +--- a/sos/plugins/mysql.py ++++ b/sos/plugins/mysql.py +@@ -15,6 +15,7 @@ + from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin + import os + ++ + class Mysql(Plugin): + """MySQL and MariaDB RDBMS + """ +@@ -44,7 +45,7 @@ class Mysql(Plugin): + if self.get_option("dbdump"): + dbuser = self.get_option("dbuser") + dbpass = self.get_option("dbpass") +- if dbpass == False and 'MYSQL_PWD' in os.environ: ++ if dbpass is False and 'MYSQL_PWD' in os.environ: + dbpass = os.environ['MYSQL_PWD'] + else: + # no MySQL password +-- +1.9.3 + diff --git a/SOURCES/sos-bz1139339-foreman-add-plugin.patch b/SOURCES/sos-bz1139339-foreman-add-plugin.patch deleted file mode 100644 index 235a88e..0000000 --- a/SOURCES/sos-bz1139339-foreman-add-plugin.patch +++ /dev/null @@ -1,36 +0,0 @@ -diff -up sos-3.0/sos/plugins/foreman.py.orig sos-3.0/sos/plugins/foreman.py ---- sos-3.0/sos/plugins/foreman.py.orig 2014-10-03 17:17:51.218891639 +0100 -+++ sos-3.0/sos/plugins/foreman.py 2014-10-03 17:17:30.861758765 +0100 -@@ -0,0 +1,32 @@ -+# Copyright (C) 2013 Red Hat, Inc., Lukas Zapletal -+ -+# 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., 675 Mass Ave, Cambridge, MA 02139, USA. -+ -+from sos.plugins import Plugin, RedHatPlugin -+import os -+ -+class Foreman(Plugin, RedHatPlugin): -+ """Foreman systems management -+ """ -+ -+ plugin_name = 'foreman' -+ packages = ('foreman') -+ -+ def setup(self): -+ cmd = "foreman-debug" -+ path = os.path.join(self.get_cmd_dir(), "foreman-debug") -+ self.add_cmd_output("%s -q -a -d %s" % (cmd, path)) -+ -+# vim: et ts=4 sw=4 diff --git a/SOURCES/sos-bz1140427-powerpc-allow-powerpc-plugin-to-run-on-ppc64le.patch b/SOURCES/sos-bz1140427-powerpc-allow-powerpc-plugin-to-run-on-ppc64le.patch new file mode 100644 index 0000000..4bf9824 --- /dev/null +++ b/SOURCES/sos-bz1140427-powerpc-allow-powerpc-plugin-to-run-on-ppc64le.patch @@ -0,0 +1,31 @@ +From 988fee7e6d0c2c91cf1f2c9363d4e3cea7244163 Mon Sep 17 00:00:00 2001 +From: "Bryn M. Reeves" +Date: Thu, 2 Oct 2014 17:25:17 +0100 +Subject: [PATCH] [powerpc] allow PowerPC plugin to run on ppc64le + +The plugin currently tests whether policy().get_arch() is equal +to "ppc64". On little endian PowerPC machines this method returns +"ppc64le". Change the check_enabled() method to test whether the +returned string contains "ppc64". + +Signed-off-by: Bryn M. Reeves +--- + sos/plugins/powerpc.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/sos/plugins/powerpc.py b/sos/plugins/powerpc.py +index 896d1d4..39b52f6 100644 +--- a/sos/plugins/powerpc.py ++++ b/sos/plugins/powerpc.py +@@ -27,7 +27,7 @@ class PowerPC(Plugin, RedHatPlugin, UbuntuPlugin, DebianPlugin): + profiles = ('system', 'hardware') + + def check_enabled(self): +- return (self.policy().get_arch() == "ppc64") ++ return "ppc64" in self.policy().get_arch() + + def setup(self): + try: +-- +1.9.3 + diff --git a/SOURCES/sos-bz1148375-add-support-for-tomcat7.patch b/SOURCES/sos-bz1148375-add-support-for-tomcat7.patch new file mode 100644 index 0000000..372e887 --- /dev/null +++ b/SOURCES/sos-bz1148375-add-support-for-tomcat7.patch @@ -0,0 +1,48 @@ +From 874cc7d0889adf32b8c36bb218212d3304d43d5b Mon Sep 17 00:00:00 2001 +From: "Bryn M. Reeves" +Date: Mon, 20 Oct 2014 09:13:07 +0100 +Subject: [PATCH] [tomcat] add support for tomcat7 and log size limits + +Based on a patch from Pavel Moravec in Issue #412. + +Fixes #412. + +Signed-off-by: Bryn M. Reeves +--- + sos/plugins/tomcat.py | 14 +++++++++----- + 1 file changed, 9 insertions(+), 5 deletions(-) + +diff --git a/sos/plugins/tomcat.py b/sos/plugins/tomcat.py +index b7aea2c..4f78c1d 100644 +--- a/sos/plugins/tomcat.py ++++ b/sos/plugins/tomcat.py +@@ -22,17 +22,21 @@ class Tomcat(Plugin, RedHatPlugin): + plugin_name = 'tomcat' + profiles = ('webserver', 'java', 'services') + +- packages = ('tomcat6',) ++ packages = ('tomcat6', 'tomcat') + + def setup(self): + self.add_copy_spec([ +- "/etc/tomcat6", +- "/var/log/tomcat6/catalina.out" ++ "/etc/tomcat", ++ "/etc/tomcat6" + ]) + ++ limit = self.get_option("log_size") ++ log_glob = "/var/log/tomcat*/catalina.out" ++ self.add_copy_spec_limit(log_glob, sizelimit=limit) ++ + def postproc(self): +- self.do_file_sub( +- "/etc/tomcat6/tomcat-users.xml", ++ self.do_path_regex_sub( ++ r"\/etc\/tomcat.*\/tomcat-users.xml", + r"password=(\S*)", + r'password="********"' + ) +-- +1.9.3 + diff --git a/SOURCES/sos-bz1148551-ovirt_hosted_engine-fix-exception-when-force-enabled.patch b/SOURCES/sos-bz1148551-ovirt_hosted_engine-fix-exception-when-force-enabled.patch new file mode 100644 index 0000000..c94d710 --- /dev/null +++ b/SOURCES/sos-bz1148551-ovirt_hosted_engine-fix-exception-when-force-enabled.patch @@ -0,0 +1,31 @@ +From f9aefde0d7f74867031a00b52f72d0ad1ff9463b Mon Sep 17 00:00:00 2001 +From: "Bryn M. Reeves" +Date: Wed, 15 Oct 2014 15:51:13 +0100 +Subject: [PATCH] [ovirt_hosted_engine] fix exception when force-enabled + +Fixes #416. + +Signed-off-by: Bryn M. Reeves +--- + sos/plugins/ovirt_hosted_engine.py | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/sos/plugins/ovirt_hosted_engine.py b/sos/plugins/ovirt_hosted_engine.py +index aee8bc0..02cb2b6 100644 +--- a/sos/plugins/ovirt_hosted_engine.py ++++ b/sos/plugins/ovirt_hosted_engine.py +@@ -56,8 +56,9 @@ class OvirtHostedEngine(Plugin, RedHatPlugin): + + all_setup_logs = glob.glob(self.SETUP_LOG_GLOB) + all_setup_logs.sort(reverse=True) +- # Add latest ovirt-hosted-engine-setup log file +- self.add_copy_spec(all_setup_logs[0]) ++ if len(all_setup_logs): ++ # Add latest ovirt-hosted-engine-setup log file ++ self.add_copy_spec(all_setup_logs[0]) + # Add older ovirt-hosted-engine-setup log files only if requested + if self.get_option('all_logs'): + self.add_copy_spec_limit( +-- +1.9.3 + diff --git a/SOURCES/sos-bz1148560-add-kpatch-plugin.patch b/SOURCES/sos-bz1148560-add-kpatch-plugin.patch deleted file mode 100644 index 1841567..0000000 --- a/SOURCES/sos-bz1148560-add-kpatch-plugin.patch +++ /dev/null @@ -1,93 +0,0 @@ -From bf1dd84ad4049246d79a63f3448b1e855d159a5d Mon Sep 17 00:00:00 2001 -From: "Bryn M. Reeves" -Date: Thu, 19 Jun 2014 10:49:17 +0100 -Subject: [PATCH] [kpatch] new plugin - -Based on a suggestion from Marc Milgram in rhbz#1110918. - -Signed-off-by: Bryn M. Reeves ---- - sos/plugins/kpatch.py | 38 ++++++++++++++++++++++++++++++++++++++ - 1 file changed, 38 insertions(+) - create mode 100644 sos/plugins/kpatch.py - -diff --git a/sos/plugins/kpatch.py b/sos/plugins/kpatch.py -new file mode 100644 -index 0000000..7909926 ---- /dev/null -+++ b/sos/plugins/kpatch.py -@@ -0,0 +1,38 @@ -+# Copyright (C) 2014 Red Hat, Inc. Bryn M. Reeves -+# 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., 675 Mass Ave, Cambridge, MA 02139, USA. -+ -+from sos.plugins import Plugin, RedHatPlugin -+import re -+ -+ -+class Kpatch(Plugin, RedHatPlugin): -+ """Kpatch information -+ """ -+ -+ plugin_name = 'kpatch' -+ -+ packages = ('kpatch',) -+ -+ def setup(self): -+ kpatch_list = self.get_cmd_output_now("kpatch list") -+ kpatches = open(kpatch_list, "r").read().splitlines() -+ for patch in kpatches: -+ if not re.match("^kpatch-.*\(.*\)", patch): -+ continue -+ (module, version) = patch.split() -+ self.add_cmd_output("kpatch info " + module) -+ -+ -+# vim: et ts=4 sw=4 --- -1.9.3 - -From 6b43c42078604b0551923c2801108848e97ba3b9 Mon Sep 17 00:00:00 2001 -From: "Bryn M. Reeves" -Date: Tue, 14 Oct 2014 15:43:20 +0100 -Subject: [PATCH] [kpatch] do not try to read kpatch data if it could not be - run - -Everything the kpatch plugin does requires the list of available -kpatch patches obtained from 'kpatch list'. If this fails return -immediately from the setup method. - -Fixes #417. - -Signed-off-by: Bryn M. Reeves ---- - sos/plugins/kpatch.py | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/sos/plugins/kpatch.py b/sos/plugins/kpatch.py -index 7909926..6ef557e 100644 ---- a/sos/plugins/kpatch.py -+++ b/sos/plugins/kpatch.py -@@ -27,6 +27,8 @@ class Kpatch(Plugin, RedHatPlugin): - - def setup(self): - kpatch_list = self.get_cmd_output_now("kpatch list") -+ if not kpatch_list: -+ return - kpatches = open(kpatch_list, "r").read().splitlines() - for patch in kpatches: - if not re.match("^kpatch-.*\(.*\)", patch): --- -1.9.3 - diff --git a/SOURCES/sos-bz1148784-openstack-backport-plugins-from-master.patch b/SOURCES/sos-bz1148784-openstack-backport-plugins-from-master.patch deleted file mode 100644 index 38c56c6..0000000 --- a/SOURCES/sos-bz1148784-openstack-backport-plugins-from-master.patch +++ /dev/null @@ -1,1125 +0,0 @@ -From dda4e7261e77e92434294fe671a7310ab4fc79d2 Mon Sep 17 00:00:00 2001 -From: "Bryn M. Reeves" -Date: Thu, 11 Sep 2014 12:53:51 +0100 -Subject: [PATCH] [openstack] backport OpenStack plugins from master - -Signed-off-by: Bryn M. Reeves ---- - sos/plugins/openstack.py | 207 ------------------------------------ - sos/plugins/openstack_ceilometer.py | 67 ++++++++++++ - sos/plugins/openstack_cinder.py | 86 +++++++++++++++ - sos/plugins/openstack_glance.py | 64 +++++++++++ - sos/plugins/openstack_heat.py | 68 ++++++++++++ - sos/plugins/openstack_horizon.py | 81 ++++++++++++++ - sos/plugins/openstack_keystone.py | 79 ++++++++++++++ - sos/plugins/openstack_neutron.py | 178 +++++++++++++++++++++++++++++++ - sos/plugins/openstack_nova.py | 152 ++++++++++++++++++++++++++ - sos/plugins/openstack_swift.py | 62 +++++++++++ - 10 files changed, 837 insertions(+), 207 deletions(-) - delete mode 100644 sos/plugins/openstack.py - create mode 100644 sos/plugins/openstack_ceilometer.py - create mode 100644 sos/plugins/openstack_cinder.py - create mode 100644 sos/plugins/openstack_glance.py - create mode 100644 sos/plugins/openstack_heat.py - create mode 100644 sos/plugins/openstack_horizon.py - create mode 100644 sos/plugins/openstack_keystone.py - create mode 100644 sos/plugins/openstack_neutron.py - create mode 100644 sos/plugins/openstack_nova.py - create mode 100644 sos/plugins/openstack_swift.py - -diff --git a/sos/plugins/openstack.py b/sos/plugins/openstack.py -deleted file mode 100644 -index 8c52136..0000000 ---- a/sos/plugins/openstack.py -+++ /dev/null -@@ -1,207 +0,0 @@ --## Copyright (C) 2009 Red Hat, Inc., Joey Boggs --## Copyright (C) 2012 Rackspace US, Inc., Justin Shepherd -- --### 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., 675 Mass Ave, Cambridge, MA 02139, USA. -- --import os -- --from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin -- -- --class OpenStack(Plugin): -- """openstack related information -- """ -- plugin_name = "openstack" -- -- option_list = [("log", "gathers all openstack logs", "slow", False)] -- -- --class DebianOpenStack(OpenStack, DebianPlugin, UbuntuPlugin): -- """OpenStack related information for Debian based distributions -- """ -- -- packages = ('cinder-api', -- 'cinder-backup', -- 'cinder-common', -- 'cinder-scheduler', -- 'cinder-volume', -- 'glance', -- 'glance-api', -- 'glance-client', -- 'glance-common', -- 'glance-registry', -- 'keystone', -- 'melange', -- 'nova-api-ec2', -- 'nova-api-metadata', -- 'nova-api-os-compute', -- 'nova-api-os-volume', -- 'nova-common', -- 'nova-compute', -- 'nova-compute-kvm', -- 'nova-compute-lxc', -- 'nova-compute-qemu', -- 'nova-compute-uml', -- 'nova-compute-xcp', -- 'nova-compute-xen', -- 'nova-xcp-plugins', -- 'nova-consoleauth', -- 'nova-network', -- 'nova-scheduler', -- 'nova-volume', -- 'novnc', -- 'openstack-dashboard', -- 'quantum-common', -- 'quantum-plugin-cisco', -- 'quantum-plugin-linuxbridge-agent', -- 'quantum-plugin-nicira', -- 'quantum-plugin-openvswitch', -- 'quantum-plugin-openvswitch-agent', -- 'quantum-plugin-ryu', -- 'quantum-plugin-ryu-agent', -- 'quantum-server', -- 'swift', -- 'swift-account', -- 'swift-container', -- 'swift-object', -- 'swift-proxy', -- 'swauth', -- 'python-cinder', -- 'python-cinderclient', -- 'python-django-horizon', -- 'python-glance', -- 'python-keystone', -- 'python-keystoneclient', -- 'python-melange', -- 'python-nova', -- 'python-novaclient', -- 'python-novnc', -- 'python-quantum', -- 'python-quantumclient', -- 'python-swift', -- 'python-swauth') -- -- def setup(self): -- # Nova -- if os.path.exists("nova-manage"): -- self.add_cmd_output( -- "nova-manage config list 2>/dev/null | sort", -- suggest_filename="nova_config_list") -- self.add_cmd_output( -- "nova-manage service list 2>/dev/null", -- suggest_filename="nova_service_list") -- self.add_cmd_output( -- "nova-manage db version 2>/dev/null", -- suggest_filename="nova_db_version") -- self.add_cmd_output( -- "nova-manage fixed list 2>/dev/null", -- suggest_filename="nova_fixed_ip_list") -- self.add_cmd_output( -- "nova-manage floating list 2>/dev/null", -- suggest_filename="nova_floating_ip_list") -- self.add_cmd_output( -- "nova-manage flavor list 2>/dev/null", -- suggest_filename="nova_flavor_list") -- self.add_cmd_output( -- "nova-manage network list 2>/dev/null", -- suggest_filename="nova_network_list") -- self.add_cmd_output( -- "nova-manage vm list 2>/dev/null", -- suggest_filename="nova_vm_list") -- self.add_copy_specs(["/etc/nova/", -- "/var/log/nova/", -- "/etc/default/nova-volume", -- "/etc/sudoers.d/nova_sudoers", -- "/etc/logrotate.d/nova-*"]) -- # Cinder -- if os.path.exists("/usr/bin/cinder-manage"): -- self.addCmdOutput( -- "/usr/bin/cinder-manage db version", -- suggest_filename="cinder_db_version") -- self.addCopySpecs(["/etc/cinder/", -- "/var/log/cinder/", -- "/etc/logrotate.d/cinder-*"]) -- # Glance -- if os.path.exists("glance-manage"): -- self.add_cmd_output( -- "glance-manage db_version", -- suggest_filename="glance_db_version") -- self.add_copy_specs(["/etc/glance/", -- "/var/log/glance/", -- "/etc/logrotate.d/glance-*"]) -- # Keystone -- self.add_copy_specs(["/etc/keystone/", -- "/var/log/keystone/", -- "/etc/logrotate.d/keystone"]) -- # Swift -- self.add_copy_specs(["/etc/swift/"]) -- # Quantum -- self.add_copy_specs(["/etc/quantum/", -- "/var/log/quantum/"]) -- -- --class RedHatOpenStack(OpenStack, RedHatPlugin): -- """OpenStack related information for Red Hat distributions -- """ -- -- packages = ('openstack-nova', -- 'openstack-glance', -- 'openstack-dashboard', -- 'openstack-keystone', -- 'openstack-quantum', -- 'openstack-swift', -- 'openstack-swift-account', -- 'openstack-swift-container', -- 'openstack-swift-object', -- 'openstack-swift-proxy', -- 'swift', -- 'python-nova', -- 'python-glanceclient', -- 'python-keystoneclient', -- 'python-novaclient', -- 'python-openstackclient', -- 'python-quantumclient') -- -- def setup(self): -- # If RHEL or Fedora then invoke script for openstack-status -- if (os.path.isfile('/etc/redhat-release') -- or os.path.isfile('/etc/fedora-release')): -- self.add_cmd_output("openstack-status") -- -- # Nova -- self.add_copy_specs(["/etc/nova/", -- "/var/log/nova/", -- "/var/lib/nova/", -- "/etc/polkit-1/localauthority/50-local.d/50-nova.pkla", -- "/etc/sudoers.d/nova", -- "/etc/logrotate.d/openstack-nova"]) -- -- # Glance -- self.add_copy_specs(["/etc/glance/", -- "/var/log/glance/", -- "/etc/logrotate.d/openstack-glance"]) -- -- # Keystone -- self.add_copy_specs(["/etc/keystone/", -- "/var/log/keystone/"]) -- -- # Quantum -- self.add_copy_specs(["/etc/quantum/", -- "/var/log/quantum/"]) -- -- def postproc(self): -- self.do_file_sub('/etc/keystone/keystone.conf', -- r"(admin_password\s*=\s*)(.*)", -- r"\1******") -diff --git a/sos/plugins/openstack_ceilometer.py b/sos/plugins/openstack_ceilometer.py -new file mode 100644 ---- /dev/null -+++ b/sos/plugins/openstack_ceilometer.py -@@ -0,0 +1,67 @@ -+# Copyright (C) 2013 Red Hat, Inc., Eoghan Lynn -+# Copyright (C) 2012 Rackspace US, Inc. -+# 2012 Justin Shepherd -+# Copyright (C) 2009 Red Hat, Inc. -+# 2009 Joey Boggs -+ -+# 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., 675 Mass Ave, Cambridge, MA 02139, USA. -+ -+from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin -+ -+ -+class OpenStackCeilometer(Plugin): -+ """Openstack Ceilometer related information.""" -+ plugin_name = "openstack_ceilometer" -+ -+ option_list = [("log", "gathers openstack-ceilometer logs", "slow", False)] -+ -+ def setup(self): -+ # Ceilometer -+ self.add_copy_specs([ -+ "/etc/ceilometer/", -+ "/var/log/ceilometer" -+ ]) -+ -+ -+class DebianOpenStackCeilometer(OpenStackCeilometer, DebianPlugin, -+ UbuntuPlugin): -+ """OpenStackCeilometer related information for Debian based distributions. -+ """ -+ -+ packages = ( -+ 'ceilometer-api', -+ 'ceilometer-agent-central', -+ 'ceilometer-agent-compute', -+ 'ceilometer-collector', -+ 'ceilometer-common', -+ 'python-ceilometer', -+ 'python-ceilometerclient' -+ ) -+ -+ -+class RedHatOpenStackCeilometer(OpenStackCeilometer, RedHatPlugin): -+ """OpenStackCeilometer related information for Red Hat distributions.""" -+ -+ packages = ( -+ 'openstack-ceilometer', -+ 'openstack-ceilometer-api', -+ 'openstack-ceilometer-central', -+ 'openstack-ceilometer-collector', -+ 'openstack-ceilometer-common', -+ 'openstack-ceilometer-compute', -+ 'python-ceilometerclient' -+ ) -+ -+# vim: et ts=4 sw=4 -diff --git a/sos/plugins/openstack_cinder.py b/sos/plugins/openstack_cinder.py -new file mode 100644 ---- /dev/null -+++ b/sos/plugins/openstack_cinder.py -@@ -0,0 +1,86 @@ -+# Copyright (C) 2009 Red Hat, Inc., Joey Boggs -+# Copyright (C) 2012 Rackspace US, Inc., -+# Justin Shepherd -+# Copyright (C) 2013 Red Hat, Inc., Flavio Percoco -+# Copyright (C) 2013 Red Hat, Inc., Jeremy Agee -+ -+# 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., 675 Mass Ave, Cambridge, MA 02139, USA. -+ -+from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin -+ -+ -+class OpenStackCinder(Plugin): -+ """openstack cinder related information -+ """ -+ plugin_name = "openstack_cinder" -+ -+ option_list = [("log", "gathers openstack cinder logs", "slow", True), -+ ("db", "gathers openstack cinder db version", "slow", -+ False)] -+ -+ def setup(self): -+ if self.get_option("db"): -+ self.add_cmd_output( -+ "cinder-manage db version", -+ suggest_filename="cinder_db_version") -+ -+ self.add_copy_specs(["/etc/cinder/"]) -+ -+ if self.get_option("log"): -+ self.add_copy_specs(["/var/log/cinder/"]) -+ -+ -+class DebianOpenStackCinder(OpenStackCinder, DebianPlugin, UbuntuPlugin): -+ """OpenStack Cinder related information for Debian based distributions -+ """ -+ -+ cinder = False -+ packages = ( -+ 'cinder-api', -+ 'cinder-backup', -+ 'cinder-common', -+ 'cinder-scheduler', -+ 'cinder-volume', -+ 'python-cinder', -+ 'python-cinderclient' -+ ) -+ -+ def check_enabled(self): -+ self.cinder = self.is_installed("cinder-common") -+ return self.cinder -+ -+ def setup(self): -+ super(DebianOpenStackCinder, self).setup() -+ -+ -+class RedHatOpenStackCinder(OpenStackCinder, RedHatPlugin): -+ """OpenStack related information for Red Hat distributions -+ """ -+ -+ cinder = False -+ packages = ('openstack-cinder', -+ 'python-cinder', -+ 'python-cinderclient') -+ -+ def check_enabled(self): -+ self.cinder = self.is_installed("openstack-cinder") -+ return self.cinder -+ -+ def setup(self): -+ super(RedHatOpenStackCinder, self).setup() -+ self.add_copy_specs(["/etc/sudoers.d/cinder"]) -+ -+ -+# vim: et ts=4 sw=4 -diff --git a/sos/plugins/openstack_glance.py b/sos/plugins/openstack_glance.py -new file mode 100644 ---- /dev/null -+++ b/sos/plugins/openstack_glance.py -@@ -0,0 +1,64 @@ -+# Copyright (C) 2013 Red Hat, Inc., Flavio Percoco -+# Copyright (C) 2012 Rackspace US, Inc., -+# Justin Shepherd -+# Copyright (C) 2009 Red Hat, Inc., Joey Boggs -+ -+# 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., 675 Mass Ave, Cambridge, MA 02139, USA. -+ -+from sos import plugins -+ -+ -+class OpenStackGlance(plugins.Plugin): -+ """OpenstackGlance related information.""" -+ plugin_name = "openstack_glance" -+ -+ option_list = [("log", "gathers openstack-glance logs", "slow", False)] -+ -+ def setup(self): -+ # Glance -+ self.add_cmd_output( -+ "glance-manage db_version", -+ suggest_filename="glance_db_version" -+ ) -+ self.add_copy_specs([ -+ "/etc/glance/", -+ "/var/log/glance/" -+ ]) -+ -+ -+class DebianOpenStackGlance(OpenStackGlance, -+ plugins.DebianPlugin, -+ plugins.UbuntuPlugin): -+ """OpenStackGlance related information for Debian based distributions.""" -+ -+ packages = ( -+ 'glance', -+ 'glance-api', -+ 'glance-client', -+ 'glance-common', -+ 'glance-registry', -+ 'python-glance' -+ ) -+ -+ -+class RedHatOpenStackGlance(OpenStackGlance, plugins.RedHatPlugin): -+ """OpenStackGlance related information for Red Hat distributions.""" -+ -+ packages = ( -+ 'openstack-glance', -+ 'python-glanceclient' -+ ) -+ -+# vim: et ts=4 sw=4 -diff --git a/sos/plugins/openstack_heat.py b/sos/plugins/openstack_heat.py -new file mode 100644 ---- /dev/null -+++ b/sos/plugins/openstack_heat.py -@@ -0,0 +1,68 @@ -+# Copyright (C) 2013 Red Hat, Inc. -+ -+# 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., 675 Mass Ave, Cambridge, MA 02139, USA. -+ -+from sos import plugins -+ -+ -+class OpenStackHeat(plugins.Plugin): -+ """openstack related information -+ """ -+ plugin_name = "openstack_heat" -+ -+ option_list = [("log", "gathers openstack-heat logs", "slow", False)] -+ -+ def setup(self): -+ # Heat -+ self.add_cmd_output( -+ "heat-manage db_version", -+ suggest_filename="heat_db_version" -+ ) -+ self.add_copy_specs([ -+ "/etc/heat/", -+ "/var/log/heat/" -+ ]) -+ -+ -+class DebianOpenStack(OpenStackHeat, -+ plugins.DebianPlugin, -+ plugins.UbuntuPlugin): -+ """OpenStackHeat related information for Debian based distributions.""" -+ -+ packages = ( -+ 'heat-api', -+ 'heat-api-cfn', -+ 'heat-api-cloudwatch', -+ 'heat-common', -+ 'heat-engine', -+ 'python-heat', -+ 'python-heatclient' -+ ) -+ -+ -+class RedHatOpenStack(OpenStackHeat, plugins.RedHatPlugin): -+ """OpenStackHeat related information for Red Hat distributions.""" -+ -+ packages = ( -+ 'openstack-heat-api', -+ 'openstack-heat-api-cfn', -+ 'openstack-heat-api-cloudwatch', -+ 'openstack-heat-cli', -+ 'openstack-heat-common', -+ 'openstack-heat-engine', -+ 'python-heatclient' -+ ) -+ -+# vim: et ts=4 sw=4 -diff --git a/sos/plugins/openstack_horizon.py b/sos/plugins/openstack_horizon.py -new file mode 100644 ---- /dev/null -+++ b/sos/plugins/openstack_horizon.py -@@ -0,0 +1,81 @@ -+# Copyright (C) 2009 Red Hat, Inc., Joey Boggs -+# Copyright (C) 2012 Rackspace US, Inc., -+# Justin Shepherd -+# Copyright (C) 2013 Red Hat, Inc., Jeremy Agee -+ -+# 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., 675 Mass Ave, Cambridge, MA 02139, USA. -+ -+from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin -+ -+ -+class OpenStackHorizon(Plugin): -+ """openstack horizon related information -+ """ -+ -+ plugin_name = "openstack_horizon" -+ option_list = [("log", "gathers openstack horizon logs", "slow", True)] -+ -+ def setup(self): -+ self.add_copy_spec("/etc/openstack-dashboard/") -+ if self.get_option("log"): -+ self.add_copy_spec("/var/log/horizon/") -+ -+ -+class DebianOpenStackHorizon(OpenStackHorizon, DebianPlugin): -+ """OpenStack Horizon related information for Debian based distributions -+ """ -+ -+ packages = ( -+ 'python-django-horizon', -+ 'openstack-dashboard', -+ 'openstack-dashboard-apache' -+ ) -+ -+ def setup(self): -+ super(DebianOpenStackHorizon, self).setup() -+ self.add_copy_spec("/etc/apache2/sites-available/") -+ -+ -+class UbuntuOpenStackHorizon(OpenStackHorizon, UbuntuPlugin): -+ """OpenStack Horizon related information for Ubuntu based distributions -+ """ -+ -+ packages = ( -+ 'python-django-horizon', -+ 'openstack-dashboard', -+ 'openstack-dashboard-ubuntu-theme' -+ ) -+ -+ def setup(self): -+ super(UbuntuOpenStackHorizon, self).setup() -+ self.add_copy_spec("/etc/apache2/conf.d/openstack-dashboard.conf") -+ -+ -+class RedHatOpenStackHorizon(OpenStackHorizon, RedHatPlugin): -+ """OpenStack Horizon related information for Red Hat distributions -+ """ -+ -+ packages = ( -+ 'python-django-horizon', -+ 'openstack-dashboard' -+ ) -+ -+ def setup(self): -+ super(RedHatOpenStackHorizon, self).setup() -+ self.add_copy_spec("/etc/httpd/conf.d/openstack-dashboard.conf") -+ if self.get_option("log"): -+ self.add_copy_spec("/var/log/httpd/") -+ -+# vim: et ts=4 sw=4 -diff --git a/sos/plugins/openstack_keystone.py b/sos/plugins/openstack_keystone.py -new file mode 100644 ---- /dev/null -+++ b/sos/plugins/openstack_keystone.py -@@ -0,0 +1,79 @@ -+# Copyright (C) 2013 Red Hat, Inc., Jeremy Agee -+ -+# 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., 675 Mass Ave, Cambridge, MA 02139, USA. -+ -+from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin -+ -+ -+class OpenStackKeystone(Plugin): -+ """openstack keystone related information -+ """ -+ plugin_name = "openstack_keystone" -+ -+ option_list = [("log", "gathers openstack keystone logs", "slow", True), -+ ("nopw", "dont gathers keystone passwords", "slow", True)] -+ -+ def setup(self): -+ self.add_copy_specs([ -+ "/etc/keystone/default_catalog.templates", -+ "/etc/keystone/keystone.conf", -+ "/etc/keystone/logging.conf", -+ "/etc/keystone/policy.json" -+ ]) -+ -+ if self.get_option("log"): -+ self.add_copy_spec("/var/log/keystone/") -+ -+ def postproc(self): -+ self.do_file_sub('/etc/keystone/keystone.conf', -+ r"(?m)^(admin_password.*=)(.*)", -+ r"\1 ******") -+ self.do_file_sub('/etc/keystone/keystone.conf', -+ r"(?m)^(admin_token.*=)(.*)", -+ r"\1 ******") -+ self.do_file_sub('/etc/keystone/keystone.conf', -+ r"(?m)^(connection.*=.*mysql://)(.*)(:)(.*)(@)(.*)", -+ r"\1\2:******@\6") -+ self.do_file_sub('/etc/keystone/keystone.conf', -+ r"(?m)^(password.*=)(.*)", -+ r"\1 ******") -+ self.do_file_sub('/etc/keystone/keystone.conf', -+ r"(?m)^(ca_password.*=)(.*)", -+ r"\1 ******") -+ -+ -+class DebianOpenStackKeystone(OpenStackKeystone, DebianPlugin, UbuntuPlugin): -+ """OpenStack Keystone related information for Debian based distributions -+ """ -+ -+ packages = ( -+ 'keystone', -+ 'python-keystone', -+ 'python-keystoneclient' -+ ) -+ -+ -+class RedHatOpenStackKeystone(OpenStackKeystone, RedHatPlugin): -+ """OpenStack Keystone related information for Red Hat distributions -+ """ -+ -+ packages = ( -+ 'openstack-keystone', -+ 'python-keystone', -+ 'python-django-openstack-auth', -+ 'python-keystoneclient' -+ ) -+ -+# vim: et ts=4 sw=4 -diff --git a/sos/plugins/openstack_neutron.py b/sos/plugins/openstack_neutron.py -new file mode 100644 ---- /dev/null -+++ b/sos/plugins/openstack_neutron.py -@@ -0,0 +1,175 @@ -+# Copyright (C) 2013 Red Hat, Inc., Brent Eagles -+ -+# 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., 675 Mass Ave, Cambridge, MA 02139, USA. -+ -+import os -+import re -+ -+from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin -+ -+# The Networking plugin includes most of what is needed from a snapshot -+# of the networking, so we only need to focus on the parts that are specific -+# to OpenStack Networking. The Process plugin should capture the dnsmasq -+# command line. The libvirt plugin grabs the instance's XML definition which -+# has the interface names for an instance. So what remains is relevant database -+# info... -+ -+ -+class Neutron(Plugin): -+ """OpenStack Networking (quantum/neutron) related information -+ """ -+ plugin_name = "neutron" -+ -+ option_list = [("log", "Gathers all Neutron logs", "slow", False), -+ ("quantum", "Overrides checks for newer Neutron components", -+ "fast", False)] -+ -+ component_name = "neutron" -+ -+ def setup(self): -+ if os.path.exists("/etc/neutron/") and not self.get_option("quantum"): -+ self.component_name = self.plugin_name -+ else: -+ self.component_name = "quantum" -+ self.add_copy_specs([ -+ "/etc/%s/" % self.component_name, -+ "/var/log/%s/" % self.component_name -+ ]) -+ -+ self.netns_dumps() -+ -+ def netns_dumps(self): -+ # It would've been beautiful if we could get parts of the networking -+ # plugin to run in different namespaces. There are a couple of options -+ # in the short term: create a local instance and "borrow" some of the -+ # functionality, or simply copy some of the functionality. -+ prefixes = ["qdhcp", "qrouter"] -+ ip_netns_result = self.call_ext_prog("ip netns") -+ if not (ip_netns_result[0] == 0): -+ return -+ nslist = ip_netns_result[1] -+ lease_directories = [] -+ if nslist: -+ for nsname in nslist.splitlines(): -+ prefix, netid = nsname.split('-', 1) -+ if len(netid) > 0 and prefix in prefixes: -+ self.ns_gather_data(nsname) -+ lease_directories.append( -+ "/var/lib/%s/dhcp/%s/" % -+ (self.component_name, netid)) -+ self.add_copy_specs(lease_directories) -+ -+ # TODO: Refactor! Copied from Networking plugin. -+ def get_interface_name(self, ip_addr_out): -+ """Return a dictionary for which key are interface name according to -+ the output of ifconifg-a stored in ifconfig_file. -+ """ -+ out = {} -+ for line in ip_addr_out.splitlines(): -+ match = re.match('.*link/ether', line) -+ if match: -+ int = match.string.split(':')[1].lstrip() -+ out[int] = True -+ return out -+ -+ def ns_gather_data(self, nsname): -+ cmd_prefix = "ip netns exec %s " % nsname -+ self.add_cmd_outputs([ -+ cmd_prefix + "iptables-save", -+ cmd_prefix + "ifconfig -a", -+ cmd_prefix + "route -n" -+ ]) -+ # borrowed from networking plugin -+ ip_addr_result = self.call_ext_prog(cmd_prefix + "ip -o link") -+ if ip_addr_result[0] == 0: -+ for eth in self.get_interface_name(ip_addr_result[1]): -+ # Most, if not all, IFs in the namespaces are going to be -+ # virtual. The '-a', '-c' and '-g' options are not likely to be -+ # supported so these ops are not copied from the network -+ # plugin. -+ self.add_cmd_outputs([ -+ cmd_prefix + "ethtool "+eth, -+ cmd_prefix + "ethtool -i "+eth, -+ cmd_prefix + "ethtool -k "+eth, -+ cmd_prefix + "ethtool -S "+eth -+ ]) -+ -+ # As all of the bridges are in the "global namespace", we do not need -+ # to gather info on them. -+ -+ def gen_pkg_tuple(self, packages): -+ names = [] -+ for p in packages: -+ names.append(p % {"comp": self.component_name}) -+ return tuple(names) -+ -+ -+class DebianNeutron(Neutron, DebianPlugin, UbuntuPlugin): -+ """OpenStack Neutron related information for Debian based distributions -+ """ -+ package_list_template = [ -+ '%(comp)s-common', -+ '%(comp)s-plugin-cisco', -+ '%(comp)s-plugin-linuxbridge-agent', -+ '%(comp)s-plugin-nicira', -+ '%(comp)s-plugin-openvswitch', -+ '%(comp)s-plugin-openvswitch-agent', -+ '%(comp)s-plugin-ryu', -+ '%(comp)s-plugin-ryu-agent', -+ '%(comp)s-server', -+ 'python-%(comp)s', -+ 'python-%(comp)sclient' -+ ] -+ -+ def check_enabled(self): -+ return self.is_installed("%s-common" % self.component_name) -+ -+ def setup(self): -+ super(DebianNeutron, self).setup() -+ self.packages = self.gen_pkg_tuple(self.package_list_template) -+ self.add_copy_spec("/etc/sudoers.d/%s_sudoers" % self.component_name) -+ -+ -+class RedHatNeutron(Neutron, RedHatPlugin): -+ """OpenStack Neutron related information for Red Hat distributions -+ """ -+ -+ package_list_template = [ -+ 'openstack-%(comp)s', -+ 'openstack-%(comp)s-linuxbridge' -+ 'openstack-%(comp)s-metaplugin', -+ 'openstack-%(comp)s-openvswitch', -+ 'openstack-%(comp)s-bigswitch', -+ 'openstack-%(comp)s-brocade', -+ 'openstack-%(comp)s-cisco', -+ 'openstack-%(comp)s-hyperv', -+ 'openstack-%(comp)s-midonet', -+ 'openstack-%(comp)s-nec' -+ 'openstack-%(comp)s-nicira', -+ 'openstack-%(comp)s-plumgrid', -+ 'openstack-%(comp)s-ryu', -+ 'python-%(comp)s', -+ 'python-%(comp)sclient' -+ ] -+ -+ def check_enabled(self): -+ return self.is_installed("openstack-%s" % self.component_name) -+ -+ def setup(self): -+ super(RedHatNeutron, self).setup() -+ self.packages = self.gen_pkg_tuple(self.package_list_template) -+ self.add_copy_spec("/etc/sudoers.d/%s-rootwrap" % self.component_name) -+ -+# vim: et ts=4 sw=4 -diff --git a/sos/plugins/openstack_nova.py b/sos/plugins/openstack_nova.py -new file mode 100644 -index 0000000..a4186af ---- /dev/null -+++ b/sos/plugins/openstack_nova.py -@@ -0,0 +1,152 @@ -+# Copyright (C) 2009 Red Hat, Inc., Joey Boggs -+# Copyright (C) 2012 Rackspace US, Inc., -+# Justin Shepherd -+# Copyright (C) 2013 Red Hat, Inc., Jeremy Agee -+ -+# 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., 675 Mass Ave, Cambridge, MA 02139, USA. -+ -+from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin -+ -+ -+class OpenStackNova(Plugin): -+ """openstack nova related information -+ """ -+ plugin_name = "openstack_nova" -+ -+ option_list = [("log", "gathers openstack nova logs", "slow", True), -+ ("cmds", "gathers openstack nova commands", "slow", False)] -+ -+ def setup(self): -+ if self.get_option("cmds"): -+ self.add_cmd_output( -+ "nova-manage config list", -+ suggest_filename="nova_config_list") -+ self.add_cmd_output( -+ "nova-manage service list", -+ suggest_filename="nova_service_list") -+ self.add_cmd_output( -+ "nova-manage db version", -+ suggest_filename="nova_db_version") -+ self.add_cmd_output( -+ "nova-manage fixed list", -+ suggest_filename="nova_fixed_ip_list") -+ self.add_cmd_output( -+ "nova-manage floating list", -+ suggest_filename="nova_floating_ip_list") -+ self.add_cmd_output( -+ "nova-manage flavor list", -+ suggest_filename="nova_flavor_list") -+ self.add_cmd_output( -+ "nova-manage network list", -+ suggest_filename="nova_network_list") -+ self.add_cmd_output( -+ "nova-manage vm list", -+ suggest_filename="nova_vm_list") -+ -+ if self.get_option("log"): -+ self.add_copy_spec("/var/log/nova/") -+ -+ self.add_copy_spec("/etc/nova/") -+ -+ def postproc(self): -+ protect_keys = [ -+ "ldap_dns_password", "neutron_admin_password", "rabbit_password", -+ "qpid_password", "powervm_mgr_passwd", "virtual_power_host_pass", -+ "xenapi_connection_password", "password", "host_password", -+ "vnc_password", "connection", "sql_connection", "admin_password" -+ ] -+ -+ regexp = r"((?m)^\s*#*(%s)\s*=\s*)(.*)" % "|".join(protect_keys) -+ -+ for conf_file in ["/etc/nova/nova.conf", "/etc/nova/api-paste.ini"]: -+ self.do_file_sub(conf_file, regexp, r"\1*********") -+ -+ -+class DebianOpenStackNova(OpenStackNova, DebianPlugin, UbuntuPlugin): -+ """OpenStack nova related information for Debian based distributions -+ """ -+ -+ nova = False -+ packages = ( -+ 'nova-api-ec2', -+ 'nova-api-metadata', -+ 'nova-api-os-compute', -+ 'nova-api-os-volume', -+ 'nova-common', -+ 'nova-compute', -+ 'nova-compute-kvm', -+ 'nova-compute-lxc', -+ 'nova-compute-qemu', -+ 'nova-compute-uml', -+ 'nova-compute-xcp', -+ 'nova-compute-xen', -+ 'nova-xcp-plugins', -+ 'nova-consoleauth', -+ 'nova-network', -+ 'nova-scheduler', -+ 'nova-volume', -+ 'novnc', -+ 'python-nova', -+ 'python-novaclient', -+ 'python-novnc' -+ ) -+ -+ def check_enabled(self): -+ self.nova = self.is_installed("nova-common") -+ return self.nova -+ -+ def setup(self): -+ super(DebianOpenStackNova, self).setup() -+ self.add_copy_specs(["/etc/sudoers.d/nova_sudoers"]) -+ -+ -+class RedHatOpenStackNova(OpenStackNova, RedHatPlugin): -+ """OpenStack nova related information for Red Hat distributions -+ """ -+ -+ nova = False -+ packages = ( -+ 'openstack-nova-common', -+ 'openstack-nova-network', -+ 'openstack-nova-conductor', -+ 'openstack-nova-conductor', -+ 'openstack-nova-scheduler', -+ 'openstack-nova-console', -+ 'openstack-nova-novncproxy', -+ 'openstack-nova-compute', -+ 'openstack-nova-api', -+ 'openstack-nova-cert', -+ 'openstack-nova-cells', -+ 'openstack-nova-objectstore', -+ 'python-nova', -+ 'python-novaclient', -+ 'novnc' -+ ) -+ -+ def check_enabled(self): -+ self.nova = self.is_installed("openstack-nova-common") -+ return self.nova -+ -+ def setup(self): -+ super(RedHatOpenStackNova, self).setup() -+ self.add_copy_specs([ -+ "/etc/logrotate.d/openstack-nova", -+ "/etc/polkit-1/localauthority/50-local.d/50-nova.pkla", -+ "/etc/sudoers.d/nova", -+ "/etc/security/limits.d/91-nova.conf", -+ "/etc/sysconfig/openstack-nova-novncproxy" -+ ]) -+ -+# vim: et ts=4 sw=4 -diff --git a/sos/plugins/openstack_swift.py b/sos/plugins/openstack_swift.py -new file mode 100644 ---- /dev/null -+++ b/sos/plugins/openstack_swift.py -@@ -0,0 +1,62 @@ -+# Copyright (C) 2013 Red Hat, Inc., Flavio Percoco -+# Copyright (C) 2012 Rackspace US, Inc., -+# Justin Shepherd -+# Copyright (C) 2009 Red Hat, Inc., Joey Boggs -+ -+# 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., 675 Mass Ave, Cambridge, MA 02139, USA. -+ -+from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin -+ -+ -+class OpenStackSwift(Plugin): -+ """OpenstackSwift related information.""" -+ plugin_name = "openstack_swift" -+ -+ option_list = [("log", "gathers openstack-swift logs", "slow", False)] -+ -+ def setup(self): -+ # Swift -+ self.add_copy_spec("/etc/swift/") -+ -+ -+class DebianOpenStackSwift(OpenStackSwift, DebianPlugin, UbuntuPlugin): -+ """OpenStackSwift related information for Debian based distributions.""" -+ -+ packages = ( -+ 'swift', -+ 'swift-account', -+ 'swift-container', -+ 'swift-object', -+ 'swift-proxy', -+ 'swauth', -+ 'python-swift', -+ 'python-swauth' -+ ) -+ -+ -+class RedHatOpenStackSwift(OpenStackSwift, RedHatPlugin): -+ """OpenStackSwift related information for Red Hat distributions.""" -+ -+ packages = ( -+ 'openstack-swift', -+ 'openstack-swift-account', -+ 'openstack-swift-container', -+ 'openstack-swift-object', -+ 'openstack-swift-proxy', -+ 'swift', -+ 'python-swiftclient' -+ ) -+ -+# vim: et ts=4 sw=4 --- -1.9.3 - diff --git a/SOURCES/sos-bz1148784-plugin-backport-add_cmd_outputs.patch b/SOURCES/sos-bz1148784-plugin-backport-add_cmd_outputs.patch deleted file mode 100644 index 071aaf9..0000000 --- a/SOURCES/sos-bz1148784-plugin-backport-add_cmd_outputs.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 4fc8b401992402f9cb45e68db883c90875107572 Mon Sep 17 00:00:00 2001 -From: "Bryn M. Reeves" -Date: Thu, 11 Sep 2014 12:52:16 +0100 -Subject: [PATCH] [plugin] backport add_cmd_outputs - - commit 40646007c03f9088f0d6136b50a83077b1b8934c - Author: Bryn M. Reeves - Date: Sun Apr 6 20:13:59 2014 +0100 - - Add add_cmd_outputs() and convert plugins to use it - - Add a new method to Plugin to add a list of commands to be run, - analogous to add_copy_specs() vs add_copy_spec(). - - Also convert a few plugins not using add_copy_specs() for long - file lists (or using it inconsistently). - - Signed-off-by: Bryn M. Reeves - -Signed-off-by: Bryn M. Reeves ---- - sos/plugins/__init__.py | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/sos/plugins/__init__.py b/sos/plugins/__init__.py -index 2bf8d98..f50df79 100644 ---- a/sos/plugins/__init__.py -+++ b/sos/plugins/__init__.py -@@ -504,6 +504,12 @@ class Plugin(object): - (status, output, runtime) = self.call_ext_prog(prog) - return (status == 0) - -+ def add_cmd_outputs(self, cmds, timeout=300): -+ """Run a list of programs and collect the output""" -+ if isinstance(cmds, basestring): -+ raise TypeError("Plugin.add_cmd_outputs called with string argument") -+ for cmd in cmds: -+ self.add_cmd_output(cmd, timeout=timeout) - - def add_cmd_output(self, exe, suggest_filename=None, root_symlink=None, timeout=300): - """Run a program and collect the output""" --- -1.9.3 - diff --git a/SOURCES/sos-bz1158891-sosreport-fix-archive-permissions-regression.patch b/SOURCES/sos-bz1158891-sosreport-fix-archive-permissions-regression.patch new file mode 100644 index 0000000..7540058 --- /dev/null +++ b/SOURCES/sos-bz1158891-sosreport-fix-archive-permissions-regression.patch @@ -0,0 +1,39 @@ +From d7759d3ddae5fe99a340c88a1d370d65cfa73fd6 Mon Sep 17 00:00:00 2001 +From: "Bryn M. Reeves" +Date: Thu, 30 Oct 2014 16:46:01 +0000 +Subject: [PATCH] [sosreport] fix archive permissions regression + +Restore the umask save/restore around archive creation and ensure +the effective umask is 077 at the time of archive creation. + +Fixes #425. + +Signed-off-by: Bryn M. Reeves +--- + sos/sosreport.py | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/sos/sosreport.py b/sos/sosreport.py +index 664414f..99b5f47 100644 +--- a/sos/sosreport.py ++++ b/sos/sosreport.py +@@ -1327,6 +1327,7 @@ class SoSReport(object): + self._finish_logging() + # package up the results for the support organization + if not self.opts.build: ++ old_umask = os.umask(0o077) + if not self.opts.quiet: + print(_("Creating compressed archive...")) + # compression could fail for a number of reasons +@@ -1345,6 +1346,8 @@ class SoSReport(object): + raise + else: + return False ++ finally: ++ os.umask(old_umask) + else: + final_filename = self.archive.get_archive_path() + self.policy.display_results(final_filename, build=self.opts.build) +-- +1.9.3 + diff --git a/SOURCES/sos-bz1159835-obtain-postgres-password-from-environment.patch b/SOURCES/sos-bz1159835-obtain-postgres-password-from-environment.patch deleted file mode 100644 index 8b19053..0000000 --- a/SOURCES/sos-bz1159835-obtain-postgres-password-from-environment.patch +++ /dev/null @@ -1,46 +0,0 @@ -diff -up sos-3.0/sos/plugins/postgresql.py.orig sos-3.0/sos/plugins/postgresql.py ---- sos-3.0/sos/plugins/postgresql.py.orig 2014-11-11 17:22:24.973592961 +0000 -+++ sos-3.0/sos/plugins/postgresql.py 2014-11-11 17:29:02.374434446 +0000 -@@ -13,23 +13,27 @@ class PostgreSQL(Plugin): - - tmp_dir = None - -+ password_warn_text = " (password visible in process listings)" -+ - option_list = [ - ("pghome", 'PostgreSQL server home directory.', '', '/var/lib/pgsql'), - ("username", 'username for pg_dump', '', 'postgres'), -- ("password", 'password for pg_dump', '', ''), -- ("dbname", 'database name to dump for pg_dump', '', ''), -+ ('password', 'password for pg_dump' + password_warn_text, '', ''), -+ ("dbname", 'database name to dump for pg_dump', '', '') - ] - - def pg_dump(self): - dest_file = os.path.join(self.tmp_dir, "sos_pgdump.tar") -- old_env_pgpassword = os.environ.get("PGPASSWORD") -- os.environ["PGPASSWORD"] = self.get_option("password") -+ # We're only modifying this for ourself and our children so there -+ # is no need to save and restore environment variables if the user -+ # decided to pass the password on the command line. -+ if self.get_option("password") is not None: -+ os.environ["PGPASSWORD"] = self.get_option("password") -+ - (status, output, rtime) = self.call_ext_prog("pg_dump %s -U %s -w -f %s -F t" % - (self.get_option("dbname"), - self.get_option("username"), - dest_file)) -- if old_env_pgpassword is not None: -- os.environ["PGPASSWORD"] = old_env_pgpassword - if (status == 0): - self.add_copy_spec(dest_file) - else: -@@ -37,7 +41,7 @@ class PostgreSQL(Plugin): - - def setup(self): - if self.get_option("dbname"): -- if self.get_option("password"): -+ if self.get_option("password") or "PGPASSWORD" in os.environ: - self.tmp_dir = tempfile.mkdtemp() - self.pg_dump() - else: diff --git a/SOURCES/sos-bz1164267-sos-unicode-use-errors-ignore.patch b/SOURCES/sos-bz1164267-sos-unicode-use-errors-ignore.patch new file mode 100644 index 0000000..1e9f66b --- /dev/null +++ b/SOURCES/sos-bz1164267-sos-unicode-use-errors-ignore.patch @@ -0,0 +1,61 @@ +diff -up sos-3.2/sos/archive.py.orig sos-3.2/sos/archive.py +--- sos-3.2/sos/archive.py.orig 2014-12-17 13:08:57.492362543 +0000 ++++ sos-3.2/sos/archive.py 2014-12-17 13:09:22.256522491 +0000 +@@ -388,9 +388,9 @@ class TarFileArchive(FileCacheArchive): + close_fds=True) + stdout, stderr = p.communicate() + if stdout: +- self.log_info(stdout.decode('utf-8')) ++ self.log_info(stdout.decode('utf-8', 'ignore')) + if stderr: +- self.log_error(stderr.decode('utf-8')) ++ self.log_error(stderr.decode('utf-8', 'ignore')) + self._suffix += suffix + return self.name() + except Exception as e: +diff -up sos-3.2/sos/plugins/__init__.py.orig sos-3.2/sos/plugins/__init__.py +--- sos-3.2/sos/plugins/__init__.py.orig 2014-12-17 13:08:57.493362550 +0000 ++++ sos-3.2/sos/plugins/__init__.py 2014-12-17 13:09:22.257522498 +0000 +@@ -541,7 +541,7 @@ class Plugin(object): + def add_string_as_file(self, content, filename): + """Add a string to the archive as a file named `filename`""" + self.copy_strings.append((content, filename)) +- content = "..." + (content.splitlines()[0]).decode('utf8') ++ content = "..." + (content.splitlines()[0]).decode('utf8', 'ignore') + self._log_debug("added string '%s' as '%s'" % (content, filename)) + + def get_cmd_output_now(self, exe, suggest_filename=None, +@@ -610,7 +610,8 @@ class Plugin(object): + + def _collect_strings(self): + for string, file_name in self.copy_strings: +- content = "..." + (string.splitlines()[0]).decode('utf8') ++ content = "..." ++ content += (string.splitlines()[0]).decode('utf8', 'ignore') + self._log_info("collecting string '%s' as '%s'" + % (content, file_name)) + try: +diff -up sos-3.2/sos/utilities.py.orig sos-3.2/sos/utilities.py +--- sos-3.2/sos/utilities.py.orig 2014-12-17 13:09:16.709486664 +0000 ++++ sos-3.2/sos/utilities.py 2014-12-17 13:09:22.257522498 +0000 +@@ -140,7 +140,7 @@ def sos_get_command_output(command, time + + # shlex.split() reacts badly to unicode on older python runtimes. + if not six.PY3: +- command = command.encode('utf-8') ++ command = command.encode('utf-8', 'ignore') + args = shlex.split(command) + try: + p = Popen(args, shell=False, stdout=PIPE, stderr=STDOUT, +@@ -159,7 +159,10 @@ def sos_get_command_output(command, time + if p.returncode == 126 or p.returncode == 127: + stdout = six.binary_type(b"") + +- return {'status': p.returncode, 'output': stdout.decode('utf-8')} ++ return { ++ 'status': p.returncode, ++ 'output': stdout.decode('utf-8', 'ignore') ++ } + + + def import_module(module_fqname, superclasses=None): diff --git a/SOURCES/sos-bz1166039-navicli-catch-unreadable-stdin.patch b/SOURCES/sos-bz1166039-navicli-catch-unreadable-stdin.patch new file mode 100644 index 0000000..44c2667 --- /dev/null +++ b/SOURCES/sos-bz1166039-navicli-catch-unreadable-stdin.patch @@ -0,0 +1,42 @@ +From 465746d768ce69684eee57eaa3509d9ae898fee2 Mon Sep 17 00:00:00 2001 +From: "Bryn M. Reeves" +Date: Wed, 17 Dec 2014 12:39:05 +0000 +Subject: [PATCH] [navicli] catch exception if input is unreadable + +CLARiiON SP IP Address or [Enter] to exit: Traceback (most recent call last): + File "/usr/sbin/sosreport", line 25, in + main(sys.argv[1:]) + File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 1408, in main + sos.execute() + File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 1387, in execute + self.setup() + File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 1117, in setup + plug.setup() + File "/usr/lib/python2.7/site-packages/sos/plugins/navicli.py", line 72, in setup + ans = input("CLARiiON SP IP Address or [Enter] to exit: ") +EOFError: EOF when reading a line + +Signed-off-by: Bryn M. Reeves +--- + sos/plugins/navicli.py | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/sos/plugins/navicli.py b/sos/plugins/navicli.py +index 5175f89..3ee7d50 100644 +--- a/sos/plugins/navicli.py ++++ b/sos/plugins/navicli.py +@@ -69,7 +69,10 @@ class Navicli(Plugin, RedHatPlugin): + CLARiiON_IP_address_list = [] + CLARiiON_IP_loop = "stay_in" + while CLARiiON_IP_loop == "stay_in": +- ans = input("CLARiiON SP IP Address or [Enter] to exit: ") ++ try: ++ ans = input("CLARiiON SP IP Address or [Enter] to exit: ") ++ except: ++ return + if self.check_ext_prog("navicli -h %s getsptime" % (ans,)): + CLARiiON_IP_address_list.append(ans) + else: +-- +1.9.3 + diff --git a/SOURCES/sos-bz1171658-docs-update-man-page-for-new-options.patch b/SOURCES/sos-bz1171658-docs-update-man-page-for-new-options.patch new file mode 100644 index 0000000..a05d692 --- /dev/null +++ b/SOURCES/sos-bz1171658-docs-update-man-page-for-new-options.patch @@ -0,0 +1,91 @@ +From 0be76caf77b53ce2726cb419262ceb8f52081c9e Mon Sep 17 00:00:00 2001 +From: "Bryn M. Reeves" +Date: Wed, 17 Dec 2014 13:01:03 +0000 +Subject: [PATCH] [docs] update man page for new options + +The man page was missing: + + --verify + --all-logs + --log-size + --plugin-option + +And listed the old '--ticket' (now --ticket-number). + +Signed-off-by: Bryn M. Reeves +--- + man/en/sosreport.1 | 29 +++++++++++++++++++++++++---- + 1 file changed, 25 insertions(+), 4 deletions(-) + +diff --git a/man/en/sosreport.1 b/man/en/sosreport.1 +index 88589cf..1066b1d 100644 +--- a/man/en/sosreport.1 ++++ b/man/en/sosreport.1 +@@ -8,14 +8,19 @@ sosreport \- Collect and package diagnostic and support data + [-e|--enable-plugins plugin-names]\fR + [-o|--only-plugins plugin-names]\fR + [-a|--alloptions] [-v|--verbose]\fR ++ [-k plug.opt|--plugin-option plug.opt]\fR + [--no-report] [--config-file conf]\fR + [--batch] [--build] [--debug]\fR + [--name name] [--case-id id] [--ticket-number nr] + [--tmp-dir directory]\fR + [-p|--profile profile-name]\fR + [--list-profiles]\fR ++ [--verify]\fR ++ [--log-size]\fR ++ [--all-logs]\fR + [-z|--compression-type method]\fR +- [--help]\fR ++ [-h|--help]\fR ++ + .SH DESCRIPTION + \fBsosreport\fR generates an archive of configuration and diagnostic + information from the running system. The archive may be stored locally +@@ -46,7 +51,7 @@ Enable the specified plugin(s) only (all other plugins should be + disabled). Multiple plugins may be specified by repeating the option + or as a comma-separated list. + .TP +-.B \-k PLUGNAME.PLUGOPT[=VALUE] ++.B \-k PLUGNAME.PLUGOPT[=VALUE], \--plugin-option=PLUGNAME.PLUGOPT[=VALUE] + Specify plug-in options. The option PLUGOPT is enabled, or set to the + specified value in the plug-in PLUGNAME. + .TP +@@ -81,6 +86,22 @@ profiles include: boot, cluster, desktop, debug, hardware, identity, + network, openstack, packagemanager, security, services, storage, + sysmgmt, system, performance, virt, and webserver. + .TP ++.B \--verify ++Instructs plugins to perform plugin-specific verification during data ++collection. This may include package manager verification, log integrity ++testing or other plugin defined behaviour. Use of \--verify may cause ++the time taken to generate a report to be considerably longer. ++.TP ++.B \--log-size ++Places a global limit on the size of any collected set of logs. The ++limit is applied separately for each set of logs collected by any ++plugin. ++.TP ++.B \--all-logs ++Tell plugins to collect all possible log data ignoring any size limits ++and including logs in non-default locations. This option may significantly ++increase the size of reports. ++.TP + .B \-z, \--compression-type METHOD + Override the default compression type specified by the active policy. + .TP +@@ -94,9 +115,9 @@ Specify a name to be used for the archive. + .B \--case-id NUMBER + Specify a case identifier to associate with the archive. + Identifiers may include alphanumeric characters, commas and periods ('.'). +-Synonymous with \--ticket, \--ticket-number. ++Synonymous with \--ticket-number. + .TP +-.B \--ticket, \--ticket-number NUMBER ++.B \--ticket-number NUMBER + Specify a ticket number or other identifier to associate with the archive. + Identifiers may include alphanumeric characters, commas and periods ('.'). + Synonymous with \--case-id. +-- +1.9.3 + diff --git a/SOURCES/sos-bz1176159-backport-mysql-mariadb-support.patch b/SOURCES/sos-bz1176159-backport-mysql-mariadb-support.patch deleted file mode 100644 index f280feb..0000000 --- a/SOURCES/sos-bz1176159-backport-mysql-mariadb-support.patch +++ /dev/null @@ -1,121 +0,0 @@ -diff -up sos-3.0/sos/plugins/mysql.py.orig sos-3.0/sos/plugins/mysql.py ---- sos-3.0/sos/plugins/mysql.py.orig 2015-02-16 18:28:09.372835852 +0000 -+++ sos-3.0/sos/plugins/mysql.py 2015-02-16 18:33:21.888227451 +0000 -@@ -1,52 +1,91 @@ --### 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., 675 Mass Ave, Cambridge, MA 02139, USA. -+# 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., 675 Mass Ave, Cambridge, MA 02139, USA. - - from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin --from os.path import exists -+import os -+ - - class Mysql(Plugin): -- """MySQL related information -+ """MySQL and MariaDB RDBMS - """ - - plugin_name = "mysql" - mysql_cnf = "/etc/my.cnf" - -+ option_list = [ -+ ("dbuser", "username for database dumps", "", "mysql"), -+ ("dbpass", "password for database dumps", "", False), -+ ("dbdump", "collect a database dump", "", False), -+ ("all_logs", "collect all database logs", "", False) -+ ] -+ - def setup(self): - super(Mysql, self).setup() -- self.add_copy_specs([self.mysql_cnf, -- "/var/log/mysql*"]) -+ self.add_copy_specs([ -+ self.mysql_cnf, -+ "/var/log/mysql/mysqld.log", -+ "/var/log/mariadb/mariadb.log", -+ ]) -+ if self.get_option("all_logs"): -+ self.add_copy_specs([ -+ "/var/log/mysql*", -+ "/var/log/mariadb*" -+ ]) -+ if self.get_option("dbdump"): -+ dbuser = self.get_option("dbuser") -+ dbpass = self.get_option("dbpass") -+ if dbpass is False and 'MYSQL_PWD' in os.environ: -+ dbpass = os.environ['MYSQL_PWD'] -+ else: -+ # no MySQL password -+ return -+ os.environ['MYSQL_PWD'] = dbpass -+ -+ opts = "--user=%s --all-databases" % dbuser -+ name = "mysqldump_--all-databases" -+ self.add_cmd_output("mysqldump %s" % opts, suggest_filename=name) - - - class RedHatMysql(Mysql, RedHatPlugin): -- """MySQL related information for RedHat based distributions -- """ - -- packages = ('mysql-server', 'mysql') -+ packages = ( -+ 'mysql-server', -+ 'mysql', -+ 'mariadb-server', -+ 'mariadb' -+ ) - - def setup(self): -- self.mysql_cnf = "/etc/my.cnf" - super(RedHatMysql, self).setup() -- self.add_copy_spec("/etc/ld.so.conf.d/mysql*") -+ self.add_copy_specs([ -+ "/etc/ld.so.conf.d/mysql-*.conf", -+ "/etc/ld.so.conf.d/mariadb-*.conf" -+ ]) -+ self.add_copy_spec("/etc/my.cnf.d/*") - - - class DebianMysql(Mysql, DebianPlugin, UbuntuPlugin): -- """MySQL related information for Debian based distributions -- """ - -- packages = ('mysql-server', 'mysql-common') -+ packages = ( -+ 'mysql-server', -+ 'mysql-common', -+ 'mariadb-server', -+ 'mariadb-common' -+ ) - - def setup(self): -- self.mysql_cnf = "/etc/mysql/my.cnf" - super(DebianMysql, self).setup() - self.add_copy_spec("/etc/mysql/conf.d/mysql*") -+ -+# vim: et ts=4 sw=4 diff --git a/SOURCES/sos-bz1176159-mysql-fix-command-line-dbpass-handling.patch b/SOURCES/sos-bz1176159-mysql-fix-command-line-dbpass-handling.patch deleted file mode 100644 index 7c492e3..0000000 --- a/SOURCES/sos-bz1176159-mysql-fix-command-line-dbpass-handling.patch +++ /dev/null @@ -1,39 +0,0 @@ -From db9ac3fb615b731be87b4116a8939105bf5ced56 Mon Sep 17 00:00:00 2001 -From: "Bryn M. Reeves" -Date: Tue, 23 Dec 2014 14:40:50 +0000 -Subject: [PATCH] [mysql] fix command-line dbpass handling - -The logic for chosing between a command-line and environment -variable passed password in the MySQL plugin was incorrect. This -prevents a database dump from being collected when a password is -given on the command line. - -Altough use of the command line to pass authentication tokens -is discouraged we should ensure the case works. - -Fixes #456. - -Signed-off-by: Bryn M. Reeves ---- - sos/plugins/mysql.py | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/sos/plugins/mysql.py b/sos/plugins/mysql.py -index d148472..edab6d0 100644 ---- a/sos/plugins/mysql.py -+++ b/sos/plugins/mysql.py -@@ -44,9 +44,9 @@ class Mysql(Plugin): - if self.get_option("dbdump"): - dbuser = self.get_option("dbuser") - dbpass = self.get_option("dbpass") -- if dbpass is False and 'MYSQL_PWD' in os.environ: -+ if 'MYSQL_PWD' in os.environ: - dbpass = os.environ['MYSQL_PWD'] -- else: -+ if not dbpass or dbpass is False: - # no MySQL password - return - os.environ['MYSQL_PWD'] = dbpass --- -1.9.3 - diff --git a/SOURCES/sos-bz1176159-mysql-improve-dbuser-dbpass-handling.patch b/SOURCES/sos-bz1176159-mysql-improve-dbuser-dbpass-handling.patch index daa7dca..e6f2d49 100644 --- a/SOURCES/sos-bz1176159-mysql-improve-dbuser-dbpass-handling.patch +++ b/SOURCES/sos-bz1176159-mysql-improve-dbuser-dbpass-handling.patch @@ -1,8 +1,26 @@ -diff -up sos-3.0/sos/plugins/mysql.py.orig sos-3.0/sos/plugins/mysql.py ---- sos-3.0/sos/plugins/mysql.py.orig 2015-01-22 16:42:58.790365255 +0000 -+++ sos-3.0/sos/plugins/mysql.py 2015-01-22 16:43:18.040498536 +0000 -@@ -23,36 +23,52 @@ class Mysql(Plugin): - plugin_name = "mysql" +From 7c12e6c994b3320ef57a13e06f5c445b6bca7935 Mon Sep 17 00:00:00 2001 +From: "Bryn M. Reeves" +Date: Thu, 22 Jan 2015 15:37:15 +0000 +Subject: [PATCH] [mysql] improve handling of dbuser, dbpass and MYSQL_PWD + +Make sure that the mysql plugin behaves correctly when given +different combinations of values for dbuser, dbpass and MYSQL_PWD. + +* If dbdump is set then either dbpass or MYSQL_PWD must be set +* Warn if dbdump is set and dbuser or dbpass is True/False/null + (indicates either 'sosreport -a' or '-k mysql.dbpass') + +Signed-off-by: Bryn M. Reeves +--- + sos/plugins/mysql.py | 24 ++++++++++++++++++++---- + 1 file changed, 20 insertions(+), 4 deletions(-) + +diff --git a/sos/plugins/mysql.py b/sos/plugins/mysql.py +index dd899a3..8dba204 100644 +--- a/sos/plugins/mysql.py ++++ b/sos/plugins/mysql.py +@@ -24,35 +24,51 @@ class Mysql(Plugin): + profiles = ('services',) mysql_cnf = "/etc/my.cnf" + pw_warn_text = " (password visible in process listings)" @@ -11,21 +29,20 @@ diff -up sos-3.0/sos/plugins/mysql.py.orig sos-3.0/sos/plugins/mysql.py ("dbuser", "username for database dumps", "", "mysql"), - ("dbpass", "password for database dumps", "", False), + ("dbpass", "password for database dumps" + pw_warn_text, "", False), - ("dbdump", "collect a database dump", "", False), - ("all_logs", "collect all database logs", "", False) + ("dbdump", "collect a database dump", "", False) ] def setup(self): super(Mysql, self).setup() + - self.add_copy_specs([ + self.add_copy_spec([ self.mysql_cnf, "/var/log/mysql/mysqld.log", "/var/log/mariadb/mariadb.log", ]) + if self.get_option("all_logs"): - self.add_copy_specs([ + self.add_copy_spec([ "/var/log/mysql*", "/var/log/mariadb*" ]) @@ -58,3 +75,6 @@ diff -up sos-3.0/sos/plugins/mysql.py.orig sos-3.0/sos/plugins/mysql.py os.environ['MYSQL_PWD'] = dbpass opts = "--user=%s --all-databases" % dbuser +-- +1.9.3 + diff --git a/SOURCES/sos-bz1176159-mysql-test-for-boolean-values.patch b/SOURCES/sos-bz1176159-mysql-test-for-boolean-values.patch deleted file mode 100644 index cb291c5..0000000 --- a/SOURCES/sos-bz1176159-mysql-test-for-boolean-values.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 05466cd6d9d70321fc7a0097334ef36af8dfeb43 Mon Sep 17 00:00:00 2001 -From: "Bryn M. Reeves" -Date: Tue, 20 Jan 2015 16:16:17 +0000 -Subject: [PATCH] [mysql] test for boolean values in user and password options - -If sosreport is run with '-a' all options will be set to boolean -True. This causes an exception if an attempt is made to set an -environment variable to the option value: - - Traceback (most recent call last): - File "/usr/sbin/sosreport", line 25, in - main(sys.argv[1:]) - File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 1435, in main - sos.execute() - TypeError: must be string, not bool - - > /usr/lib64/python2.7/os.py(471)__setitem__() - -> putenv(key, item) - -Test both values with isinstance(val, bool) and do not attempt to -collect a database dump if either is a boolean. - -Signed-off-by: Bryn M. Reeves ---- - sos/plugins/mysql.py | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/sos/plugins/mysql.py b/sos/plugins/mysql.py -index edab6d0..dd899a3 100644 ---- a/sos/plugins/mysql.py -+++ b/sos/plugins/mysql.py -@@ -44,6 +44,9 @@ class Mysql(Plugin): - if self.get_option("dbdump"): - dbuser = self.get_option("dbuser") - dbpass = self.get_option("dbpass") -+ if isinstance(dbuser, bool) or isinstance(dbpass, bool): -+ # sosreport -a -+ return - if 'MYSQL_PWD' in os.environ: - dbpass = os.environ['MYSQL_PWD'] - if not dbpass or dbpass is False: --- -1.9.3 - diff --git a/SOURCES/sos-bz1180919-mysql-test-for-boolean-values.patch b/SOURCES/sos-bz1180919-mysql-test-for-boolean-values.patch new file mode 100644 index 0000000..8eecd34 --- /dev/null +++ b/SOURCES/sos-bz1180919-mysql-test-for-boolean-values.patch @@ -0,0 +1,44 @@ +From 05466cd6d9d70321fc7a0097334ef36af8dfeb43 Mon Sep 17 00:00:00 2001 +From: "Bryn M. Reeves" +Date: Tue, 20 Jan 2015 16:16:17 +0000 +Subject: [PATCH] [mysql] test for boolean values in user and password options + +If sosreport is run with '-a' all options will be set to boolean +True. This causes an exception if an attempt is made to set an +environment variable to the option value: + + Traceback (most recent call last): + File "/usr/sbin/sosreport", line 25, in + main(sys.argv[1:]) + File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 1435, in main + sos.execute() + TypeError: must be string, not bool + + > /usr/lib64/python2.7/os.py(471)__setitem__() + -> putenv(key, item) + +Test both values with isinstance(val, bool) and do not attempt to +collect a database dump if either is a boolean. + +Signed-off-by: Bryn M. Reeves +--- + sos/plugins/mysql.py | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/sos/plugins/mysql.py b/sos/plugins/mysql.py +index edab6d0..dd899a3 100644 +--- a/sos/plugins/mysql.py ++++ b/sos/plugins/mysql.py +@@ -45,6 +45,9 @@ class Mysql(Plugin): + if self.get_option("dbdump"): + dbuser = self.get_option("dbuser") + dbpass = self.get_option("dbpass") ++ if isinstance(dbuser, bool) or isinstance(dbpass, bool): ++ # sosreport -a ++ return + if 'MYSQL_PWD' in os.environ: + dbpass = os.environ['MYSQL_PWD'] + if not dbpass or dbpass is False: +-- +1.9.3 + diff --git a/SOURCES/sos-bz829069-normalise-tmp-dir-path.patch b/SOURCES/sos-bz829069-normalise-tmp-dir-path.patch deleted file mode 100644 index b9ebb1b..0000000 --- a/SOURCES/sos-bz829069-normalise-tmp-dir-path.patch +++ /dev/null @@ -1,31 +0,0 @@ -commit 2b2fa228391a0188a375a9e3c1e8f03f69c7eafd -Author: Bryn M. Reeves -Date: Thu Nov 7 16:27:44 2013 +0000 - - Normalize temporary directory path - - The archive and temporary file handling classes expect to operate - on absolute paths. If a user specifies a relative path via the - command line --tmp-dir switch it must be normalized before being - passed to these classes to provide correct behaviour. Failing to - do this causes a variety of errors: the final archive cannot be - created since the path is constructed incorrectly and temporary - files are not cleaned up since they are not at the "expected" - location. - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/sosreport.py b/sos/sosreport.py -index 2451439..b1f2e1d 100644 ---- a/sos/sosreport.py -+++ b/sos/sosreport.py -@@ -534,7 +534,8 @@ class SoSReport(object): - self._read_config() - self.policy = sos.policies.load() - self._is_root = self.policy.is_root() -- self.tmpdir = self.policy.get_tmp_dir(self.opts.tmp_dir) -+ self.tmpdir = os.path.abspath( -+ self.policy.get_tmp_dir(self.opts.tmp_dir)) - if not os.path.isdir(self.tmpdir) \ - or not os.access(self.tmpdir, os.W_OK): - # write directly to stderr as logging is not initialised yet diff --git a/SOURCES/sos-bz829297-fix-typo-in-yum-add_forbidden_paths.patch b/SOURCES/sos-bz829297-fix-typo-in-yum-add_forbidden_paths.patch deleted file mode 100644 index 56cc21c..0000000 --- a/SOURCES/sos-bz829297-fix-typo-in-yum-add_forbidden_paths.patch +++ /dev/null @@ -1,26 +0,0 @@ -commit dedffd8549bcaf4688f090d800bff7f4ed7b9d43 -Author: Bryn M. Reeves -Date: Tue Nov 12 13:44:09 2013 +0000 - - Fix typo in yum add_forbidden_paths() - - The PKI files that should be omitted are in /etc/pki/entitlement, - not /etc/pki/entitlements as the plug-in currently uses. - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/plugins/yum.py b/sos/plugins/yum.py -index 6d473c9..5abf06f 100644 ---- a/sos/plugins/yum.py -+++ b/sos/plugins/yum.py -@@ -39,8 +39,8 @@ class Yum(Plugin, RedHatPlugin): - self.add_cmd_output("yum -C repolist") - - # candlepin info -- self.add_forbidden_path("/etc/pki/entitlements/key.pem") -- self.add_forbidden_path("/etc/pki/entitlements/*-key.pem") -+ self.add_forbidden_path("/etc/pki/entitlement/key.pem") -+ self.add_forbidden_path("/etc/pki/entitlement/*-key.pem") - self.add_copy_specs([ - "/etc/pki/product/*.pem", - "/etc/pki/consumer/cert.pem", diff --git a/SOURCES/sos-bz839342-cluster-collect-crm_report.patch b/SOURCES/sos-bz839342-cluster-collect-crm_report.patch deleted file mode 100644 index e9e7fe1..0000000 --- a/SOURCES/sos-bz839342-cluster-collect-crm_report.patch +++ /dev/null @@ -1,28 +0,0 @@ -commit 89a479f315302e87267ec17e1b5d8e5f4b6d8a19 -Author: Bryn M. Reeves -Date: Wed Aug 14 18:36:25 2013 +0100 - - Add crm_report support to cluster plug-in - - Recent cluster stacks using the pacemaker stack include a - crm_report script to generate debugging information for the - cluster. - - Call it in single-node mode in the cluster module. - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/plugins/cluster.py b/sos/plugins/cluster.py -index 0ed3cb4..809f6fd 100644 ---- a/sos/plugins/cluster.py -+++ b/sos/plugins/cluster.py -@@ -82,6 +82,9 @@ class Cluster(Plugin, RedHatPlugin): - self.add_cmd_output("dlm_tool dump") - self.add_cmd_output("dlm_tool ls -n") - self.add_cmd_output("mkqdisk -L") -+ crm_dest = os.path.join(self.cInfo['cmddir'], -+ self.name(), 'crm_report') -+ self.collectExtOutput("crm_report -S --dest %s" % crm_dest) - - def do_lockdump(self): - status, output, time = self.call_ext_prog("dlm_tool ls") diff --git a/SOURCES/sos-bz916705-fix-rhel_version-problems.patch b/SOURCES/sos-bz916705-fix-rhel_version-problems.patch deleted file mode 100644 index 5cce11c..0000000 --- a/SOURCES/sos-bz916705-fix-rhel_version-problems.patch +++ /dev/null @@ -1,186 +0,0 @@ -commit c8fb8ff10de13b9f39044e2196976b15343a4d8e -Author: Bryn M. Reeves -Date: Wed Aug 14 18:22:28 2013 +0100 - - Remove obsolete checks and exception handling from s390 plug-in - - The s390 plug-in has some strange checks on the distribution - version before collecting a couple of s390-specific commands. The - entire code block is also wrapped in try/except. - - Remove this: all add_cmd_output() succeed without exceptions even - if the command does not exist or cannot be run. The exception - handling also does nothing useful. - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/plugins/s390.py b/sos/plugins/s390.py -index 7254649..ed9546b 100644 ---- a/sos/plugins/s390.py -+++ b/sos/plugins/s390.py -@@ -58,14 +58,10 @@ class S390(Plugin, RedHatPlugin): - self.add_cmd_output("find /sys -type f") - self.add_cmd_output("find /proc/s390dbf -type f") - self.add_cmd_output("qethconf list_all") -+ self.add_cmd_output("lsqeth") -+ self.add_cmd_output("lszfcp") - ret, dasd_dev, rtime = self.call_ext_prog("ls /dev/dasd?") - for x in dasd_dev.split('\n'): - self.add_cmd_output("dasdview -x -i -j -l -f %s" % (x,)) - self.add_cmd_output("fdasd -p %s" % (x,)) -- try: -- rhelver = self.policy().rhel_version() -- if rhelver == 5: -- self.add_cmd_output("lsqeth") -- self.add_cmd_output("lszfcp") -- except: -- rhelver = None -+ -commit 27ce4dcc524c0af2ed8c2e8449ed9783e35c174e -Author: Bryn M. Reeves -Date: Wed Aug 14 18:26:08 2013 +0100 - - Remove legacy system support from cluster plug-in - - The cluster plug-in attempted to support three prior generations - of cluster components in a single plug-in. These will never be - required today since all current versions where sos-3.x would be - used are all using much later packages. - - Remove this code and simplify the overall plug-in organisation. - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/plugins/cluster.py b/sos/plugins/cluster.py -index 8a3432e..0ed3cb4 100644 ---- a/sos/plugins/cluster.py -+++ b/sos/plugins/cluster.py -@@ -25,28 +25,19 @@ class Cluster(Plugin, RedHatPlugin): - 'gather output of gfs lockdumps', 'slow', False), - ('lockdump', 'gather dlm lockdumps', 'slow', False)] - -- def check_enabled(self): -- rhelver = self.policy().rhel_version() -- if rhelver == 4: -- self.packages = [ "ccs", "cman", "cman-kernel", "magma", -- "magma-plugins", "rgmanager", "fence", "dlm", -- "dlm-kernel", "gulm", "GFS", "GFS-kernel", -- "lvm2-cluster" ] -- elif rhelver == 5: -- self.packages = [ "rgmanager", "luci", "ricci", -- "system-config-cluster", "gfs-utils", "gnbd", -- "kmod-gfs", "kmod-gnbd", "lvm2-cluster", -- "gfs2-utils" ] -- -- elif rhelver == 6: -- self.packages = [ "ricci", "corosync", "openais", -- "cman", "clusterlib", "fence-agents" ] -- -- self.files = [ "/etc/cluster/cluster.conf" ] -- return Plugin.check_enabled(self) -+ packages = [ -+ "ricci", -+ "corosync", -+ "openais", -+ "cman", -+ "clusterlib", -+ "fence-agents", -+ "pacemaker" -+ ] -+ -+ files = [ "/etc/cluster/cluster.conf" ] - - def setup(self): -- rhelver = self.policy().rhel_version() - - self.add_copy_spec("/etc/cluster.conf") - self.add_copy_spec("/etc/cluster.xml") -@@ -61,13 +52,13 @@ class Cluster(Plugin, RedHatPlugin): - self.add_copy_spec("/etc/fence_virt.conf") - - if self.get_option('gfslockdump'): -- self.do_gfslockdump() -+ self.do_gfslockdump() - - if self.get_option('lockdump'): -- self.do_lockdump() -+ self.do_lockdump() - - self.add_cmd_output("rg_test test " -- + "/etc/cluster/cluster.conf" ) -+ + "/etc/cluster/cluster.conf" ) - self.add_cmd_output("fence_tool ls -n") - self.add_cmd_output("gfs_control ls -n") - self.add_cmd_output("dlm_tool log_plock") -@@ -80,56 +71,23 @@ class Cluster(Plugin, RedHatPlugin): - self.add_cmd_output("ccs_tool lsnode") - self.add_cmd_output("ipvsadm -L") - -- if rhelver is 4: -- self.add_copy_spec("/proc/cluster/*") -- self.add_cmd_output("cman_tool nodes") -- -- if rhelver is not 4: # 5+ -- self.add_cmd_output("cman_tool -a nodes") -- -- if rhelver is 5: -- self.add_cmd_output("group_tool -v") -- self.add_cmd_output("group_tool dump fence") -- self.add_cmd_output("group_tool dump gfs") -- -- if rhelver not in (4,5): # 6+ -- self.add_cmd_output("corosync-quorumtool -l") -- self.add_cmd_output("corosync-quorumtool -s") -- self.add_cmd_output("corosync-cpgtool") -- self.add_cmd_output("corosync-objctl") -- self.add_cmd_output("group_tool ls -g1") -- self.add_cmd_output("gfs_control ls -n") -- self.add_cmd_output("gfs_control dump") -- self.add_cmd_output("fence_tool dump") -- self.add_cmd_output("dlm_tool dump") -- self.add_cmd_output("dlm_tool ls -n") -- self.add_cmd_output("mkqdisk -L") -+ self.add_cmd_output("corosync-quorumtool -l") -+ self.add_cmd_output("corosync-quorumtool -s") -+ self.add_cmd_output("corosync-cpgtool") -+ self.add_cmd_output("corosync-objctl") -+ self.add_cmd_output("group_tool ls -g1") -+ self.add_cmd_output("gfs_control ls -n") -+ self.add_cmd_output("gfs_control dump") -+ self.add_cmd_output("fence_tool dump") -+ self.add_cmd_output("dlm_tool dump") -+ self.add_cmd_output("dlm_tool ls -n") -+ self.add_cmd_output("mkqdisk -L") - - def do_lockdump(self): -- rhelver = self.policy().rhel_version() -- -- if rhelver is 4: -- status, output, time = self.call_ext_prog("cman_tool services") -- for lockspace in re.compile(r'^DLM Lock Space:\s*"([^"]*)".*$', -- re.MULTILINE).findall(output): -- self.call_ext_prog("echo %s > /proc/cluster/dlm_locks" -- % lockspace) -- self.get_cmd_output_now("cat /proc/cluster/dlm_locks", -- suggest_filename = "dlm_locks_%s" % lockspace) -- -- if rhelver is 5: -- status, output, time = self.call_ext_prog("group_tool") -- for lockspace in re.compile(r'^dlm\s+[^\s]+\s+([^\s]+)$', -- re.MULTILINE).findall(output): -- self.add_cmd_output("dlm_tool lockdebug '%s'" % lockspace, -- suggest_filename = "dlm_locks_%s" % lockspace) -- -- else: # RHEL6 or recent Fedora -- status, output, time = self.call_ext_prog("dlm_tool ls") -- for lockspace in re.compile(r'^name\s+([^\s]+)$', -- re.MULTILINE).findall(output): -- self.add_cmd_output("dlm_tool lockdebug -svw '%s'" -- % lockspace, -+ status, output, time = self.call_ext_prog("dlm_tool ls") -+ for lockspace in re.compile(r'^name\s+([^\s]+)$', -+ re.MULTILINE).findall(output): -+ self.add_cmd_output("dlm_tool lockdebug -svw '%s'" % lockspace, - suggest_filename = "dlm_locks_%s" % lockspace) - - def do_gfslockdump(self): diff --git a/SOURCES/sos-bz916705-remove-rhel_version-from-yum-plugin.patch b/SOURCES/sos-bz916705-remove-rhel_version-from-yum-plugin.patch deleted file mode 100644 index 83595c2..0000000 --- a/SOURCES/sos-bz916705-remove-rhel_version-from-yum-plugin.patch +++ /dev/null @@ -1,21 +0,0 @@ -commit ce04c7d20ccaec04d79d625446960195229a8953 -Author: Bryn M. Reeves -Date: Fri Jan 24 15:24:28 2014 +0000 - - Remove obsolete rhel_version() usage from yum plugin - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/plugins/yum.py b/sos/plugins/yum.py -index 5abf06f..867302c 100644 ---- a/sos/plugins/yum.py -+++ b/sos/plugins/yum.py -@@ -26,8 +26,6 @@ class Yum(Plugin, RedHatPlugin): - ("yumdebug", "gather yum debugging data", "slow", False)] - - def setup(self): -- rhelver = self.policy().rhel_version() -- - # Pull all yum related information - self.add_copy_specs([ - "/etc/yum", diff --git a/SOURCES/sos-bz971420-strip-trailing-newline.patch b/SOURCES/sos-bz971420-strip-trailing-newline.patch deleted file mode 100644 index e675d66..0000000 --- a/SOURCES/sos-bz971420-strip-trailing-newline.patch +++ /dev/null @@ -1,25 +0,0 @@ -commit dc1e011f3035646c81b54c265dff638ffe282ff1 -Author: Bryn M. Reeves -Date: Tue Aug 6 21:53:41 2013 +0100 - - Strip trailing newline from command output - - This commit brings sos-3.x behaviour into line with earlier - releases and produces captured command output that is consistent - with typical shell redirection use. - - Resolves: bz971420 - -diff --git a/sos/utilities.py b/sos/utilities.py -index fcc78c5..4279b12 100644 ---- a/sos/utilities.py -+++ b/sos/utilities.py -@@ -161,6 +161,8 @@ def sos_get_command_output(command, timeout=300): - stdout=PIPE, stderr=STDOUT, - bufsize=-1, env = cmd_env) - stdout, stderr = p.communicate() -+ # hack to delete trailing '\n' added by p.communicate() -+ if stdout[-1:] == '\n': stdout = stdout[:-1] - return (p.returncode, stdout, 0) - else: - return (127, "", 0) diff --git a/SOURCES/sos-bz996992-do-not-attempt-to-read-use-gss-proxy.patch b/SOURCES/sos-bz996992-do-not-attempt-to-read-use-gss-proxy.patch deleted file mode 100644 index 40a89a8..0000000 --- a/SOURCES/sos-bz996992-do-not-attempt-to-read-use-gss-proxy.patch +++ /dev/null @@ -1,35 +0,0 @@ -commit 36140249bcab17d1a3a69467208ca25af85a75f1 -Author: Bryn M. Reeves -Date: Wed Aug 14 15:59:45 2013 +0100 - - Do not attempt to read use-gss-proxy file in procfs - - The networking plug-in scoops up /proc/net. There are some pseudo- - files in here that we should avoid touching. These either have - side-effects or hang the reading process. - - Add a forbidden path for the /proc/net/rpc/*/{channel,flush} - files as these will cause side-effects for RPC applications - running on the host. - - Forward port of commit 61585d4 on rhel-6 branch. - - Signed-off-by: Bryn M. Reeves - - Conflicts: - sos/plugins/networking.py - -diff --git a/sos/plugins/networking.py b/sos/plugins/networking.py -index 90b740c..90e1b58 100644 ---- a/sos/plugins/networking.py -+++ b/sos/plugins/networking.py -@@ -80,6 +80,9 @@ class Networking(Plugin): - "/etc/NetworkManager/NetworkManager.conf", - "/etc/NetworkManager/system-connections", - "/etc/dnsmasq*"]) -+ self.add_forbidden_path("/proc/net/rpc/use-gss-proxy") -+ self.add_forbidden_path("/proc/net/rpc/*/channel") -+ self.add_forbidden_path("/proc/net/rpc/*/flush") - - ip_addr_file=self.get_cmd_output_now("ip -o addr", root_symlink = "ip_addr") - ip_addr_out=self.call_ext_prog("ip -o addr") diff --git a/SOURCES/sos-bz997083-Fix-policy-classes-for--tmp-dir.patch b/SOURCES/sos-bz997083-Fix-policy-classes-for--tmp-dir.patch deleted file mode 100644 index c089c41..0000000 --- a/SOURCES/sos-bz997083-Fix-policy-classes-for--tmp-dir.patch +++ /dev/null @@ -1,35 +0,0 @@ -commit 420f6ee7a25833ebaaea224fc0955cacdecdd6c2 -Author: Bryn M. Reeves -Date: Mon Jun 10 20:32:20 2013 +0100 - - Fix policy classes for --tmp-dir - - Policy classes need to return the user-supplied temporary - directory if they decide not to override it. - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/policies/__init__.py b/sos/policies/__init__.py -index 752d480..983842d 100644 ---- a/sos/policies/__init__.py -+++ b/sos/policies/__init__.py -@@ -190,6 +190,7 @@ No changes will be made to system configuration. - def get_tmp_dir(self, opt_tmp_dir): - if not opt_tmp_dir: - return tempfile.gettempdir() -+ return opt_tmp_dir - - def validatePlugin(self, plugin_class): - """ -diff --git a/sos/policies/redhat.py b/sos/policies/redhat.py -index c3740dc..9321815 100644 ---- a/sos/policies/redhat.py -+++ b/sos/policies/redhat.py -@@ -85,6 +85,7 @@ class RedHatPolicy(LinuxPolicy): - def get_tmp_dir(self, opt_tmp_dir): - if not opt_tmp_dir: - return self._tmp_dir -+ return opt_tmp_dir - - def get_local_name(self): - return self.host_name() diff --git a/SOURCES/sos-bz997090-cluster-plugin-add-obfuscation-of-luci-secrets.patch b/SOURCES/sos-bz997090-cluster-plugin-add-obfuscation-of-luci-secrets.patch deleted file mode 100644 index 49fa317..0000000 --- a/SOURCES/sos-bz997090-cluster-plugin-add-obfuscation-of-luci-secrets.patch +++ /dev/null @@ -1,28 +0,0 @@ -commit 08ddb0559f29f3525c3b43bf59cc79467e0f75fb -Author: Jan Pokorný -Date: Sat Jul 20 09:16:13 2013 +0200 - - cluster plugin: restrict data collected for luci - - Notably, avoid server cert being added. On the other hand, allow - collection of rotated log files for luci. - - Signed-off-by: Jan Pokorný - -diff --git a/sos/plugins/cluster.py b/sos/plugins/cluster.py -index b9fa8b3..50e0e0b 100644 ---- a/sos/plugins/cluster.py -+++ b/sos/plugins/cluster.py -@@ -46,9 +46,10 @@ class Cluster(Plugin, RedHatPlugin): - self.add_copy_spec("/etc/sysconfig/cman") - self.add_copy_spec("/etc/fence_virt.conf") - self.add_copy_spec("/var/lib/ricci") -- self.add_copy_spec("/var/lib/luci") -+ self.add_copy_spec("/var/lib/luci/data/luci.db") -+ self.add_copy_spec("/var/lib/luci/etc") - self.add_copy_spec("/var/log/cluster") -- self.add_copy_spec("/var/log/luci/luci.log") -+ self.add_copy_spec("/var/log/luci") - self.add_copy_spec("/etc/fence_virt.conf") - - if self.get_option('gfslockdump'): diff --git a/SOURCES/sos-bz997094-Added-XFS-plugin.patch b/SOURCES/sos-bz997094-Added-XFS-plugin.patch deleted file mode 100644 index fe57b96..0000000 --- a/SOURCES/sos-bz997094-Added-XFS-plugin.patch +++ /dev/null @@ -1,54 +0,0 @@ -commit dc11544c78dda4625cb6d985f6e1d76036ba6faf -Author: Pierguido Lambri -Date: Sat Jul 6 21:21:42 2013 +0100 - - Added XFS plugin - - Signed-off-by: Pierguido Lambri - -diff --git a/sos/plugins/xfs.py b/sos/plugins/xfs.py -new file mode 100644 -index 0000000..fe84b03 ---- /dev/null -+++ b/sos/plugins/xfs.py -@@ -0,0 +1,40 @@ -+### 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., 675 Mass Ave, Cambridge, MA 02139, USA. -+ -+from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin -+import os -+import re -+from itertools import * -+ -+class Xfs(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): -+ """information on the XFS filesystem -+ """ -+ -+ plugin_name = 'xfs' -+ -+ option_list = [("logprint", 'gathers the log information', 'slow', False)] -+ -+ def setup(self): -+ mounts = '/proc/mounts' -+ ext_fs_regex = r"^(/dev/.+).+xfs\s+" -+ for dev in izip(self.do_regex_find_all(ext_fs_regex, mounts)): -+ for e in dev: -+ parts = e.split(' ') -+ self.add_cmd_output("xfs_info %s" % (parts[1])) -+ -+ if self.get_option('logprint'): -+ for dev in izip(self.do_regex_find_all(ext_fs_regex, mounts)): -+ for e in dev: -+ parts = e.split(' ') -+ self.add_cmd_output("xfs_logprint -c %s" % (parts[0])) diff --git a/SOURCES/sos-bz997101-restrict-wbinfo-collection-to-the-current-domain.patch b/SOURCES/sos-bz997101-restrict-wbinfo-collection-to-the-current-domain.patch deleted file mode 100644 index 2bde947..0000000 --- a/SOURCES/sos-bz997101-restrict-wbinfo-collection-to-the-current-domain.patch +++ /dev/null @@ -1,36 +0,0 @@ -commit 10cc09bf4d84d76cbcceccc6f3246bd9f8e9bd93 -Author: Bryn M. Reeves -Date: Tue Jul 30 17:42:40 2013 +0100 - - Restrict wbinfo collection to the current domain. - - The samba module calls the wbinfo command to collect user and - group information. This by default will search all domains to - which the host has access. In a large AD environment with a number - of trusted domains this causes the winbindd process to consume - excessive CPU and memory resources. - - The Samba developers have commented that fixing this would require - a complete rewrite of the winbind protocol and wbinfo client. - - Since listing out the _entire_ set of visible users is unlikely - to be of any use anyway pass the --domain='.' option to restrict - the search to the current domain of the system. - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/plugins/samba.py b/sos/plugins/samba.py -index d4e2fe8..f3a44b7 100644 ---- a/sos/plugins/samba.py -+++ b/sos/plugins/samba.py -@@ -23,8 +23,8 @@ class Samba(Plugin): - self.add_copy_specs([ - "/etc/samba", - "/var/log/samba/*",]) -- self.add_cmd_output("wbinfo -g") -- self.add_cmd_output("wbinfo -u") -+ self.add_cmd_output("wbinfo --domain='.' -g") -+ self.add_cmd_output("wbinfo --domain='.' -u") - self.add_cmd_output("testparm -s -v") - - diff --git a/SOURCES/sos-centos-branding.patch b/SOURCES/sos-centos-branding.patch deleted file mode 100644 index 4353529..0000000 --- a/SOURCES/sos-centos-branding.patch +++ /dev/null @@ -1,1558 +0,0 @@ -diff -uNrp sos-3.0.orig/po/af.po sos-3.0/po/af.po ---- sos-3.0.orig/po/af.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/af.po 2014-06-21 11:15:36.435724571 -0500 -@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL." - msgstr "" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" - - #: ../sos/policyredhat.py:401 -diff -uNrp sos-3.0.orig/po/am.po sos-3.0/po/am.po ---- sos-3.0.orig/po/am.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/am.po 2014-06-21 11:15:36.436724563 -0500 -@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL." - msgstr "" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" - - #: ../sos/policyredhat.py:401 -diff -uNrp sos-3.0.orig/po/ar.po sos-3.0/po/ar.po ---- sos-3.0.orig/po/ar.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/ar.po 2014-06-21 11:16:38.081245080 -0500 -@@ -179,8 +179,8 @@ msgid "Cannot upload to specified URL." - msgstr "لا يمكن الرفع للعنوان المحدّد" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." --msgstr "صودفت مشكلة برفع تقريرك إلى دعم Red Hat. " -+msgid "There was a problem uploading your report to CentOS support." -+msgstr "صودفت مشكلة برفع تقريرك إلى دعم CentOS. " - - #: ../sos/policyredhat.py:401 - #, python-format -diff -uNrp sos-3.0.orig/po/as.po sos-3.0/po/as.po ---- sos-3.0.orig/po/as.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/as.po 2014-06-21 11:15:36.437724555 -0500 -@@ -85,11 +85,11 @@ msgid "" - "No changes will be made to your system.\n" - "\n" - msgstr "" --"এই সামগ্ৰীৰ সহায়ত যান্ত্ৰিক সামগ্ৰী আৰু Red Hat Enterprise Linux\n" -+"এই সামগ্ৰীৰ সহায়ত যান্ত্ৰিক সামগ্ৰী আৰু CentOS Enterprise Linux\n" - "প্ৰণালীৰ প্ৰতিষ্ঠা সম্পৰ্কে বিশদ তথ্য সংগ্ৰহ কৰা হ'ব ।\n" - "তথ্য সংগ্ৰহৰ পিছত /tmp পঞ্জিকাৰ অধীন এটা আৰ্কাইভ নিৰ্মিত হয় ।\n" - "এই আৰ্কাইভ আপুনি সহায়তা প্ৰতিনিধিৰ কাশত পঠায় দিব পাৰে ।\n" --"Red Hat দ্বাৰা এই তথ্য অকল সমস্যাৰ কাৰণ নিৰ্ণয় কৰাৰ বাবে ব্যৱহাৰ কৰা হ'ব\n" -+"CentOS দ্বাৰা এই তথ্য অকল সমস্যাৰ কাৰণ নিৰ্ণয় কৰাৰ বাবে ব্যৱহাৰ কৰা হ'ব\n" - "আৰু ইয়াৰ গোপনীয়তা বজায় ৰাখা হ'ব ।\n" - "\n" - "এই কাম সম্পন্ন হ'বলৈ কিছু সময় ব্যয় হ'ব পাৰে ।\n" -@@ -184,14 +184,14 @@ msgid "Cannot upload to specified URL." - msgstr "উল্লিখিত URL-এ আপলোড কৰিবলৈ ব্যৰ্থ ।" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." --msgstr "আপোনাৰ ৰিপোৰ্টটি Red Hat সহায়তা ব্যৱস্থাত আপলোড কৰিবলৈ সমস্যা ।" -+msgid "There was a problem uploading your report to CentOS support." -+msgstr "আপোনাৰ ৰিপোৰ্টটি CentOS সহায়তা ব্যৱস্থাত আপলোড কৰিবলৈ সমস্যা ।" - - #: ../sos/policyredhat.py:401 - #, fuzzy, python-format - msgid "Your report was successfully uploaded to %s with name:" - msgstr "" --"আপোনাৰ প্ৰদত্ত ৰিপোৰ্ট সফলতাৰে সৈতে Red Hat-ৰ ftp সেৱকত নিম্নলিখিত নামত আপলোড " -+"আপোনাৰ প্ৰদত্ত ৰিপোৰ্ট সফলতাৰে সৈতে CentOS-ৰ ftp সেৱকত নিম্নলিখিত নামত আপলোড " - "কৰা হৈছে:" - - #: ../sos/policyredhat.py:404 -diff -uNrp sos-3.0.orig/po/ast.po sos-3.0/po/ast.po ---- sos-3.0.orig/po/ast.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/ast.po 2014-06-21 11:17:08.318010034 -0500 -@@ -86,10 +86,10 @@ msgid "" - "\n" - msgstr "" - "Esta utilidá recueyerá dalguna información detallada sobro'l\n" --"hardware y la configuración del to sistema Red Hat Enterprise Linux.\n" -+"hardware y la configuración del to sistema CentOS Enterprise Linux.\n" - "La información recuéyese y críase un ficheru baxo /tmp.\n" - "Ésti puede mandase al to representante de sofitu.\n" --"Red Hat usará esta información pa diagnosticar el sistema\n" -+"CentOS usará esta información pa diagnosticar el sistema\n" - "únicamente y considerará esta información como confidencial.\n" - "\n" - "Esti procesu va llevar un tiempu pa completase.\n" -@@ -184,14 +184,14 @@ msgid "Cannot upload to specified URL." - msgstr "Nun se puede cargar a la URL especificada." - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" --"Hebo un problema al cargar el to informe al equipu d'asistencia de Red Hat" -+"Hebo un problema al cargar el to informe al equipu d'asistencia de CentOS" - - #: ../sos/policyredhat.py:401 - #, fuzzy, python-format - msgid "Your report was successfully uploaded to %s with name:" --msgstr "El to informe cargóse bien a los sirvidores ftp e Red Hat col nome:" -+msgstr "El to informe cargóse bien a los sirvidores ftp e CentOS col nome:" - - #: ../sos/policyredhat.py:404 - msgid "Please communicate this name to your support representative." -diff -uNrp sos-3.0.orig/po/be.po sos-3.0/po/be.po ---- sos-3.0.orig/po/be.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/be.po 2014-06-21 11:15:36.438724547 -0500 -@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL." - msgstr "" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" - - #: ../sos/policyredhat.py:401 -diff -uNrp sos-3.0.orig/po/bg.po sos-3.0/po/bg.po ---- sos-3.0.orig/po/bg.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/bg.po 2014-06-21 11:15:36.439724539 -0500 -@@ -172,9 +172,9 @@ msgid "Cannot upload to specified URL." - msgstr "Не може да се качи на посочения URL" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" --"Възникна проблем при качването на вашия отчет на проддръжката на Red Hat." -+"Възникна проблем при качването на вашия отчет на проддръжката на CentOS." - - #: ../sos/policyredhat.py:401 - #, python-format -diff -uNrp sos-3.0.orig/po/bn_IN.po sos-3.0/po/bn_IN.po ---- sos-3.0.orig/po/bn_IN.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/bn_IN.po 2014-06-21 11:15:36.440724532 -0500 -@@ -184,8 +184,8 @@ msgid "Cannot upload to specified URL." - msgstr "উল্লিখিত URL-এ আপলোড করতে ব্যর্থ।" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." --msgstr "আপনার রিপোর্টটি Red Hat সহায়তা ব্যবস্থায় আপলোড করতে সমস্যা।" -+msgid "There was a problem uploading your report to CentOS support." -+msgstr "আপনার রিপোর্টটি CentOS সহায়তা ব্যবস্থায় আপলোড করতে সমস্যা।" - - #: ../sos/policyredhat.py:401 - #, python-format -diff -uNrp sos-3.0.orig/po/bn.po sos-3.0/po/bn.po ---- sos-3.0.orig/po/bn.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/bn.po 2014-06-21 11:15:36.440724532 -0500 -@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL." - msgstr "" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" - - #: ../sos/policyredhat.py:401 -diff -uNrp sos-3.0.orig/po/bs.po sos-3.0/po/bs.po ---- sos-3.0.orig/po/bs.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/bs.po 2014-06-21 11:15:36.441724524 -0500 -@@ -189,8 +189,8 @@ msgid "Cannot upload to specified URL." - msgstr "Nije se mogao postaviti specificirani URL," - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." --msgstr "Bilo je problema u postavljanju vaseg izvjestaja na Red Hat podrsku. " -+msgid "There was a problem uploading your report to CentOS support." -+msgstr "Bilo je problema u postavljanju vaseg izvjestaja na CentOS podrsku. " - - #: ../sos/policyredhat.py:401 - #, python-format -diff -uNrp sos-3.0.orig/po/ca.po sos-3.0/po/ca.po ---- sos-3.0.orig/po/ca.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/ca.po 2014-06-21 11:15:36.442724516 -0500 -@@ -194,8 +194,8 @@ msgid "Cannot upload to specified URL." - msgstr "No es pot pujar a la URL especificada." - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." --msgstr "Hi ha hagut un problema en pujar l'informe al manteniment de Red Hat." -+msgid "There was a problem uploading your report to CentOS support." -+msgstr "Hi ha hagut un problema en pujar l'informe al manteniment de CentOS." - - #: ../sos/policyredhat.py:401 - #, python-format -diff -uNrp sos-3.0.orig/po/cs.po sos-3.0/po/cs.po ---- sos-3.0.orig/po/cs.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/cs.po 2014-06-21 11:15:36.443724508 -0500 -@@ -183,8 +183,8 @@ msgid "Cannot upload to specified URL." - msgstr "Nelze uložit na uvedené URL." - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." --msgstr "Při odesílání zprávy do firmy Red Hat vznikla chyba." -+msgid "There was a problem uploading your report to CentOS support." -+msgstr "Při odesílání zprávy do firmy CentOS vznikla chyba." - - #: ../sos/policyredhat.py:401 - #, python-format -diff -uNrp sos-3.0.orig/po/cy.po sos-3.0/po/cy.po ---- sos-3.0.orig/po/cy.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/cy.po 2014-06-21 11:15:36.443724508 -0500 -@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL." - msgstr "" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" - - #: ../sos/policyredhat.py:401 -diff -uNrp sos-3.0.orig/po/da.po sos-3.0/po/da.po ---- sos-3.0.orig/po/da.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/da.po 2014-06-21 11:15:36.444724501 -0500 -@@ -184,9 +184,9 @@ msgid "Cannot upload to specified URL." - msgstr "Kan ikke overføre til den angivne URL." - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" --"Der opstod et problem under overførsel af din rapport til Red Hat-support." -+"Der opstod et problem under overførsel af din rapport til CentOS-support." - - #: ../sos/policyredhat.py:401 - #, python-format -diff -uNrp sos-3.0.orig/po/de_CH.po sos-3.0/po/de_CH.po ---- sos-3.0.orig/po/de_CH.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/de_CH.po 2014-06-21 11:15:36.444724501 -0500 -@@ -87,10 +87,10 @@ msgid "" - "\n" - msgstr "" - "Dieses Dienstprogramm sammelt einige detaillierte Informationen\n" --"zur Hardware und Einrichtung Ihres Red Hat Enterprise Linux Systems.\n" -+"zur Hardware und Einrichtung Ihres CentOS Enterprise Linux Systems.\n" - "Die Informationen werden gesammelt und in einem Archiv unter /tmp\n" - "zusammengefasst, welches Sie an einen Support-Vertreter schicken\n" --"können. Red Hat verwendet diese Informationen AUSSCHLIESSLICH zu\n" -+"können. CentOS verwendet diese Informationen AUSSCHLIESSLICH zu\n" - "Diagnosezwecken und behandelt sie als vertrauliche Informationen.\n" - "\n" - "Die Fertigstellung dieses Prozesses kann eine Weile dauern.\n" -@@ -188,14 +188,14 @@ msgid "Cannot upload to specified URL." - msgstr "Hochladen zu speziellem URL scheiterte." - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." --msgstr "Beim Hochladen Ihres Berichts zum Red Hat Support trat ein Fehler auf." -+msgid "There was a problem uploading your report to CentOS support." -+msgstr "Beim Hochladen Ihres Berichts zum CentOS Support trat ein Fehler auf." - - #: ../sos/policyredhat.py:401 - #, fuzzy, python-format - msgid "Your report was successfully uploaded to %s with name:" - msgstr "" --"Ihr Bericht wurde erfolgreich auf den Red Hat FTP-Server hochgeladen, mit " -+"Ihr Bericht wurde erfolgreich auf den CentOS FTP-Server hochgeladen, mit " - "dem Namen:" - - #: ../sos/policyredhat.py:404 -diff -uNrp sos-3.0.orig/po/de.po sos-3.0/po/de.po ---- sos-3.0.orig/po/de.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/de.po 2014-06-21 11:15:36.445724493 -0500 -@@ -191,8 +191,8 @@ msgid "Cannot upload to specified URL." - msgstr "Hochladen zu spezieller URL scheiterte." - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." --msgstr "Beim Hochladen Ihres Berichts zum Red Hat Support trat ein Fehler auf." -+msgid "There was a problem uploading your report to CentOS support." -+msgstr "Beim Hochladen Ihres Berichts zum CentOS Support trat ein Fehler auf." - - #: ../sos/policyredhat.py:401 - #, python-format -diff -uNrp sos-3.0.orig/po/el.po sos-3.0/po/el.po ---- sos-3.0.orig/po/el.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/el.po 2014-06-21 11:15:36.445724493 -0500 -@@ -84,10 +84,10 @@ msgid "" - "\n" - msgstr "" - "Αυτό το εργαλείο θα συγκετρώσει ορισμένες πληροφορίες για τον υπολογιστή σας " --"και την εγκατάσταση του Red Hat Enterprise Linux συστήματος.\n" -+"και την εγκατάσταση του CentOS Enterprise Linux συστήματος.\n" - "Οι πληροφορίες συγκετρώνονται και το archive δημιουργήται στο\n" - "/tmp,το οποίο και μπορείτε να στείλετε σε έναν αντιπρόσωπο υποστήριξης.\n" --"Η Red Hat θα χρησιμοποιήσει αυτα τα δεδομένα ΜΟΝΟ για διαγνωστικούς σκοπούς\n" -+"Η CentOS θα χρησιμοποιήσει αυτα τα δεδομένα ΜΟΝΟ για διαγνωστικούς σκοπούς\n" - "και θα παραμείνουν εμπιστευτηκά.\n" - "\n" - -@@ -180,8 +180,8 @@ msgid "Cannot upload to specified URL." - msgstr "Δεν είναι δυνατό το upload στο καθορισμένο URL." - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." --msgstr "Υπήρξε ένα πρόβλημα κατα το upload της αναφοράς σας στην Red Hat." -+msgid "There was a problem uploading your report to CentOS support." -+msgstr "Υπήρξε ένα πρόβλημα κατα το upload της αναφοράς σας στην CentOS." - - #: ../sos/policyredhat.py:401 - #, python-format -diff -uNrp sos-3.0.orig/po/en_GB.po sos-3.0/po/en_GB.po ---- sos-3.0.orig/po/en_GB.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/en_GB.po 2014-06-21 11:15:36.446724485 -0500 -@@ -83,10 +83,10 @@ msgid "" - "\n" - msgstr "" - "This utility will collect some detailed information about the\n" --"hardware and setup of your Red Hat Enterprise Linux system.\n" -+"hardware and setup of your CentOS Enterprise Linux system.\n" - "The information is collected and an archive is packaged under\n" - "/tmp, which you can send to a support representative.\n" --"Red Hat will use this information for diagnostic purposes ONLY\n" -+"CentOS will use this information for diagnostic purposes ONLY\n" - "and it will be considered confidential information.\n" - "\n" - "This process may take a while to complete.\n" -@@ -181,14 +181,14 @@ msgid "Cannot upload to specified URL." - msgstr "Cannot upload to specified URL." - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." --msgstr "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." -+msgstr "There was a problem uploading your report to CentOS support." - - #: ../sos/policyredhat.py:401 - #, fuzzy, python-format - msgid "Your report was successfully uploaded to %s with name:" - msgstr "" --"Your report was successfully uploaded to Red Hat's ftp server with name:" -+"Your report was successfully uploaded to CentOS's ftp server with name:" - - #: ../sos/policyredhat.py:404 - msgid "Please communicate this name to your support representative." -diff -uNrp sos-3.0.orig/po/en.po sos-3.0/po/en.po ---- sos-3.0.orig/po/en.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/en.po 2014-06-21 11:15:36.446724485 -0500 -@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL." - msgstr "" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" - - #: ../sos/policyredhat.py:401 -diff -uNrp sos-3.0.orig/po/es.po sos-3.0/po/es.po ---- sos-3.0.orig/po/es.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/es.po 2014-06-21 11:17:24.153886936 -0500 -@@ -189,9 +189,9 @@ msgid "Cannot upload to specified URL." - msgstr "No se puede cargar a la URL especificada." - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" --"Hubo un problema al cargar su reporte al equipo de asistencia de Red Hat" -+"Hubo un problema al cargar su reporte al equipo de asistencia de CentOS" - - #: ../sos/policyredhat.py:401 - #, python-format -diff -uNrp sos-3.0.orig/po/et.po sos-3.0/po/et.po ---- sos-3.0.orig/po/et.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/et.po 2014-06-21 11:15:36.447724477 -0500 -@@ -169,7 +169,7 @@ msgid "Cannot upload to specified URL." - msgstr "" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" - - #: ../sos/policyredhat.py:401 -diff -uNrp sos-3.0.orig/po/eu_ES.po sos-3.0/po/eu_ES.po ---- sos-3.0.orig/po/eu_ES.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/eu_ES.po 2014-06-21 11:15:36.448724469 -0500 -@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL." - msgstr "" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" - - #: ../sos/policyredhat.py:401 -diff -uNrp sos-3.0.orig/po/fa.po sos-3.0/po/fa.po ---- sos-3.0.orig/po/fa.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/fa.po 2014-06-21 11:15:36.448724469 -0500 -@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL." - msgstr "" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" - - #: ../sos/policyredhat.py:401 -diff -uNrp sos-3.0.orig/po/fi.po sos-3.0/po/fi.po ---- sos-3.0.orig/po/fi.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/fi.po 2014-06-21 11:17:38.280777198 -0500 -@@ -179,8 +179,8 @@ msgid "Cannot upload to specified URL." - msgstr "Annettuun osoitteeseen ei voida lähettää." - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." --msgstr "Raportin lähettämisessä Red Hatin käyttötukeen oli ongelmia." -+msgid "There was a problem uploading your report to CentOS support." -+msgstr "Raportin lähettämisessä CentOSin käyttötukeen oli ongelmia." - - #: ../sos/policyredhat.py:401 - #, python-format -diff -uNrp sos-3.0.orig/po/fr.po sos-3.0/po/fr.po ---- sos-3.0.orig/po/fr.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/fr.po 2014-06-21 11:15:36.449724462 -0500 -@@ -188,10 +188,10 @@ msgid "Cannot upload to specified URL." - msgstr "Impossible de le télécharger vers l'URL spécifié." - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" - "Une erreur s'est produite lors du téléchargement de votre rapport vers le " --"support Red Hat." -+"support CentOS." - - #: ../sos/policyredhat.py:401 - #, python-format -diff -uNrp sos-3.0.orig/po/gl.po sos-3.0/po/gl.po ---- sos-3.0.orig/po/gl.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/gl.po 2014-06-21 11:15:36.450724454 -0500 -@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL." - msgstr "" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" - - #: ../sos/policyredhat.py:401 -diff -uNrp sos-3.0.orig/po/gu.po sos-3.0/po/gu.po ---- sos-3.0.orig/po/gu.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/gu.po 2014-06-21 11:15:36.450724454 -0500 -@@ -186,8 +186,8 @@ msgid "Cannot upload to specified URL." - msgstr "સ્પષ્ટ કરેલ URL અપલોડ કરી શકતા નથી." - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." --msgstr "તમારા અહેવાલને Red Hat આધારમાં અપલોડ કરવામાં સમસ્યા હતી." -+msgid "There was a problem uploading your report to CentOS support." -+msgstr "તમારા અહેવાલને CentOS આધારમાં અપલોડ કરવામાં સમસ્યા હતી." - - #: ../sos/policyredhat.py:401 - #, python-format -diff -uNrp sos-3.0.orig/po/he.po sos-3.0/po/he.po ---- sos-3.0.orig/po/he.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/he.po 2014-06-21 11:15:36.450724454 -0500 -@@ -169,7 +169,7 @@ msgid "Cannot upload to specified URL." - msgstr "" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" - - #: ../sos/policyredhat.py:401 -diff -uNrp sos-3.0.orig/po/hi.po sos-3.0/po/hi.po ---- sos-3.0.orig/po/hi.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/hi.po 2014-06-21 11:15:36.451724446 -0500 -@@ -187,8 +187,8 @@ msgid "Cannot upload to specified URL." - msgstr "निर्दिष्ट URL अपलोड नहीं कर सकता है." - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." --msgstr "आपके रिपोर्ट को Red Hat समर्थन में अपलोड करने में समस्या थी." -+msgid "There was a problem uploading your report to CentOS support." -+msgstr "आपके रिपोर्ट को CentOS समर्थन में अपलोड करने में समस्या थी." - - #: ../sos/policyredhat.py:401 - #, python-format -diff -uNrp sos-3.0.orig/po/hr.po sos-3.0/po/hr.po ---- sos-3.0.orig/po/hr.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/hr.po 2014-06-21 11:15:36.451724446 -0500 -@@ -170,7 +170,7 @@ msgid "Cannot upload to specified URL." - msgstr "" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" - - #: ../sos/policyredhat.py:401 -diff -uNrp sos-3.0.orig/po/hu.po sos-3.0/po/hu.po ---- sos-3.0.orig/po/hu.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/hu.po 2014-06-21 11:15:36.452724438 -0500 -@@ -180,8 +180,8 @@ msgid "Cannot upload to specified URL." - msgstr "Nem lehet az URL-re feltölteni." - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." --msgstr "A jelentést a Red Hat támogatáshoz feltöltvén baj történt." -+msgid "There was a problem uploading your report to CentOS support." -+msgstr "A jelentést a CentOS támogatáshoz feltöltvén baj történt." - - #: ../sos/policyredhat.py:401 - #, python-format -diff -uNrp sos-3.0.orig/po/hy.po sos-3.0/po/hy.po ---- sos-3.0.orig/po/hy.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/hy.po 2014-06-21 11:15:36.452724438 -0500 -@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL." - msgstr "" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" - - #: ../sos/policyredhat.py:401 -diff -uNrp sos-3.0.orig/po/id.po sos-3.0/po/id.po ---- sos-3.0.orig/po/id.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/id.po 2014-06-21 11:15:36.453724430 -0500 -@@ -171,7 +171,7 @@ msgid "Cannot upload to specified URL." - msgstr "" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" - - #: ../sos/policyredhat.py:401 -diff -uNrp sos-3.0.orig/po/ilo.po sos-3.0/po/ilo.po ---- sos-3.0.orig/po/ilo.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/ilo.po 2014-06-21 11:15:36.453724430 -0500 -@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL." - msgstr "" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" - - #: ../sos/policyredhat.py:401 -diff -uNrp sos-3.0.orig/po/is.po sos-3.0/po/is.po ---- sos-3.0.orig/po/is.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/is.po 2014-06-21 11:15:36.453724430 -0500 -@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL." - msgstr "" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" - - #: ../sos/policyredhat.py:401 -diff -uNrp sos-3.0.orig/po/it.po sos-3.0/po/it.po ---- sos-3.0.orig/po/it.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/it.po 2014-06-21 11:15:36.454724423 -0500 -@@ -181,7 +181,7 @@ msgid "Cannot upload to specified URL." - msgstr "Impossibile inviare all'URL specificato." - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" - "Si è verificato un problema nell'inviare il report al supporto tecnico Red " - "Hat." -diff -uNrp sos-3.0.orig/po/ja.po sos-3.0/po/ja.po ---- sos-3.0.orig/po/ja.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/ja.po 2014-06-21 11:15:36.454724423 -0500 -@@ -185,8 +185,8 @@ msgid "Cannot upload to specified URL." - msgstr "指定された URL にアップロードできません。" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." --msgstr "レポートを Red Hat サポートにアップロードするのに問題がありました。" -+msgid "There was a problem uploading your report to CentOS support." -+msgstr "レポートを CentOS サポートにアップロードするのに問題がありました。" - - #: ../sos/policyredhat.py:401 - #, python-format -diff -uNrp sos-3.0.orig/po/ka.po sos-3.0/po/ka.po ---- sos-3.0.orig/po/ka.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/ka.po 2014-06-21 11:15:36.455724415 -0500 -@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL." - msgstr "" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" - - #: ../sos/policyredhat.py:401 -diff -uNrp sos-3.0.orig/po/kn.po sos-3.0/po/kn.po ---- sos-3.0.orig/po/kn.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/kn.po 2014-06-21 11:15:36.455724415 -0500 -@@ -185,9 +185,9 @@ msgid "Cannot upload to specified URL." - msgstr "ಸೂಚಿಸಲಾದ URL ಅನ್ನು ಅಪ್‌ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ." - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" --"ನಿಮ್ಮ ವರದಿಯನ್ನು Red Hat ಬೆಂಬಲದ ಸ್ಥಳಕ್ಕೆ ಅಪ್‌ಲೋಡ್ ಮಾಡುವಲ್ಲಿ ಒಂದು ತೊಂದರೆ ಉಂಟಾಗಿದೆ." -+"ನಿಮ್ಮ ವರದಿಯನ್ನು CentOS ಬೆಂಬಲದ ಸ್ಥಳಕ್ಕೆ ಅಪ್‌ಲೋಡ್ ಮಾಡುವಲ್ಲಿ ಒಂದು ತೊಂದರೆ ಉಂಟಾಗಿದೆ." - - #: ../sos/policyredhat.py:401 - #, python-format -diff -uNrp sos-3.0.orig/po/ko.po sos-3.0/po/ko.po ---- sos-3.0.orig/po/ko.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/ko.po 2014-06-21 11:17:58.331621414 -0500 -@@ -84,10 +84,10 @@ msgid "" - "No changes will be made to your system.\n" - "\n" - msgstr "" --"이 유틸리티는 Red Hat Enterprise Linux 시스템의 하드웨어와 \n" -+"이 유틸리티는 CentOS Enterprise Linux 시스템의 하드웨어와 \n" - "시스템 설정 사항에 대한 상세 정보를 수집하게 됩니다. 수집된 \n" - "정보는 지원 담당자에게 보낼 수 있도록 /tmp 디렉토리 안에 \n" --"아카이브로 저장됩니다. Red Hat은 이 정보를 문제 해결 목적으로만 사용하며 기" -+"아카이브로 저장됩니다. CentOS은 이 정보를 문제 해결 목적으로만 사용하며 기" - "밀 정보로 \n" - "취급할 것입니다. \n" - "\n" -@@ -183,8 +183,8 @@ msgid "Cannot upload to specified URL." - msgstr "지정된 URL에서 업로드할 수 없습니다." - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." --msgstr "리포트를 Red Hat 지원 센터로 업로드하는 데 문제가 발생했습니다." -+msgid "There was a problem uploading your report to CentOS support." -+msgstr "리포트를 CentOS 지원 센터로 업로드하는 데 문제가 발생했습니다." - - #: ../sos/policyredhat.py:401 - #, python-format -diff -uNrp sos-3.0.orig/po/ku.po sos-3.0/po/ku.po ---- sos-3.0.orig/po/ku.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/ku.po 2014-06-21 11:15:36.456724407 -0500 -@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL." - msgstr "" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" - - #: ../sos/policyredhat.py:401 -diff -uNrp sos-3.0.orig/po/lo.po sos-3.0/po/lo.po ---- sos-3.0.orig/po/lo.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/lo.po 2014-06-21 11:15:36.457724399 -0500 -@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL." - msgstr "" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" - - #: ../sos/policyredhat.py:401 -diff -uNrp sos-3.0.orig/po/lt.po sos-3.0/po/lt.po ---- sos-3.0.orig/po/lt.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/lt.po 2014-06-21 11:15:36.457724399 -0500 -@@ -170,7 +170,7 @@ msgid "Cannot upload to specified URL." - msgstr "" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" - - #: ../sos/policyredhat.py:401 -diff -uNrp sos-3.0.orig/po/lv.po sos-3.0/po/lv.po ---- sos-3.0.orig/po/lv.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/lv.po 2014-06-21 11:15:36.458724392 -0500 -@@ -170,7 +170,7 @@ msgid "Cannot upload to specified URL." - msgstr "" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" - - #: ../sos/policyredhat.py:401 -diff -uNrp sos-3.0.orig/po/mk.po sos-3.0/po/mk.po ---- sos-3.0.orig/po/mk.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/mk.po 2014-06-21 11:15:36.459724384 -0500 -@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL." - msgstr "" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" - - #: ../sos/policyredhat.py:401 -diff -uNrp sos-3.0.orig/po/ml.po sos-3.0/po/ml.po ---- sos-3.0.orig/po/ml.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/ml.po 2014-06-21 11:15:36.459724384 -0500 -@@ -183,8 +183,8 @@ msgid "Cannot upload to specified URL." - msgstr "നല്‍കിയിരിക്കുന്ന URL-ലേക്ക് ഫയല്‍ അപ്ലോഡ് ചെയ്യുവാന്‍ സാധ്യമായില്ല " - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." --msgstr "Red Hat-ലേക്ക് നിങ്ങളുടെ റിപ്പോറ്‍ട്ട് അയയ്ക്കുന്നതില്‍ ഏതോ പ്റശ്നം ഉണ്ടായിരിക്കുന്നു." -+msgid "There was a problem uploading your report to CentOS support." -+msgstr "CentOS-ലേക്ക് നിങ്ങളുടെ റിപ്പോറ്‍ട്ട് അയയ്ക്കുന്നതില്‍ ഏതോ പ്റശ്നം ഉണ്ടായിരിക്കുന്നു." - - #: ../sos/policyredhat.py:401 - #, python-format -diff -uNrp sos-3.0.orig/po/mr.po sos-3.0/po/mr.po ---- sos-3.0.orig/po/mr.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/mr.po 2014-06-21 11:15:36.460724376 -0500 -@@ -184,8 +184,8 @@ msgid "Cannot upload to specified URL." - msgstr "निर्देशीत URL अपलोड करण्यास अशक्य." - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." --msgstr "तुमचा अहवाल Red Hat सपोर्टकडे पाठवतेवेळी अडचण आढळली." -+msgid "There was a problem uploading your report to CentOS support." -+msgstr "तुमचा अहवाल CentOS सपोर्टकडे पाठवतेवेळी अडचण आढळली." - - #: ../sos/policyredhat.py:401 - #, python-format -diff -uNrp sos-3.0.orig/po/ms.po sos-3.0/po/ms.po ---- sos-3.0.orig/po/ms.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/ms.po 2014-06-21 11:15:36.461724368 -0500 -@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL." - msgstr "" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" - - #: ../sos/policyredhat.py:401 -diff -uNrp sos-3.0.orig/po/my.po sos-3.0/po/my.po ---- sos-3.0.orig/po/my.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/my.po 2014-06-21 11:15:36.461724368 -0500 -@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL." - msgstr "" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" - - #: ../sos/policyredhat.py:401 -diff -uNrp sos-3.0.orig/po/nb.po sos-3.0/po/nb.po ---- sos-3.0.orig/po/nb.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/nb.po 2014-06-21 11:15:36.462724360 -0500 -@@ -170,7 +170,7 @@ msgid "Cannot upload to specified URL." - msgstr "Kan ikke laste opp til oppgitt URL." - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" - - #: ../sos/policyredhat.py:401 -diff -uNrp sos-3.0.orig/po/nds.po sos-3.0/po/nds.po ---- sos-3.0.orig/po/nds.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/nds.po 2014-06-21 11:15:36.462724360 -0500 -@@ -165,7 +165,7 @@ msgid "Cannot upload to specified URL." - msgstr "" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" - - #: ../sos/policyredhat.py:401 -diff -uNrp sos-3.0.orig/po/nl.po sos-3.0/po/nl.po ---- sos-3.0.orig/po/nl.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/nl.po 2014-06-21 11:15:36.462724360 -0500 -@@ -183,9 +183,9 @@ msgid "Cannot upload to specified URL." - msgstr "Kan niet naar de opgegeven URL uploaden." - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" --"Er trad een probleem op bij het uploaden van jouw rapport naar Red Hat " -+"Er trad een probleem op bij het uploaden van jouw rapport naar CentOS " - "support." - - #: ../sos/policyredhat.py:401 -diff -uNrp sos-3.0.orig/po/nn.po sos-3.0/po/nn.po ---- sos-3.0.orig/po/nn.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/nn.po 2014-06-21 11:15:36.462724360 -0500 -@@ -169,7 +169,7 @@ msgid "Cannot upload to specified URL." - msgstr "" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" - - #: ../sos/policyredhat.py:401 -diff -uNrp sos-3.0.orig/po/nso.po sos-3.0/po/nso.po ---- sos-3.0.orig/po/nso.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/nso.po 2014-06-21 11:15:36.463724353 -0500 -@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL." - msgstr "" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" - - #: ../sos/policyredhat.py:401 -diff -uNrp sos-3.0.orig/po/or.po sos-3.0/po/or.po ---- sos-3.0.orig/po/or.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/or.po 2014-06-21 11:15:36.463724353 -0500 -@@ -188,8 +188,8 @@ msgid "Cannot upload to specified URL." - msgstr "ଉଲ୍ଲିଖିତ URL କୁ ଧାରଣ କରିପାରିବେ ନାହିଁ।" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." --msgstr "Red Hat ସହାୟତାରେ ଆପଣଙ୍କର ବିବରଣୀକୁ ଧାରଣ କରିବାରେ ସମସ୍ୟା ଦୋଇଥିଲା।" -+msgid "There was a problem uploading your report to CentOS support." -+msgstr "CentOS ସହାୟତାରେ ଆପଣଙ୍କର ବିବରଣୀକୁ ଧାରଣ କରିବାରେ ସମସ୍ୟା ଦୋଇଥିଲା।" - - #: ../sos/policyredhat.py:401 - #, python-format -diff -uNrp sos-3.0.orig/po/pa.po sos-3.0/po/pa.po ---- sos-3.0.orig/po/pa.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/pa.po 2014-06-21 11:15:36.463724353 -0500 -@@ -184,8 +184,8 @@ msgid "Cannot upload to specified URL." - msgstr "ਦਿੱਤੇ URL ਤੇ ਅੱਪਲੋਡ ਨਹੀਂ ਕਰ ਸਕਦਾ।" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." --msgstr "ਤੁਹਾਡੀ ਰਿਪੋਰਟ ਨੂੰ Red Hat ਸਹਿਯੋਗ ਤੇ ਅੱਪਲੋਡ ਕਰਨ ਵੇਲੇ ਗਲਤੀ ਆਈ ਹੈ।" -+msgid "There was a problem uploading your report to CentOS support." -+msgstr "ਤੁਹਾਡੀ ਰਿਪੋਰਟ ਨੂੰ CentOS ਸਹਿਯੋਗ ਤੇ ਅੱਪਲੋਡ ਕਰਨ ਵੇਲੇ ਗਲਤੀ ਆਈ ਹੈ।" - - #: ../sos/policyredhat.py:401 - #, python-format -diff -uNrp sos-3.0.orig/po/pl.po sos-3.0/po/pl.po ---- sos-3.0.orig/po/pl.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/pl.po 2014-06-21 11:15:36.463724353 -0500 -@@ -179,10 +179,10 @@ msgid "Cannot upload to specified URL." - msgstr "Nie można wysłać na podany adres URL." - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" - "Wystąpił problem podczas wysyłania raportu do wsparcia technicznego firmy " --"Red Hat." -+"CentOS." - - #: ../sos/policyredhat.py:401 - #, python-format -diff -uNrp sos-3.0.orig/po/pt_BR.po sos-3.0/po/pt_BR.po ---- sos-3.0.orig/po/pt_BR.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/pt_BR.po 2014-06-21 11:15:36.463724353 -0500 -@@ -182,8 +182,8 @@ msgid "Cannot upload to specified URL." - msgstr "Não foi possível enviar para a URL especificada." - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." --msgstr "Houve um problema ao enviar o seu relatório para o suporte da Red Hat." -+msgid "There was a problem uploading your report to CentOS support." -+msgstr "Houve um problema ao enviar o seu relatório para o suporte da CentOS." - - #: ../sos/policyredhat.py:401 - #, python-format -diff -uNrp sos-3.0.orig/po/pt.po sos-3.0/po/pt.po ---- sos-3.0.orig/po/pt.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/pt.po 2014-06-21 11:15:36.463724353 -0500 -@@ -185,8 +185,8 @@ msgid "Cannot upload to specified URL." - msgstr "Não foi possível submeter para o URL especificado." - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." --msgstr "Ocorreu um erro ao submeter o seu relatório para o suporte Red Hat." -+msgid "There was a problem uploading your report to CentOS support." -+msgstr "Ocorreu um erro ao submeter o seu relatório para o suporte CentOS." - - #: ../sos/policyredhat.py:401 - #, python-format -diff -uNrp sos-3.0.orig/po/ro.po sos-3.0/po/ro.po ---- sos-3.0.orig/po/ro.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/ro.po 2014-06-21 11:15:36.464724345 -0500 -@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL." - msgstr "" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" - - #: ../sos/policyredhat.py:401 -diff -uNrp sos-3.0.orig/po/ru.po sos-3.0/po/ru.po ---- sos-3.0.orig/po/ru.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/ru.po 2014-06-21 11:15:36.464724345 -0500 -@@ -186,9 +186,9 @@ msgid "Cannot upload to specified URL." - msgstr "Не удалось отправить файл." - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" --"Произошла ошибка при попытке отправить отчёт в службу поддержки Red Hat." -+"Произошла ошибка при попытке отправить отчёт в службу поддержки CentOS." - - #: ../sos/policyredhat.py:401 - #, python-format -diff -uNrp sos-3.0.orig/po/si.po sos-3.0/po/si.po ---- sos-3.0.orig/po/si.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/si.po 2014-06-21 11:15:36.464724345 -0500 -@@ -85,11 +85,11 @@ msgid "" - "No changes will be made to your system.\n" - "\n" - msgstr "" --"මෙම උපයෝගි තාවය දෘඩාංග පිළිබදව සවිස්තරාත්මක තොරතුරු රැස්කරණ අතර ඔබගේ Red Hat " -+"මෙම උපයෝගි තාවය දෘඩාංග පිළිබදව සවිස්තරාත්මක තොරතුරු රැස්කරණ අතර ඔබගේ CentOS " - "Enterprise Linux පද්ධතිය පිහිටවනු ලැබේ.\n" - "රැස් කළ තොරතුරු සහ සංරක්‍ෂකය /tmp යටතේ ඇසුරුම් ගත කර ඇති අතර ඔබට එය සහායක නියෝජිත වෙත " - "යැවිය හැක.\n" --"Red Hat මෙම තොරතුරු භාවිතා කරන්නේ දෝෂ විනිශ්චය පමණක් වන අතර එම තොරතුරු රහසිගත තොරතුරු " -+"CentOS මෙම තොරතුරු භාවිතා කරන්නේ දෝෂ විනිශ්චය පමණක් වන අතර එම තොරතුරු රහසිගත තොරතුරු " - "ලෙස සළකණු ලබයි.\n" - "\n" - "මෙම ක්‍රියාව නිම වීමට වේලාවක් ගතවනු ඇත.\n" -@@ -184,13 +184,13 @@ msgid "Cannot upload to specified URL." - msgstr "දක්වන ලඳ URL වෙත ලබා දිය නොහැක." - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." --msgstr "ඔබගේ වාර්තාව Red Hat සහය වෙතට ලබා දිමේදි දෝෂයල් ඇති විය." -+msgid "There was a problem uploading your report to CentOS support." -+msgstr "ඔබගේ වාර්තාව CentOS සහය වෙතට ලබා දිමේදි දෝෂයල් ඇති විය." - - #: ../sos/policyredhat.py:401 - #, fuzzy, python-format - msgid "Your report was successfully uploaded to %s with name:" --msgstr "ඔබගේ වාර්තාව සාර්තකව Red Hat's ftp සේවාදායකයට ලබාදුන් අතර නම වූයේ:" -+msgstr "ඔබගේ වාර්තාව සාර්තකව CentOS's ftp සේවාදායකයට ලබාදුන් අතර නම වූයේ:" - - #: ../sos/policyredhat.py:404 - msgid "Please communicate this name to your support representative." -diff -uNrp sos-3.0.orig/po/sk.po sos-3.0/po/sk.po ---- sos-3.0.orig/po/sk.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/sk.po 2014-06-21 11:15:36.464724345 -0500 -@@ -182,8 +182,8 @@ msgid "Cannot upload to specified URL." - msgstr "Nie je možné odoslať na zadanú adresu URL." - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." --msgstr "Nastal problém pri odosielaní vašej správy na podporu Red Hat." -+msgid "There was a problem uploading your report to CentOS support." -+msgstr "Nastal problém pri odosielaní vašej správy na podporu CentOS." - - #: ../sos/policyredhat.py:401 - #, python-format -diff -uNrp sos-3.0.orig/po/sl.po sos-3.0/po/sl.po ---- sos-3.0.orig/po/sl.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/sl.po 2014-06-21 11:15:36.464724345 -0500 -@@ -170,7 +170,7 @@ msgid "Cannot upload to specified URL." - msgstr "" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" - - #: ../sos/policyredhat.py:401 -diff -uNrp sos-3.0.orig/po/sos.pot sos-3.0/po/sos.pot ---- sos-3.0.orig/po/sos.pot 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/sos.pot 2014-06-21 11:15:36.464724345 -0500 -@@ -169,7 +169,7 @@ msgid "Cannot upload to specified URL." - msgstr "" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" - - #: ../sos/policyredhat.py:401 -diff -uNrp sos-3.0.orig/po/sq.po sos-3.0/po/sq.po ---- sos-3.0.orig/po/sq.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/sq.po 2014-06-21 11:15:36.464724345 -0500 -@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL." - msgstr "" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" - - #: ../sos/policyredhat.py:401 -diff -uNrp sos-3.0.orig/po/sr@latin.po sos-3.0/po/sr@latin.po ---- sos-3.0.orig/po/sr@latin.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/sr@latin.po 2014-06-21 11:15:36.465724337 -0500 -@@ -182,8 +182,8 @@ msgid "Cannot upload to specified URL." - msgstr "Ne mogu da pošaljem na navedeni URL." - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." --msgstr "Pojavio se problem pri slanju vašeg izveštaja Red Hat podršci." -+msgid "There was a problem uploading your report to CentOS support." -+msgstr "Pojavio se problem pri slanju vašeg izveštaja CentOS podršci." - - #: ../sos/policyredhat.py:401 - #, python-format -diff -uNrp sos-3.0.orig/po/sr.po sos-3.0/po/sr.po ---- sos-3.0.orig/po/sr.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/sr.po 2014-06-21 11:15:36.465724337 -0500 -@@ -182,8 +182,8 @@ msgid "Cannot upload to specified URL." - msgstr "Не могу да пошаљем на наведени УРЛ." - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." --msgstr "Појавио се проблем при слању вашег извештаја Red Hat подршци." -+msgid "There was a problem uploading your report to CentOS support." -+msgstr "Појавио се проблем при слању вашег извештаја CentOS подршци." - - #: ../sos/policyredhat.py:401 - #, python-format -diff -uNrp sos-3.0.orig/po/sv.po sos-3.0/po/sv.po ---- sos-3.0.orig/po/sv.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/sv.po 2014-06-21 11:15:36.465724337 -0500 -@@ -185,8 +185,8 @@ msgid "Cannot upload to specified URL." - msgstr "Kan inte skicka till angiven URL." - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." --msgstr "Ett problem uppstod när din rapport skickades till Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." -+msgstr "Ett problem uppstod när din rapport skickades till CentOS support." - - #: ../sos/policyredhat.py:401 - #, python-format -diff -uNrp sos-3.0.orig/po/ta.po sos-3.0/po/ta.po ---- sos-3.0.orig/po/ta.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/ta.po 2014-06-21 11:15:36.465724337 -0500 -@@ -188,8 +188,8 @@ msgid "Cannot upload to specified URL." - msgstr "குறிப்பிட்ட இணைய முகவரியில் ஏற்ற முடியவில்லை." - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." --msgstr "உங்கள் அறிக்கையை Red Hat சேவைக்கு அனுப்புவதில் சிக்கல்." -+msgid "There was a problem uploading your report to CentOS support." -+msgstr "உங்கள் அறிக்கையை CentOS சேவைக்கு அனுப்புவதில் சிக்கல்." - - #: ../sos/policyredhat.py:401 - #, python-format -diff -uNrp sos-3.0.orig/po/te.po sos-3.0/po/te.po ---- sos-3.0.orig/po/te.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/te.po 2014-06-21 11:15:36.465724337 -0500 -@@ -185,8 +185,8 @@ msgid "Cannot upload to specified URL." - msgstr "తెలుపబడిన URLకు అప్‌లోడ్ చేయలేదు." - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." --msgstr "మీ సమస్యను Red Hat మద్దతునకు అప్‌లోడు చేయుటలో వొక సమస్యవుంది." -+msgid "There was a problem uploading your report to CentOS support." -+msgstr "మీ సమస్యను CentOS మద్దతునకు అప్‌లోడు చేయుటలో వొక సమస్యవుంది." - - #: ../sos/policyredhat.py:401 - #, python-format -diff -uNrp sos-3.0.orig/po/th.po sos-3.0/po/th.po ---- sos-3.0.orig/po/th.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/th.po 2014-06-21 11:18:12.876508348 -0500 -@@ -84,9 +84,9 @@ msgid "" - "\n" - msgstr "" - "เครื่องมือนี้จะเก็บข้อมูลโดยละเอียดเกี่ยวกับฮาร์ดแวร์และการตั้งค่า\n" --"ระบบ Red Hat Enterprise Linux ของคุณ ข้อมูลจะถูกเก็บและ\n" -+"ระบบ CentOS Enterprise Linux ของคุณ ข้อมูลจะถูกเก็บและ\n" - "สร้างเป็นไฟล์ที่ /tmp ซึ่งคุณสามารถส่งไปยังผู้สนับสนุนได้\n" --"Red Hat จะใช้ข้อมูลนี้ในการแก้ไขปัญหาเท่านั้น และจะถือว่าเป็น\n" -+"CentOS จะใช้ข้อมูลนี้ในการแก้ไขปัญหาเท่านั้น และจะถือว่าเป็น\n" - "ความลับ\n" - "\n" - "กระบวนการนี้อาจจะใช้เวลาสักครู่ในการทำงาน จะไม่มีการแก้ไข\n" -@@ -180,13 +180,13 @@ msgid "Cannot upload to specified URL." - msgstr "ไม่สามารถอัพโหลดไปยัง URL ที่ระบุ" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." --msgstr "มีปัญหาในการอัพโหลดรายงานของคุณไปยังฝ่ายสนับสนุน Red Hat" -+msgid "There was a problem uploading your report to CentOS support." -+msgstr "มีปัญหาในการอัพโหลดรายงานของคุณไปยังฝ่ายสนับสนุน CentOS" - - #: ../sos/policyredhat.py:401 - #, fuzzy, python-format - msgid "Your report was successfully uploaded to %s with name:" --msgstr "รายงานของคุณได้ถูกส่งไปยังเซิร์ฟเวอร์ ftp ของ Red Hat ในชื่อ:" -+msgstr "รายงานของคุณได้ถูกส่งไปยังเซิร์ฟเวอร์ ftp ของ CentOS ในชื่อ:" - - #: ../sos/policyredhat.py:404 - msgid "Please communicate this name to your support representative." -diff -uNrp sos-3.0.orig/po/tr.po sos-3.0/po/tr.po ---- sos-3.0.orig/po/tr.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/tr.po 2014-06-21 11:15:36.466724329 -0500 -@@ -185,8 +185,8 @@ msgid "Cannot upload to specified URL." - msgstr "Belirtilen URL 'ye yükleme yapılamadı." - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." --msgstr "Raporunuz Red Hat desteğe yüklenirken bir sorunla karşılaşıldı." -+msgid "There was a problem uploading your report to CentOS support." -+msgstr "Raporunuz CentOS desteğe yüklenirken bir sorunla karşılaşıldı." - - #: ../sos/policyredhat.py:401 - #, python-format -diff -uNrp sos-3.0.orig/po/uk.po sos-3.0/po/uk.po ---- sos-3.0.orig/po/uk.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/uk.po 2014-06-21 11:15:36.466724329 -0500 -@@ -183,8 +183,8 @@ msgid "Cannot upload to specified URL." - msgstr "Не вдається надіслати файл." - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." --msgstr "Виникла помилка при спробі надіслати звіт до служби підтримки Red Hat." -+msgid "There was a problem uploading your report to CentOS support." -+msgstr "Виникла помилка при спробі надіслати звіт до служби підтримки CentOS." - - #: ../sos/policyredhat.py:401 - #, python-format -diff -uNrp sos-3.0.orig/po/ur.po sos-3.0/po/ur.po ---- sos-3.0.orig/po/ur.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/ur.po 2014-06-21 11:15:36.466724329 -0500 -@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL." - msgstr "" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" - - #: ../sos/policyredhat.py:401 -diff -uNrp sos-3.0.orig/po/vi.po sos-3.0/po/vi.po ---- sos-3.0.orig/po/vi.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/vi.po 2014-06-21 11:15:36.466724329 -0500 -@@ -169,7 +169,7 @@ msgid "Cannot upload to specified URL." - msgstr "" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" - - #: ../sos/policyredhat.py:401 -diff -uNrp sos-3.0.orig/po/zh_CN.po sos-3.0/po/zh_CN.po ---- sos-3.0.orig/po/zh_CN.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/zh_CN.po 2014-06-21 11:15:36.466724329 -0500 -@@ -184,7 +184,7 @@ msgid "Cannot upload to specified URL." - msgstr "无法上传到指定的网址。" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "在将您的报告上传到红帽支持时出错。" - - #: ../sos/policyredhat.py:401 -diff -uNrp sos-3.0.orig/po/zh_TW.po sos-3.0/po/zh_TW.po ---- sos-3.0.orig/po/zh_TW.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/zh_TW.po 2014-06-21 11:15:36.466724329 -0500 -@@ -180,8 +180,8 @@ msgid "Cannot upload to specified URL." - msgstr "無法上傳指定的網址。" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." --msgstr "將報告上傳至 Red Hat 技術支援時,出現問題。" -+msgid "There was a problem uploading your report to CentOS support." -+msgstr "將報告上傳至 CentOS 技術支援時,出現問題。" - - #: ../sos/policyredhat.py:401 - #, python-format -diff -uNrp sos-3.0.orig/po/zu.po sos-3.0/po/zu.po ---- sos-3.0.orig/po/zu.po 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/po/zu.po 2014-06-21 11:15:36.467724321 -0500 -@@ -168,7 +168,7 @@ msgid "Cannot upload to specified URL." - msgstr "" - - #: ../sos/policyredhat.py:399 --msgid "There was a problem uploading your report to Red Hat support." -+msgid "There was a problem uploading your report to CentOS support." - msgstr "" - - #: ../sos/policyredhat.py:401 -diff -uNrp sos-3.0.orig/sos/plugins/apache.py sos-3.0/sos/plugins/apache.py ---- sos-3.0.orig/sos/plugins/apache.py 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/sos/plugins/apache.py 2014-06-21 11:20:20.422520121 -0500 -@@ -22,7 +22,7 @@ class Apache(Plugin): - option_list = [("log", "gathers all apache logs", "slow", False)] - - class RedHatApache(Apache, RedHatPlugin): -- """Apache related information for Red Hat distributions -+ """Apache related information for CentOS distributions - """ - files = ('/etc/httpd/conf/httpd.conf',) - -diff -uNrp sos-3.0.orig/sos/plugins/cgroups.py sos-3.0/sos/plugins/cgroups.py ---- sos-3.0.orig/sos/plugins/cgroups.py 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/sos/plugins/cgroups.py 2014-06-21 11:20:20.424520105 -0500 -@@ -30,7 +30,7 @@ class DebianCgroups(Cgroups, DebianPlugi - return - - class RedHatCgroups(Cgroups, RedHatPlugin): -- """Red Hat specific cgroup subsystem information -+ """CentOS specific cgroup subsystem information - """ - - def setup(self): -diff -uNrp sos-3.0.orig/sos/plugins/cs.py sos-3.0/sos/plugins/cs.py ---- sos-3.0.orig/sos/plugins/cs.py 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/sos/plugins/cs.py 2014-06-21 11:20:20.425520098 -0500 -@@ -21,7 +21,7 @@ from os.path import exists - from glob import glob - - class CertificateSystem(Plugin, RedHatPlugin): -- """Red Hat Certificate System 7.1, 7.3, 8.0 and dogtag related information -+ """CentOS Certificate System 7.1, 7.3, 8.0 and dogtag related information - """ - - plugin_name = 'certificatesystem' -@@ -49,7 +49,7 @@ class CertificateSystem(Plugin, RedHatPl - def setup(self): - csversion = self.checkversion() - if not csversion: -- self.add_alert("Red Hat Certificate System not found.") -+ self.add_alert("CentOS Certificate System not found.") - return - if csversion == 71: - self.add_copy_specs([ -diff -uNrp sos-3.0.orig/sos/plugins/dhcp.py sos-3.0/sos/plugins/dhcp.py ---- sos-3.0.orig/sos/plugins/dhcp.py 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/sos/plugins/dhcp.py 2014-06-21 11:20:20.426520091 -0500 -@@ -21,7 +21,7 @@ class Dhcp(Plugin): - plugin_name = "dhcp" - - class RedHatDhcp(Dhcp, RedHatPlugin): -- """DHCP related information for Red Hat based distributions""" -+ """DHCP related information for CentOS based distributions""" - - files = ('/etc/rc.d/init.d/dhcpd',) - packages = ('dhcp',) -diff -uNrp sos-3.0.orig/sos/plugins/hardware.py sos-3.0/sos/plugins/hardware.py ---- sos-3.0.orig/sos/plugins/hardware.py 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/sos/plugins/hardware.py 2014-06-21 11:20:20.429520069 -0500 -@@ -36,7 +36,7 @@ class Hardware(Plugin): - - - class RedHatHardware(Hardware, RedHatPlugin): -- """hardware related information for Red Hat distribution -+ """hardware related information for CentOS distribution - """ - - def setup(self): -diff -uNrp sos-3.0.orig/sos/plugins/hts.py sos-3.0/sos/plugins/hts.py ---- sos-3.0.orig/sos/plugins/hts.py 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/sos/plugins/hts.py 2014-06-21 11:20:20.429520069 -0500 -@@ -15,7 +15,7 @@ - from sos.plugins import Plugin, RedHatPlugin - - class HardwareTestSuite(Plugin, RedHatPlugin): -- """Red Hat Hardware Test Suite related information -+ """CentOS Hardware Test Suite related information - """ - - plugin_name = 'hardwaretestsuite' -diff -uNrp sos-3.0.orig/sos/plugins/__init__.py sos-3.0/sos/plugins/__init__.py ---- sos-3.0.orig/sos/plugins/__init__.py 2014-06-21 11:11:15.843754983 -0500 -+++ sos-3.0/sos/plugins/__init__.py 2014-06-21 11:20:20.431520054 -0500 -@@ -711,7 +711,7 @@ class Plugin(object): - - - class RedHatPlugin(object): -- """Tagging class to indicate that this plugin works with Red Hat Linux""" -+ """Tagging class to indicate that this plugin works with CentOS Linux""" - pass - - class UbuntuPlugin(object): -diff -uNrp sos-3.0.orig/sos/plugins/ipsec.py sos-3.0/sos/plugins/ipsec.py ---- sos-3.0.orig/sos/plugins/ipsec.py 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/sos/plugins/ipsec.py 2014-06-21 11:20:20.432520046 -0500 -@@ -24,7 +24,7 @@ class IPSec(Plugin): - packages = ('ipsec-tools',) - - class RedHatIpsec(IPSec, RedHatPlugin): -- """ipsec related information for Red Hat distributions -+ """ipsec related information for CentOS distributions - """ - - files = ('/etc/racoon/racoon.conf',) -diff -uNrp sos-3.0.orig/sos/plugins/iscsi.py sos-3.0/sos/plugins/iscsi.py ---- sos-3.0.orig/sos/plugins/iscsi.py 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/sos/plugins/iscsi.py 2014-06-21 11:20:20.432520046 -0500 -@@ -22,7 +22,7 @@ class Iscsi(Plugin): - plugin_name = "iscsi" - - class RedHatIscsi(Iscsi, RedHatPlugin): -- """iscsi-initiator related information Red Hat based distributions -+ """iscsi-initiator related information CentOS based distributions - """ - - packages = ('iscsi-initiator-utils',) -diff -uNrp sos-3.0.orig/sos/plugins/iscsitarget.py sos-3.0/sos/plugins/iscsitarget.py ---- sos-3.0.orig/sos/plugins/iscsitarget.py 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/sos/plugins/iscsitarget.py 2014-06-21 11:20:20.432520046 -0500 -@@ -24,7 +24,7 @@ class IscsiTarget(Plugin): - plugin_name = "iscsitarget" - - class RedHatIscsiTarget(IscsiTarget, RedHatPlugin): -- """iscsi-target related information for Red Hat distributions -+ """iscsi-target related information for CentOS distributions - """ - - packages = ('scsi-target-utils',) -diff -uNrp sos-3.0.orig/sos/plugins/kdump.py sos-3.0/sos/plugins/kdump.py ---- sos-3.0.orig/sos/plugins/kdump.py 2014-06-21 11:11:15.785755436 -0500 -+++ sos-3.0/sos/plugins/kdump.py 2014-06-21 11:20:20.433520039 -0500 -@@ -26,7 +26,7 @@ class KDump(Plugin): - ]) - - class RedHatKDump(KDump, RedHatPlugin): -- """Kdump related information for Red Hat distributions -+ """Kdump related information for CentOS distributions - """ - - files = ('/etc/kdump.conf',) -diff -uNrp sos-3.0.orig/sos/plugins/openssl.py sos-3.0/sos/plugins/openssl.py ---- sos-3.0.orig/sos/plugins/openssl.py 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/sos/plugins/openssl.py 2014-06-21 11:20:20.437520009 -0500 -@@ -24,7 +24,7 @@ class OpenSSL(Plugin): - packages = ('openssl',) - - class RedHatOpenSSL(OpenSSL, RedHatPlugin): -- """openssl related information for Red Hat distributions -+ """openssl related information for CentOS distributions - """ - - files = ('/etc/pki/tls/openssl.cnf',) -diff -uNrp sos-3.0.orig/sos/plugins/postgresql.py sos-3.0/sos/plugins/postgresql.py ---- sos-3.0.orig/sos/plugins/postgresql.py 2013-06-10 12:35:56.000000000 -0500 -+++ sos-3.0/sos/plugins/postgresql.py 2014-06-21 11:20:20.438520002 -0500 -@@ -49,7 +49,7 @@ class PostgreSQL(Plugin): - shutil.rmtree(self.tmp_dir) - - class RedHatPostgreSQL(PostgreSQL, RedHatPlugin): -- """PostgreSQL related information for Red Hat distributions""" -+ """PostgreSQL related information for CentOS distributions""" - - def setup(self): - super(RedHatPostgreSQL, self).setup() -diff -uNrp sos-3.0.orig/sos/plugins/radius.py sos-3.0/sos/plugins/radius.py ---- sos-3.0.orig/sos/plugins/radius.py 2013-06-10 12:35:57.000000000 -0500 -+++ sos-3.0/sos/plugins/radius.py 2014-06-21 11:20:20.440519987 -0500 -@@ -24,7 +24,7 @@ class Radius(Plugin): - packages = ('freeradius',) - - class RedHatRadius(Radius, RedHatPlugin): -- """radius related information on Red Hat distributions -+ """radius related information on CentOS distributions - """ - - files = ('/etc/raddb',) -diff -uNrp sos-3.0.orig/sos/plugins/rhui.py sos-3.0/sos/plugins/rhui.py ---- sos-3.0.orig/sos/plugins/rhui.py 2013-06-10 12:35:57.000000000 -0500 -+++ sos-3.0/sos/plugins/rhui.py 2014-06-21 11:20:20.440519987 -0500 -@@ -16,7 +16,7 @@ from sos.plugins import Plugin, RedHatPl - import os - - class Rhui(Plugin, RedHatPlugin): -- """Red Hat Update Infrastructure for Cloud Providers data -+ """CentOS Update Infrastructure for Cloud Providers data - """ - - plugin_name = 'rhui' -diff -uNrp sos-3.0.orig/sos/plugins/sssd.py sos-3.0/sos/plugins/sssd.py ---- sos-3.0.orig/sos/plugins/sssd.py 2013-06-10 12:35:57.000000000 -0500 -+++ sos-3.0/sos/plugins/sssd.py 2014-06-21 11:20:20.443519965 -0500 -@@ -27,7 +27,7 @@ class Sssd(Plugin): - self.add_copy_specs(["/etc/sssd", "/var/log/sssd/*"]) - - class RedHatSssd(Sssd, RedHatPlugin): -- """sssd-related Diagnostic Information on Red Hat based distributions -+ """sssd-related Diagnostic Information on CentOS based distributions - """ - - def setup(self): -diff -uNrp sos-3.0.orig/sos/plugins/sunrpc.py sos-3.0/sos/plugins/sunrpc.py ---- sos-3.0.orig/sos/plugins/sunrpc.py 2013-06-10 12:35:57.000000000 -0500 -+++ sos-3.0/sos/plugins/sunrpc.py 2014-06-21 11:20:20.443519965 -0500 -@@ -34,7 +34,7 @@ class SunRPC(Plugin): - return - - class RedHatSunRPC(SunRPC, RedHatPlugin): -- """Sun RPC related information for Red Hat systems -+ """Sun RPC related information for CentOS systems - """ - - service = 'rpcbind' -@@ -42,7 +42,7 @@ class RedHatSunRPC(SunRPC, RedHatPlugin) - # FIXME: depends on addition of runlevel_by_service (or similar) - # in Debian/Ubuntu policy classes - #class DebianSunRPC(SunRPC, DebianPlugin, UbuntuPlugin): --# """Sun RPC related information for Red Hat systems -+# """Sun RPC related information for CentOS systems - # """ - # - # service = 'rpcbind-boot' -diff -uNrp sos-3.0.orig/sos/policies/redhat.py sos-3.0/sos/policies/redhat.py ---- sos-3.0.orig/sos/policies/redhat.py 2014-06-21 11:11:15.838755022 -0500 -+++ sos-3.0/sos/policies/redhat.py 2014-06-21 11:22:10.554703632 -0500 -@@ -32,9 +32,9 @@ except: - pass - - class RedHatPolicy(LinuxPolicy): -- distro = "Red Hat" -- vendor = "Red Hat" -- vendor_url = "http://www.redhat.com/" -+ distro = "CentOS" -+ vendor = "CentOS" -+ vendor_url = "http://www.centos.org/" - _tmp_dir = "/var/tmp" - - def __init__(self): -@@ -56,9 +56,9 @@ class RedHatPolicy(LinuxPolicy): - - @classmethod - def check(self): -- """This method checks to see if we are running on Red Hat. It must be -+ """This method checks to see if we are running on CentOS. It must be - overriden by concrete subclasses to return True when running on a -- Fedora, RHEL or other Red Hat distribution or False otherwise.""" -+ CentOS distribution or False otherwise.""" - return False - - def runlevel_by_service(self, name): -@@ -92,9 +92,9 @@ class RedHatPolicy(LinuxPolicy): - return self.host_name() - - class RHELPolicy(RedHatPolicy): -- distro = "Red Hat Enterprise Linux" -- vendor = "Red Hat" -- vendor_url = "https://access.redhat.com/support/" -+ distro = "CentOS Linux" -+ vendor = "CentOS" -+ vendor_url = "https://www.centos.org/" - - def __init__(self): - super(RHELPolicy, self).__init__() -diff -uNrp sos-3.0.orig/sos/plugins/openstack_ceilometer.py sos-3.0/sos/plugins/openstack_ceilometer.py ---- sos-3.0.orig/sos/plugins/openstack_ceilometer.py 2014-11-24 07:46:02.257461867 -0600 -+++ sos-3.0/sos/plugins/openstack_ceilometer.py 2014-11-24 07:46:31.458305712 -0600 -@@ -52,7 +52,7 @@ class DebianOpenStackCeilometer(OpenStac - - - class RedHatOpenStackCeilometer(OpenStackCeilometer, RedHatPlugin): -- """OpenStackCeilometer related information for Red Hat distributions.""" -+ """OpenStackCeilometer related information for CentOS distributions.""" - - packages = ( - 'openstack-ceilometer', -diff -uNrp sos-3.0.orig/sos/plugins/openstack_cinder.py sos-3.0/sos/plugins/openstack_cinder.py ---- sos-3.0.orig/sos/plugins/openstack_cinder.py 2014-11-24 07:46:02.257461867 -0600 -+++ sos-3.0/sos/plugins/openstack_cinder.py 2014-11-24 07:46:31.458305712 -0600 -@@ -66,7 +66,7 @@ class DebianOpenStackCinder(OpenStackCin - - - class RedHatOpenStackCinder(OpenStackCinder, RedHatPlugin): -- """OpenStack related information for Red Hat distributions -+ """OpenStack related information for CentOS distributions - """ - - cinder = False -diff -uNrp sos-3.0.orig/sos/plugins/openstack_glance.py sos-3.0/sos/plugins/openstack_glance.py ---- sos-3.0.orig/sos/plugins/openstack_glance.py 2014-11-24 07:46:02.257461867 -0600 -+++ sos-3.0/sos/plugins/openstack_glance.py 2014-11-24 07:46:31.459305705 -0600 -@@ -54,7 +54,7 @@ class DebianOpenStackGlance(OpenStackGla - - - class RedHatOpenStackGlance(OpenStackGlance, plugins.RedHatPlugin): -- """OpenStackGlance related information for Red Hat distributions.""" -+ """OpenStackGlance related information for CentOS distributions.""" - - packages = ( - 'openstack-glance', -diff -uNrp sos-3.0.orig/sos/plugins/openstack_heat.py sos-3.0/sos/plugins/openstack_heat.py ---- sos-3.0.orig/sos/plugins/openstack_heat.py 2014-11-24 07:46:02.257461867 -0600 -+++ sos-3.0/sos/plugins/openstack_heat.py 2014-11-24 07:46:31.459305705 -0600 -@@ -53,7 +53,7 @@ class DebianOpenStack(OpenStackHeat, - - - class RedHatOpenStack(OpenStackHeat, plugins.RedHatPlugin): -- """OpenStackHeat related information for Red Hat distributions.""" -+ """OpenStackHeat related information for CentOS distributions.""" - - packages = ( - 'openstack-heat-api', -diff -uNrp sos-3.0.orig/sos/plugins/openstack_horizon.py sos-3.0/sos/plugins/openstack_horizon.py ---- sos-3.0.orig/sos/plugins/openstack_horizon.py 2014-11-24 07:46:02.257461867 -0600 -+++ sos-3.0/sos/plugins/openstack_horizon.py 2014-11-24 07:46:31.459305705 -0600 -@@ -64,7 +64,7 @@ class UbuntuOpenStackHorizon(OpenStackHo - - - class RedHatOpenStackHorizon(OpenStackHorizon, RedHatPlugin): -- """OpenStack Horizon related information for Red Hat distributions -+ """OpenStack Horizon related information for CentOS distributions - """ - - packages = ( -diff -uNrp sos-3.0.orig/sos/plugins/openstack_keystone.py sos-3.0/sos/plugins/openstack_keystone.py ---- sos-3.0.orig/sos/plugins/openstack_keystone.py 2014-11-24 07:46:02.257461867 -0600 -+++ sos-3.0/sos/plugins/openstack_keystone.py 2014-11-24 07:46:31.459305705 -0600 -@@ -66,7 +66,7 @@ class DebianOpenStackKeystone(OpenStackK - - - class RedHatOpenStackKeystone(OpenStackKeystone, RedHatPlugin): -- """OpenStack Keystone related information for Red Hat distributions -+ """OpenStack Keystone related information for CentOS distributions - """ - - packages = ( -diff -uNrp sos-3.0.orig/sos/plugins/openstack_neutron.py sos-3.0/sos/plugins/openstack_neutron.py ---- sos-3.0.orig/sos/plugins/openstack_neutron.py 2014-11-24 07:46:02.257461867 -0600 -+++ sos-3.0/sos/plugins/openstack_neutron.py 2014-11-24 07:46:31.459305705 -0600 -@@ -143,7 +143,7 @@ class DebianNeutron(Neutron, DebianPlugi - - - class RedHatNeutron(Neutron, RedHatPlugin): -- """OpenStack Neutron related information for Red Hat distributions -+ """OpenStack Neutron related information for CentOS distributions - """ - - package_list_template = [ -diff -uNrp sos-3.0.orig/sos/plugins/openstack_nova.py sos-3.0/sos/plugins/openstack_nova.py ---- sos-3.0.orig/sos/plugins/openstack_nova.py 2014-11-24 07:46:02.257461867 -0600 -+++ sos-3.0/sos/plugins/openstack_nova.py 2014-11-24 07:46:31.459305705 -0600 -@@ -113,7 +113,7 @@ class DebianOpenStackNova(OpenStackNova, - - - class RedHatOpenStackNova(OpenStackNova, RedHatPlugin): -- """OpenStack nova related information for Red Hat distributions -+ """OpenStack nova related information for CentOS distributions - """ - - nova = False -diff -uNrp sos-3.0.orig/sos/plugins/openstack_swift.py sos-3.0/sos/plugins/openstack_swift.py ---- sos-3.0.orig/sos/plugins/openstack_swift.py 2014-11-24 07:46:02.257461867 -0600 -+++ sos-3.0/sos/plugins/openstack_swift.py 2014-11-24 07:46:31.459305705 -0600 -@@ -47,7 +47,7 @@ class DebianOpenStackSwift(OpenStackSwif - - - class RedHatOpenStackSwift(OpenStackSwift, RedHatPlugin): -- """OpenStackSwift related information for Red Hat distributions.""" -+ """OpenStackSwift related information for CentOS distributions.""" - - packages = ( - 'openstack-swift', diff --git a/SOURCES/sos-silence-could-not-run.patch b/SOURCES/sos-silence-could-not-run.patch deleted file mode 100644 index 1bb0d97..0000000 --- a/SOURCES/sos-silence-could-not-run.patch +++ /dev/null @@ -1,24 +0,0 @@ -commit f81df25a32ff525f965a52581711ff06563166b5 -Author: Bryn M. Reeves -Date: Mon Jun 10 19:50:28 2013 +0100 - - Reduce level of 'could not run' messages info->debug - - We expect not to find all commands; don't output a log message on - each missing binary. - - Signed-off-by: Bryn M. Reeves - -diff --git a/sos/plugins/__init__.py b/sos/plugins/__init__.py -index 70711a3..e25f035 100644 ---- a/sos/plugins/__init__.py -+++ b/sos/plugins/__init__.py -@@ -543,7 +543,7 @@ class Plugin(object): - # pylint: disable-msg = W0612 - status, shout, runtime = sos_get_command_output(exe, timeout=timeout) - if (status == 127): -- self.soslog.info("could not run '%s': command not found" % exe) -+ self.soslog.debug("could not run '%s': command not found" % exe) - return None - - if suggest_filename: diff --git a/SOURCES/sos-six-compat.patch b/SOURCES/sos-six-compat.patch new file mode 100644 index 0000000..576b77c --- /dev/null +++ b/SOURCES/sos-six-compat.patch @@ -0,0 +1,63 @@ +From b61a193b98b896164a8caefa088bb09297f1e3ca Mon Sep 17 00:00:00 2001 +From: "Bryn M. Reeves" +Date: Wed, 1 Oct 2014 17:08:50 +0100 +Subject: [PATCH 1/2] [utilities] invert sense of six.PY2 test + +Old versions of six do not include a 'PY2' attribute leading to +an exception in sos_get_command_output(). Invert the sense of the +test and check that six.PY3 is false instead as all versions of +the module include this attribute. + +Signed-off-by: Bryn M. Reeves +--- + sos/utilities.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/sos/utilities.py b/sos/utilities.py +index 7c06781..7e8cd7e 100644 +--- a/sos/utilities.py ++++ b/sos/utilities.py +@@ -139,7 +139,7 @@ def sos_get_command_output(command, timeout=300, runat=None): + command = "timeout %ds %s" % (timeout, command) + + # shlex.split() reacts badly to unicode on older python runtimes. +- if six.PY2: ++ if not six.PY3: + command = command.encode('utf-8') + args = shlex.split(command) + try: +-- +1.9.3 + + +From f9c811abc07f1e3044b1dbf29fdd5cd1f68812bc Mon Sep 17 00:00:00 2001 +From: "Bryn M. Reeves" +Date: Wed, 1 Oct 2014 17:34:56 +0100 +Subject: [PATCH 2/2] [archive] invert sense of six.PY2 test + +Old versions of six do not include a 'PY2' attribute leading to +an exception in sos_get_command_output(). Invert the sense of the +test and check that six.PY3 is false instead as all versions of +the module include this attribute. + +Signed-off-by: Bryn M. Reeves +--- + sos/archive.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/sos/archive.py b/sos/archive.py +index 245f904..2e42bbd 100644 +--- a/sos/archive.py ++++ b/sos/archive.py +@@ -357,7 +357,7 @@ class TarFileArchive(FileCacheArchive): + + def _build_archive(self): + # python2.6 TarFile lacks the filter parameter +- if six.PY2 and sys.version_info[1] < 7: ++ if not six.PY3 and sys.version_info[1] < 7: + tar = _TarFile.open(self._archive_name, mode="w") + else: + tar = tarfile.open(self._archive_name, mode="w") +-- +1.9.3 + diff --git a/SPECS/sos.spec b/SPECS/sos.spec index 4c76647..0dacfd7 100644 --- a/SPECS/sos.spec +++ b/SPECS/sos.spec @@ -1,89 +1,45 @@ %{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} - Summary: A set of tools to gather troubleshooting information from a system Name: sos -Version: 3.0 -Release: 23%{?dist}.11 +Version: 3.2 +Release: 15%{?dist} Group: Applications/System -Source0: https://people.redhat.com/breeves/sos/releases/sos-3.0.tar.gz +Source0: https://github.com/sosreport/sos/archive/%{version}/sos-%{version}.tar.gz License: GPLv2+ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot BuildArch: noarch -Url: http://fedorahosted.org/sos +Url: http://github.com/sosreport/sos BuildRequires: python-devel BuildRequires: gettext Requires: libxml2-python -Requires: rpm-python -Requires: tar +Requires: python-six Requires: bzip2 Requires: xz Obsoletes: sos-plugins-openstack -Patch0: sos-silence-could-not-run.patch -Patch1: sos-bz971420-strip-trailing-newline.patch -Patch2: sos-bz916705-fix-rhel_version-problems.patch -Patch3: sos-bz839342-cluster-collect-crm_report.patch -Patch4: sos-bz1002943-No-TTY-should-not-imply-batch-mode.patch -Patch5: sos-bz1002943-Do-not-exit-on-interactive-mode-read-exceptions.patch -Patch6: sos-bz997083-Fix-policy-classes-for--tmp-dir.patch -Patch7: sos-bz997094-Added-XFS-plugin.patch -Patch8: sos-bz997090-cluster-plugin-add-obfuscation-of-luci-secrets.patch -Patch9: sos-bz997101-restrict-wbinfo-collection-to-the-current-domain.patch -Patch10: sos-bz996992-do-not-attempt-to-read-use-gss-proxy.patch -Patch11: sos-bz1001966-include-etc-yaboot-conf-in-boot.patch -Patch12: sos-bz1019235-remove-useless-os-path-check-for-brctl.patch -Patch13: sos-bz1019863-rpm-restricted-verify.patch -Patch14: sos-bz1019338-remove-pipe-communicate-newline-workaround.patch -Patch15: sos-bz1001599-add-file-size-restriction-to-sar.patch -Patch16: sos-bz1015606-remove-version-checks-in-gluster.patch -Patch17: sos-bz1019517-check-for-usable-temporary-directory.patch -Patch18: sos-bz1019356-fix-alloptions.patch -Patch19: sos-bz1019516-fix-config-file-regression.patch -Patch20: sos-bz1025236-add-powerpc-plugin.patch -Patch21: sos-bz1026869-collect-proc-self-mountstats.patch -Patch22: sos-bz1026829-collect-var-log-squid.patch -Patch23: sos-bz1026906-nis-add-domainname-output.patch -Patch24: sos-bz829069-normalise-tmp-dir-path.patch -Patch25: sos-bz1026959-collect-saved-vmcore-dmesg.patch -Patch26: sos-bz1015599-restore-build-command-line-option.patch -Patch27: sos-bz1028072-add-nfs-client-plugin.patch -Patch28: sos-bz1028125-fix-traceback-when-sar-module.patch -Patch29: sos-bz829297-fix-typo-in-yum-add_forbidden_paths.patch -Patch30: sos-bz1028150-add-krb5-plugin-and-klist.patch -Patch31: sos-bz1015599-fix-dash-dash-build-regressions.patch -Patch32: sos-bz1030042-remove-logs-debug-statements.patch -Patch33: sos-bz1030824-make-ethernet-detection-more-robust.patch -Patch34: sos-bz1031124-fix-multiple-plugin-opts.patch -Patch35: sos-bz1031126-correct-log-and-message-levels.patch -Patch36: sos-bz1034956-log-command-timeouts.patch -Patch37: sos-bz1028484-remove-upload-option.patch -Patch38: sos-bz1034970-update-sos-ui-text.patch -Patch39: sos-bz1028121-include-openhpi-config.patch -Patch40: sos-bz1030553-fix-cluster-crm_report.patch -Patch41: sos-bz1030602-fix-ldap-postproc.patch -Patch42: sos-bz1034865-remove-anaconda-ks-cfg-from-general.patch -Patch43: sos-bz1030553-fix-cluster-get_option-use.patch -Patch44: sos-bz1031126-fix-verbose-file-logging.patch -Patch45: sos-bz1030617-rhevm-treat-vdsmlogs-as-string.patch -Patch46: sos-bz1039036-add-rhsm-debug-to-yum.patch -Patch47: sos-bz1036752-gluster-include-geo-replication.patch -Patch48: sos-bz1039036-pass-no-archive-to-rhsm-debug.patch -Patch49: sos-bz1051009-fix-fd-leaks-on-popen.patch -Patch50: sos-bz1036752-fix-gluster-volume-name-extraction.patch -Patch51: sos-bz1059760-add-distupgrade-plugin.patch -Patch52: sos-bz1030553-fix-command-output-substitution-exception.patch -Patch53: sos-bz916705-remove-rhel_version-from-yum-plugin.patch -Patch54: sos-bz1067769-fix-anacron-checks.patch -Patch55: sos-bz1039036-call-rhsm-debug-with-sos.patch -Patch56: sos-bz1139339-foreman-add-plugin.patch -Patch57: sos-bz1148784-plugin-backport-add_cmd_outputs.patch -Patch58: sos-bz1148784-openstack-backport-plugins-from-master.patch -Patch59: sos-bz1148560-add-kpatch-plugin.patch -Patch60: sos-bz1159835-obtain-postgres-password-from-environment.patch -Patch61: sos-bz1176159-backport-mysql-mariadb-support.patch -Patch62: sos-bz1176159-mysql-fix-command-line-dbpass-handling.patch -Patch63: sos-bz1176159-mysql-test-for-boolean-values.patch -Patch64: sos-bz1176159-mysql-improve-dbuser-dbpass-handling.patch -Patch65: sos-centos-branding.patch +Patch0: sos-six-compat.patch +Patch1: sos-bz1116349-call-rhsm-debug-with-no-subscriptions.patch +Patch2: sos-bz1140427-powerpc-allow-powerpc-plugin-to-run-on-ppc64le.patch +Patch3: sos-bz1148551-ovirt_hosted_engine-fix-exception-when-force-enabled.patch +Patch4: sos-bz1087515-corosync-add-postprocessing-for-corosync-objctl.patch +Patch5: sos-bz1148375-add-support-for-tomcat7.patch +Patch6: sos-bz1126001-obtain-mysql-password-from-env.patch +Patch7: sos-bz1158891-sosreport-fix-archive-permissions-regression.patch +Patch8: sos-bz1110918-fix-kpatch-force-enabled.patch +Patch9: sos-bz1118152-disable-the-zip-compression-type.patch +Patch10: sos-bz1166039-navicli-catch-unreadable-stdin.patch +Patch11: sos-bz1171658-docs-update-man-page-for-new-options.patch +Patch12: sos-bz1164267-sos-unicode-use-errors-ignore.patch +Patch13: sos-bz1126001-mysql-fix-command-line-dbpass-handling.patch +Patch14: sos-bz1112175-anaconda-make-useradd-password-regex-tolerant.patch +Patch15: sos-bz1087977-sosreport-catch-oserror-in-execute.patch +Patch16: sos-bz1087977-sosreport-do-not-make-logging-calls-after-oserror.patch +Patch17: sos-bz1026962-plugin-limit-names-to-pc_name_max.patch +Patch18: sos-bz1026962-squid-collect-var-log-squid.patch +Patch19: sos-bz1026962-sosreport-log-plugin-exceptions-to-file.patch +Patch20: sos-bz1026962-ctdb-fix-redhatplugin-tagging-use.patch +Patch21: sos-bz1026962-sosreport-fix-silent-exception-handling.patch +Patch22: sos-bz1180919-mysql-test-for-boolean-values.patch +Patch23: sos-bz1176159-mysql-improve-dbuser-dbpass-handling.patch %description Sos is a set of tools that gathers information about system @@ -92,7 +48,7 @@ diagnostic purposes and debugging. Sos is commonly used to help support technicians and developers. %prep -%setup -q +%setup -qn %{name}-%{version} %patch0 -p1 %patch1 -p1 %patch2 -p1 @@ -117,48 +73,6 @@ support technicians and developers. %patch21 -p1 %patch22 -p1 %patch23 -p1 -%patch24 -p1 -%patch25 -p1 -%patch26 -p1 -%patch27 -p1 -%patch28 -p1 -%patch29 -p1 -%patch30 -p1 -%patch31 -p1 -%patch32 -p1 -%patch33 -p1 -%patch34 -p1 -%patch35 -p1 -%patch36 -p1 -%patch37 -p1 -%patch38 -p1 -%patch39 -p1 -%patch40 -p1 -%patch41 -p1 -%patch42 -p1 -%patch43 -p1 -%patch44 -p1 -%patch45 -p1 -%patch46 -p1 -%patch47 -p1 -%patch48 -p1 -%patch49 -p1 -%patch50 -p1 -%patch51 -p1 -%patch52 -p1 -%patch53 -p1 -%patch54 -p1 -%patch55 -p1 -%patch56 -p1 -%patch57 -p1 -%patch58 -p1 -%patch59 -p1 -%patch60 -p1 -%patch61 -p1 -%patch62 -p1 -%patch63 -p1 -%patch64 -p1 -%patch65 -p1 %build make @@ -182,49 +96,127 @@ rm -rf ${RPM_BUILD_ROOT} %config(noreplace) %{_sysconfdir}/sos.conf %changelog -* Mon Mar 02 2015 CentOS Sources - 3.0-23.el7.centos.11 -- Roll in CentOS Branding - -* Mon Feb 16 2015 Bryn M. Reeves = 3.0-23.el7_0.11 -- Add 'all_logs' option to the mysql plugin - Resolves: bz1176159 - -* Thu Jan 22 2015 Bryn M. Reeves = 3.0-23.el7_0.10 +* Thu Jan 22 2015 Bryn M. Reeves = 3.2-15 - [mysql] improve handling of dbuser, dbpass and MYSQL_PWD - Resolves: bz1176159 + Resolves: bz1180919 -* Wed Jan 21 2015 Bryn M. Reeves = 3.0-23.el7_0.9 +* Tue Jan 20 2015 Bryn M. Reeves = 3.2-14 - [mysql] test for boolean values in dbuser and dbpass - Resolves: bz1176159 -- [mysql] use add_copy_specs to capture file lists - Resolves: bz1176159 - -* Tue Dec 22 2014 Bryn M. Reeves = 3.0-23.el7_0.7 + Resolves: bz1180919 + +* Mon Jan 19 2015 Bryn M. Reeves = 3.2-12 +- [plugin] limit path names to PC_NAME_MAX + Resolves: bz1026962 +- [squid] collect files from /var/log/squid + Resolves: bz1026962 +- [sosreport] log plugin exceptions to a file + Resolves: bz1026962 +- [ctdb] fix collection of /etc/sysconfig/ctdb + Resolves: bz1026962 +- [sosreport] fix silent exception handling + Resolves: bz1026962 + +* Tue Jan 13 2015 Bryn M. Reeves = 3.2-11 +- [sosreport] do not make logging calls after OSError + Resolves: bz1087977 +- [sosreport] catch OSError exceptions in SoSReport.execute() + Resolves: bz1087977 +- [anaconda] make useradd password regex tolerant of whitespace + Resolves: bz1112175 + +* Tue Dec 23 2014 Bryn M. Reeves = 3.2-10 - [mysql] fix handling of mysql.dbpass option - Resolves: bz1176159 - -* Fri Dec 19 2014 Bryn M. Reeves = 3.0-23.el7_0.6 -- Add MariaDB support to the MySQL plugin - Resolves: bz1176159 - -* Wed Nov 12 2014 Bryn M. Reeves = 3.0-23.el7_0.4 -- Ensure sos obsoletes sos-plugins-openstack - Resolves: bz1148784 - -* Tue Nov 11 2014 Bryn M. Reeves = 3.0-23.el7_0.3 -- Obtain postgresql password from the environment - Resolves: bz1159835 - -* Tue Oct 14 2014 Bryn M. Reeves = 3.0-23.el7_0.2 -- Add kpatch plugin - Resolves: bz1148560 -- Backport updated OpenStack plugins from upstream -- Backport add_cmd_outputs interface from upstream - Resolves: bz1148784, bz1148554 - -* Fri Oct 03 2014 Bryn M. Reeves = 3.0-23.el7_0.1 -- Add foreman plugin - Resolves: bz1139339 + Resolves: bz1126001 + +* Wed Dec 17 2014 Bryn M. Reeves = 3.2-9 +- [navicli] catch exceptions if stdin is unreadable + Resolves: bz1166039 +- [docs] update man page for new options + Resolves: bz1171658 +- [sosreport] make all utf-8 handling user errors=ignore + Resolves: bz1164267 + +* Tue Dec 09 2014 Bryn M. Reeves = 3.2-8 +- [kpatch] do not attempt to collect data if kpatch is not installed + Resolves: bz1110918 +- [archive] drop support for Zip archives + Resolves: bz1118152 + +* Thu Oct 30 2014 Bryn M. Reeves = 3.2-7 +- [sosreport] fix archive permissions regression + Resolves: bz1158891 + +* Mon Oct 20 2014 Bryn M. Reeves = 3.2-6 +- [tomcat] add support for tomcat7 and default log size limits + Resolves: bz1148375 +- [mysql] obtain database password from the environment + Resolves: bz1126001 + +* Wed Oct 15 2014 Bryn M. Reeves = 3.2-5 +- [corosync] add postprocessing for corosync-objctl output + Resolves: bz1087515 +- [ovirt_hosted_engine] fix exception when force-enabled + Resolves: bz1148551 + +* Thu Oct 02 2014 Bryn M. Reeves = 3.2-4 +- [yum] call rhsm-debug with --no-subscriptions + Resolves: bz1116349 +- [powerpc] allow PowerPC plugin to run on ppc64le + Resolves: bz1140427 +- [package] add Obsoletes for sos-plugins-openstack + Resolves: bz1140756 + +* Wed Oct 01 2014 Bryn M. Reeves = 3.2-3 +- [pam] add pam_tally2 and faillock support + Resolves: bz1127631 +- [postgresql] obtain db password from the environment + Resolves: bz1126001 +- [pcp] add Performance Co-Pilot plugin + Resolves: bz1119833 +- [nfsserver] collect /etc/exports.d + Resolves: bz1118921 +- [sosreport] handle --compression-type correctly + Resolves: bz1118152 +- [anaconda] redact passwords in kickstart configurations + Resolves: bz1112175 +- [haproxy] add new plugin + Resolves: bz1107865 +- [keepalived] add new plugin + Resolves: bz1105247 +- [lvm2] set locking_type=0 when calling lvm commands + Resolves: bz1102285 +- [tuned] add new plugin + Resolves: bz1095447 +- [cgroups] collect /etc/sysconfig/cgred + Resolves: bz1083677 +- [plugins] ensure doc text is always displayed for plugins + Resolves: bz1065473 +- [sosreport] fix the distribution version API call + Resolves: bz1028111 +- [docker] add new plugin + Resolves: bz1084990 +- [openstack_*] include broken-out openstack plugins + Resolves: bz1140756 +- [mysql] support MariaDB + Resolves: bz1106600 +- [openstack] do not collect /var/lib/nova + Resolves: bz1106423 +- [grub2] collect grub.cfg on UEFI systems + Resolves: bz1086648 +- [sosreport] handle out-of-space errors gracefully + Resolves: bz1087977 +- [firewalld] new plugin + Resolves: bz1100505 +- [networking] collect NetworkManager status + Resolves: bz1100505 +- [kpatch] new plugin + Resolves: bz1110918 +- [global] update to upstream 3.2 release + Resolves: bz1026962 + +* Mon Sep 08 2014 Bryn M. Reeves = 3.0-24 +- [foreman] add new plugin + Resolves: bz1130273 * Thu Mar 20 2014 Bryn M. Reeves = 3.0-23 - Call rhsm-debug with the --sos switch @@ -569,238 +561,3 @@ rm -rf ${RPM_BUILD_ROOT} - rhbz fixes from RHEL version merged into trunk - progressbar update -* Tue Nov 19 2009 Adam Stokes = 1.8-20 -- dont copy unwanted files due to symlinks -- More plugin enhancements - -* Tue Nov 5 2009 Adam Stokes = 1.8-18 -- Option to enable selinux fixfiles check -- Start of replacing Thread module with multiprocessing -- Update translations -- More checks against conf file versus command line opts - -* Tue Sep 9 2009 Adam Stokes = 1.8-16 -- Update rh-upload-core to rh-upload and allows general files -- Fix cluster plugin with pwd mangling invalidating xml -- Cluster support detecting invalid fence_id and fence states -- Read variables from conf file - -* Thu Jul 23 2009 Adam Stokes = 1.8-14 -- resolves: rhbz512536 wrong group in spec file -- resolves: rhbz498398 A series of refactoring patches to sos -- resolves: rhbz501149 A series of refactoring patches to sos (2) -- resolves: rhbz503804 remove obsolete translation -- resolves: rhbz502455 tricking sosreport into rm -rf / -- resolves: rhbz501146 branding in fedora - -* Mon Jul 20 2009 Adam Stokes = 1.8-13 -- Add requirements for tar,bzip2 during minimal installs -- More merges from reports against RHEL version of plugins -- Remove unecessary definition of localdir in spec - -* Wed May 05 2009 Adam Stokes - 1.8-11 -- Remove all instances of sysrq -- Consistent macro usage in spec - -* Wed Feb 25 2009 Fedora Release Engineering - 1.8-10 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild - -* Mon Dec 29 2008 Adam Stokes - 1.8-5 -- removed source defines as python manifest handles this - -* Fri Dec 19 2008 Adam Stokes - 1.8-4 -- spec cleanup, fixed license, source -- reworked Makefile to build properly - -* Thu Oct 23 2008 Adam Stokes - 1.8-1 - -* Wed Nov 21 2007 Navid Sheikhol-Eslami - 1.8-0 -- selinux: always collect sestatus -- added many languages -- added --debug option which causes exceptions not to be trapped -- updated to sysreport-1.4.3-13.el5 -- ftp upload to dropbox with --upload -- cluster: major rewrite to support different versions of RHEL -- cluster: check rg_test for errors -- minor changes in various plug-ins (yum, networking, process, kernel) -- fixed some exceptions in threads which were not properly trapped -- veritas: don't run rpm -qa every time -- using rpm's python bindings instead of external binary -- corrected autofs and ldap plugin that were failing when debug option was not found in config file. -- implemented built-in checkdebug() that uses self.files and self.packages to make the decision -- missing binaries are properly detected now. -- better doExitCode handling -- fixed problem with rpm module intercepting SIGINT -- error when user specifies an invalid plugin or plugin option -- named: fixed indentation -- replaced isOptionEnabled() with getOption() -- tune2fs and fdisk were not always run against the correct devices/mountpoint -- added gpg key to package -- updated README with new svn repo and contributors -- updated manpage -- better signal handling -- caching of rpm -q outputs -- report filename includes rhnUsername if available -- report encryption via gpg and support pubkey -- autofs: removed redundant files -- filesys: better handling of removable devices -- added sosReadFile() returns a file's contents -- return after looping inside a directory -- collect udevinfo for each block device -- simply collect output of fdisk -l in one go -- handle sysreport invocation properly (warn if shell is interactive, otherwise spawn sysreport.legacy) -- progress bar don't show 100% until finished() is called -- now runs on RHEL3 as well (python 2.2) -- replaced commonPrefix() with faster code -- filesys: one fdisk -l for all -- selinux: collect fixfilex check output -- devicemapper: collect udevinfo for all block devices -- cluster: validate node names according to RFC 2181 -- systemtap: cleaned up and added checkenabled() method -- added kdump plugin -- added collection of /etc/inittab - -* Wed Aug 13 2007 Navid Sheikhol-Eslami - 1.7-8 -- added README.rh-upload-core - -* Mon Aug 13 2007 Navid Sheikhol-Eslami - 1.7-7 -- added extras/rh-upload-core script from David Mair - -* Mon Aug 9 2007 Navid Sheikhol-Eslami - 1.7-6 -- more language fixes -- added arabic, italian and french -- package prepared for release -- included sysreport as sysreport.legacy - -* Mon Aug 9 2007 Navid Sheikhol-Eslami - 1.7-5 -- package obsoletes sysreport and creates a link pointing to sosreport -- added some commands in cluster and process plugins -- fixed html output (wrong links to cmds, thanks streeter) -- process: back down sleep if D state doesn't change - -* Mon Aug 1 2007 Navid Sheikhol-Eslami - 1.7-4 -- catch KeyboardInterrupt when entering sosreport name -- added color output for increased readability -- list was sorted twice, removing latter .sort() - -* Mon Jul 31 2007 Navid Sheikhol-Eslami - 1.7-3 -- added preliminary problem diagnosis support -- better i18n initialization -- better user messages -- more progressbar fixes -- catch and log python exceptions in report -- use python native commands to create symlinks -- limit concurrent running threads - -* Mon Jul 28 2007 Navid Sheikhol-Eslami - 1.7-2 -- initial language localization support -- added italian translation - -* Mon Jul 16 2007 Navid Sheikhol-Eslami - 1.7-1 -- split up command outputs in sub-directories (sos_command/plugin/command instead of sos_command/plugin.command) -- fixed doExitCode() calling thread.wait() instead of join() -- curses menu is disabled by default -- multithreading is enabled by default -- major progressbar changes (now has ETA) -- multithreading fixes -- plugins class descriptions shortened to fix better in --list-plugins -- rpm -Va in plugins/rpm.py sets eta_weight to 200 (plugin 200 longer than other plugins, for ETA calculation) -- beautified command output filenames in makeCommandFilename() - -* Mon Jul 12 2007 Navid Sheikhol-Eslami - 1.7-0 -- curses menu disabled by default (enable with -c) -- sosreport output friendlier to the user (and similar to sysreport) -- smarter plugin listing which also shows options and disable/enabled plugins -- require root permissions only for actual sosreport generation -- fix in -k where option value was treated as string instead of int -- made progressbar wider (60 chars) -- selinux plugin is enabled only if selinux is also enabled on the system -- made some errors less verbose to the user -- made sosreport not copy files pointed by symbolic links (same as sysreport, we don't need /usr/bin/X or /sbin/ifup) -- copy links as links (cp -P) -- added plugin get_description() that returns a short decription for the plugin -- guess sosreport name from system's name - -* Mon Jul 5 2007 Navid Sheikhol-Eslami - 1.6-5 -- Yet more fixes to make package Fedora compliant. - -* Mon Jul 5 2007 Navid Sheikhol-Eslami - 1.6-4 -- More fixes to make package Fedora compliant. - -* Mon Jul 2 2007 Navid Sheikhol-Eslami - 1.6-3 -- Other fixes to make package Fedora compliant. - -* Mon Jul 2 2007 Navid Sheikhol-Eslami - 1.6-2 -- Minor fixes. - -* Mon Jul 2 2007 Navid Sheikhol-Eslami - 1.6-1 -- Beautified output of --list-plugins. -- GPL licence is now included in the package. -- added python-devel requirement for building package - -* Fri May 25 2007 Steve Conklin - 1.5-1 -- Bumped version - -* Fri May 25 2007 Steve Conklin - 1.4-2 -- Fixed a backtrace on nonexistent file in kernel plugin (thanks, David Robinson) - -* Mon Apr 30 2007 Steve Conklin - 1.4-1 -- Fixed an error in option handling -- Forced the file generated by traceroute to not end in .com -- Fixed a problem with manpage -- Added optional traceroute collection to networking plugin -- Added clalance's patch to gather iptables info. -- Fixes to the device-mapper plugin -- Fixed a problem with installation of man page - -* Mon Apr 16 2007 Steve Conklin - 1.3-3 -- including patches to fix the following: - -* Tue Feb 20 2007 John Berninger - 1.3-2 -- Add man page - -* Fri Dec 15 2006 Steve Conklin - 1.3-1 -- really fixed bz_219654 - -* Fri Dec 15 2006 Steve Conklin - 1.2-1 -- fixed a build problem - -* Fri Dec 15 2006 Steve Conklin - 1.1-1 -- Tighten permissions of tmp directory so only readable by creator bz_219657 -- Don't print message 'Problem at path ...' bz_219654 -- Removed useless message bz_219670 -- Preserve file modification times bz_219674 -- Removed unneeded message about files on copyProhibitedList bz_219712 - -* Wed Aug 30 2006 Steve Conklin - 1.0-1 -- Seperated upstream and RPM versioning - -* Mon Aug 21 2006 Steve Conklin - 0.1-11 -- Code cleanup, fixed a regression in threading - -* Mon Aug 14 2006 Steve Conklin - 0.1-10 -- minor bugfixes, added miltithreading option, setup now quiet - -* Mon Jul 17 2006 Steve Conklin - 0.1-9 -- migrated to svn on 108.redhat.com, fixed a problem with command output linking in report - -* Mon Jun 19 2006 Steve Conklin - 0.1-6 -- Added LICENSE file containing GPL - -* Wed May 31 2006 Steve Conklin - 0.1-5 -- Added fixes to network plugin and prepped for Fedora submission - -* Wed May 31 2006 John Berninger - 0.1-4 -- Reconsolidated subpackages into one package per discussion with sconklin - -* Mon May 22 2006 John Berninger - 0.1-3 -- Added ftp, ldap, mail, named, samba, squid SOS plugins -- Fixed various errors in kernel and hardware plugins - -* Mon May 22 2006 John Benringer - 0.1-2 -- split off cluster plugin into subpackage -- correct file payload lists - -* Mon May 22 2006 John Berninger - 0.1-1 -- initial package build -