From 612ccc67233f14447f0a20a19916780f3def673f Mon Sep 17 00:00:00 2001 From: Pavel Moravec Date: Wed, 18 Nov 2020 10:21:17 +0100 Subject: [PATCH] [postgresql] reorganize postgres from SCL Backport of #2309 to legacy-3.9: - enable RedHatPostgreSQL also by rh-postgresql12 SCL - collect configs and logs regardless of running service - collect "du -sh" for SCL directories as well Resolves: #2312 Signed-off-by: Pavel Moravec Signed-off-by: Jake Hunsaker --- sos/plugins/postgresql.py | 54 +++++++++++++++++++++-------------------------- 1 file changed, 24 insertions(+), 30 deletions(-) diff --git a/sos/plugins/postgresql.py b/sos/plugins/postgresql.py index 2657992..ed36b3e 100644 --- a/sos/plugins/postgresql.py +++ b/sos/plugins/postgresql.py @@ -82,47 +82,41 @@ class RedHatPostgreSQL(PostgreSQL, SCLPlugin): packages = ( 'postgresql', 'rh-postgresql95-postgresql-server', - 'rh-postgresql10-postgresql-server' + 'rh-postgresql10-postgresql-server', + 'rh-postgresql12-postgresql-server', ) def setup(self): super(RedHatPostgreSQL, self).setup() pghome = self.get_option("pghome") + dirs = [pghome] - scl = None for pkg in self.packages[1:]: # The scl name, package name, and service name all differ slightly # but is at least consistent in doing so across versions, so we # need to do some mangling here - if self.is_service_running(pkg.replace('-server', '')): - scl = pkg.split('-postgresql-')[0] - - # Copy PostgreSQL log files. - for filename in find("*.log", pghome): - self.add_copy_spec(filename) - for filename in find("*.log", self.convert_copyspec_scl(scl, pghome)): - self.add_copy_spec(filename) - - # Copy PostgreSQL config files. - for filename in find("*.conf", pghome): - self.add_copy_spec(filename) - for filename in find("*.conf", self.convert_copyspec_scl(scl, pghome)): - self.add_copy_spec(filename) - - self.add_copy_spec(os.path.join(pghome, "data", "PG_VERSION")) - self.add_copy_spec(os.path.join(pghome, "data", "postmaster.opts")) - - self.add_copy_spec_scl(scl, os.path.join(pghome, "data", "PG_VERSION")) - self.add_copy_spec_scl(scl, os.path.join( - pghome, - "data", - "postmaster.opts" - ) - ) - - if scl and scl in self.scls_matched: - self.do_pg_dump(scl=scl, filename="pgdump-scl-%s.tar" % scl) + scl = pkg.split('-postgresql-')[0] + _dir = self.convert_copyspec_scl(scl, pghome) + dirs.append(_dir) + if os.path.isdir(_dir): + self.add_cmd_output("du -sh %s" % _dir) + if (self.is_service_running(pkg.replace('-server', '')) and + scl in self.scls_matched): + self.do_pg_dump(scl=scl, filename="pgdump-scl-%s.tar" % scl) + + for _dir in dirs: + # Copy PostgreSQL log files. + for filename in find("*.log", _dir): + self.add_copy_spec(filename) + + # Copy PostgreSQL config files. + for filename in find("*.conf", _dir): + self.add_copy_spec(filename) + + # copy PG_VERSION and postmaster.opts + for f in ["PG_VERSION", "postmaster.opts"]: + self.add_copy_spec(os.path.join(_dir, "data", f)) class DebianPostgreSQL(PostgreSQL, DebianPlugin, UbuntuPlugin): -- 1.8.3.1