# Copyright (C) 2007-2010 Red Hat, Inc., Kent Lamb
# Marc Sauton
# Pierre Carrier
# 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
from os.path import exists
from glob import glob
class CertificateSystem(Plugin, RedHatPlugin):
"""Certificate System and Dogtag
"""
plugin_name = 'certificatesystem'
profiles = ('identity', 'security')
packages = (
"redhat-cs",
"rhpki-common",
"pki-common"
)
files = (
"/opt/redhat-cs",
"/usr/share/java/rhpki",
"/usr/share/java/pki"
)
def checkversion(self):
if self.is_installed("redhat-cs") or exists("/opt/redhat-cs"):
return 71
elif self.is_installed("rhpki-common") or \
len(glob("/var/lib/rhpki-*")):
return 73
# 8 should cover dogtag
elif self.is_installed("pki-common") or exists("/usr/share/java/pki"):
return 8
return False
def setup(self):
csversion = self.checkversion()
if not csversion:
self.add_alert("CentOS Certificate System not found.")
return
if csversion == 71:
self.add_copy_spec([
"/opt/redhat-cs/slapd-*/logs/access",
"/opt/redhat-cs/slapd-*/logs/errors",
"/opt/redhat-cs/slapd-*/config/dse.ldif",
"/opt/redhat-cs/cert-*/errors",
"/opt/redhat-cs/cert-*/config/CS.cfg",
"/opt/redhat-cs/cert-*/access",
"/opt/redhat-cs/cert-*/errors",
"/opt/redhat-cs/cert-*/system",
"/opt/redhat-cs/cert-*/transactions",
"/opt/redhat-cs/cert-*/debug",
"/opt/redhat-cs/cert-*/tps-debug.log"
])
if csversion == 73:
self.add_copy_spec([
"/var/lib/rhpki-*/conf/*cfg*",
"/var/lib/rhpki-*/conf/*.ldif",
"/var/lib/rhpki-*/logs/debug",
"/var/lib/rhpki-*/logs/catalina.*",
"/var/lib/rhpki-*/logs/ra-debug.log",
"/var/lib/rhpki-*/logs/transactions",
"/var/lib/rhpki-*/logs/system"
])
if csversion in (73, 8):
self.add_copy_spec([
"/etc/dirsrv/slapd-*/dse.ldif",
"/var/log/dirsrv/slapd-*/access",
"/var/log/dirsrv/slapd-*/errors"
])
if csversion == 8:
self.add_copy_spec([
"/etc/pki-*/CS.cfg",
"/var/lib/pki-*/conf/*cfg*",
"/var/log/pki-*/debug",
"/var/log/pki-*/catalina.*",
"/var/log/pki-*/ra-debug.log",
"/var/log/pki-*/transactions",
"/var/log/pki-*/system"
])
# vim: et ts=4 sw=4