diff options
author | Ade Lee <alee@redhat.com> | 2013-11-20 10:23:15 -0500 |
---|---|---|
committer | Ade Lee <alee@redhat.com> | 2013-11-20 13:42:44 -0500 |
commit | 24727d1b096cd30f7474ca9c03fa9c1be04be0cd (patch) | |
tree | 4290ca2892b27c911454ff13de6db12eab0ba1f0 /base/server | |
parent | b5d353f13eefeed5a234850d5c95e3fc03340d36 (diff) | |
download | pki-24727d1b096cd30f7474ca9c03fa9c1be04be0cd.tar.gz pki-24727d1b096cd30f7474ca9c03fa9c1be04be0cd.tar.xz pki-24727d1b096cd30f7474ca9c03fa9c1be04be0cd.zip |
Add migration scripts to fix registry file and ownership
Migration scripts have been added to update the registry file
for tomcat instances to use PKI_INSTANCE_NAME instead of PKI_INSTANCE_ID.
File ownershipof the registry file and log files is also fixed.
Also removed unused lock file logic in operations startup script.
This is for migration from 10.0 -> 10.1
Ticket 805
Diffstat (limited to 'base/server')
-rw-r--r-- | base/server/scripts/operations | 8 | ||||
-rwxr-xr-x | base/server/upgrade/10.0.99/03-FixRegistryFile | 57 | ||||
-rwxr-xr-x | base/server/upgrade/10.0.99/04-FixLogFileOwnership | 64 |
3 files changed, 121 insertions, 8 deletions
diff --git a/base/server/scripts/operations b/base/server/scripts/operations index d2b666a5a..7d026fe31 100644 --- a/base/server/scripts/operations +++ b/base/server/scripts/operations @@ -34,9 +34,6 @@ if [ -f /etc/pki/pki.conf ] ; then . /etc/pki/pki.conf fi -# PKI subsystem-level directory and file values for locks -lockfile="/var/lock/subsys/${SERVICE_NAME}" - default_error=0 case $command in @@ -1421,11 +1418,6 @@ start() fi done - if [ ${TOTAL_PKI_REGISTRY_ENTRIES} -gt ${errors} ] ; then - touch ${lockfile} - chmod 00600 ${lockfile} - fi - # ONLY print a "WARNING" message if multiple # instances are being examined if [ ${TOTAL_PKI_REGISTRY_ENTRIES} -gt 1 ] ; then diff --git a/base/server/upgrade/10.0.99/03-FixRegistryFile b/base/server/upgrade/10.0.99/03-FixRegistryFile new file mode 100755 index 000000000..053697f49 --- /dev/null +++ b/base/server/upgrade/10.0.99/03-FixRegistryFile @@ -0,0 +1,57 @@ +#!/usr/bin/python +# Authors: +# Ade Lee <alee@redhat.com> +# +# 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; version 2 of the License. +# +# 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., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Copyright (C) 2013 Red Hat, Inc. +# All rights reserved. +# + +import grp +import os +import pwd +import re +import pki.server +import pki.server.upgrade + + +class FixRegistryFile(pki.server.upgrade.PKIServerUpgradeScriptlet): + + def __init__(self): + self.message = 'Replace PKI_INSTANCE_ID and fix registry file ownership' + + def upgrade_instance(self, instance): + registry_file = os.path.join( + pki.server.REGISTRY_DIR, 'tomcat', instance.name, instance.name) + self.backup(registry_file) + + with open(registry_file, "r") as registry: + lines = registry.readlines() + + with open(registry_file, "w") as registry: + for line in lines: + m = re.search('^PKI_USER=(.*)$', line) + if m: + user = m.group(1) + m = re.search('^PKI_GROUP=(.*)$', line) + if m: + group = m.group(1) + + registry.write( + re.sub(r'PKI_INSTANCE_ID', 'PKI_INSTANCE_NAME', line)) + + uid = pwd.getpwnam(user).pw_uid + gid = grp.getgrnam(group).gr_gid + os.chown(registry_file, uid, gid) diff --git a/base/server/upgrade/10.0.99/04-FixLogFileOwnership b/base/server/upgrade/10.0.99/04-FixLogFileOwnership new file mode 100755 index 000000000..d7de7f96f --- /dev/null +++ b/base/server/upgrade/10.0.99/04-FixLogFileOwnership @@ -0,0 +1,64 @@ +#!/usr/bin/python +# Authors: +# Ade Lee <alee@redhat.com> +# +# 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; version 2 of the License. +# +# 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., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Copyright (C) 2013 Red Hat, Inc. +# All rights reserved. +# + +import grp +import os +import pwd +import re +import pki.server.upgrade + + +class FixLogFileOwnership(pki.server.upgrade.PKIServerUpgradeScriptlet): + + def __init__(self): + self.message = 'Fix log file ownership' + + def upgrade_instance(self, instance): + registry_file = os.path.join( + pki.server.REGISTRY_DIR, 'tomcat', instance.name, instance.name) + + with open(registry_file, "r") as registry: + lines = registry.readlines() + + for line in lines: + m = re.search('^PKI_USER=(.*)$', line) + if m: + user = m.group(1) + m = re.search('^PKI_GROUP=(.*)$', line) + if m: + group = m.group(1) + + uid = pwd.getpwnam(user).pw_uid + gid = grp.getgrnam(group).gr_gid + + log_dir = os.path.join('/var/log/pki', instance.name) + + self._chown(log_dir, uid, gid) + + + def _chown(self, path, uid, gid): + os.chown(path, uid, gid) + for item in os.listdir(path): + itempath = os.path.join(path, item) + if os.path.isfile(itempath): + os.chown(itempath, uid, gid) + elif os.path.isdir(itempath): + self._chown(itempath, uid, gid) |