summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--base/common/python/pki/cli.py7
-rw-r--r--base/server/python/pki/server/__init__.py18
-rw-r--r--base/server/python/pki/server/cli/instance.py28
-rw-r--r--base/server/python/pki/server/cli/migrate.py16
-rw-r--r--base/server/python/pki/server/cli/nuxwdog.py4
-rw-r--r--base/server/python/pki/server/cli/subsystem.py14
-rw-r--r--specs/pki-core.spec8
7 files changed, 64 insertions, 31 deletions
diff --git a/base/common/python/pki/cli.py b/base/common/python/pki/cli.py
index 802ef01aa..6c51c2384 100644
--- a/base/common/python/pki/cli.py
+++ b/base/common/python/pki/cli.py
@@ -34,7 +34,6 @@ class CLI(object):
self.name = name
self.description = description
self.parent = None
- self.top = self
self.verbose = False
self.debug = False
@@ -62,11 +61,15 @@ class CLI(object):
def add_module(self, module):
self.modules[module.name] = module
module.parent = self
- module.top = self.top
def get_module(self, name):
return self.modules.get(name)
+ def get_top_module(self):
+ if self.parent:
+ return self.parent.get_top_module()
+ return self
+
def print_message(self, message):
print('-' * len(message))
print(message)
diff --git a/base/server/python/pki/server/__init__.py b/base/server/python/pki/server/__init__.py
index 01f1e9427..0d522084c 100644
--- a/base/server/python/pki/server/__init__.py
+++ b/base/server/python/pki/server/__init__.py
@@ -456,3 +456,21 @@ class PKIServerException(pki.PKIException):
self.instance = instance
self.subsystem = subsystem
+
+
+class Tomcat(object):
+
+ @classmethod
+ def get_major_version(self):
+
+ # run "tomcat version"
+ output = subprocess.check_output(['/usr/sbin/tomcat', 'version'])
+
+ # find "Server version: Apache Tomcat/<major version>.<minor version>"
+ match = re.search(r'^Server version:[^/]*/(\d+).*$', output, re.MULTILINE)
+
+ if not match:
+ raise Exception('Unable to determine Tomcat version')
+
+ # return major version
+ return match.group(1)
diff --git a/base/server/python/pki/server/cli/instance.py b/base/server/python/pki/server/cli/instance.py
index f74d251ca..fe50b605d 100644
--- a/base/server/python/pki/server/cli/instance.py
+++ b/base/server/python/pki/server/cli/instance.py
@@ -65,7 +65,7 @@ class InstanceFindCLI(pki.cli.CLI):
def execute(self, argv):
try:
- opts, _ = getopt.getopt(argv, 'i:v', [
+ opts, _ = getopt.gnu_getopt(argv, 'i:v', [
'verbose', 'help'])
except getopt.GetoptError as e:
@@ -125,7 +125,7 @@ class InstanceShowCLI(pki.cli.CLI):
def execute(self, argv):
try:
- opts, args = getopt.getopt(argv, 'i:v', [
+ opts, args = getopt.gnu_getopt(argv, 'i:v', [
'verbose', 'help'])
except getopt.GetoptError as e:
@@ -174,7 +174,7 @@ class InstanceStartCLI(pki.cli.CLI):
def execute(self, argv):
try:
- opts, args = getopt.getopt(argv, 'i:v', [
+ opts, args = getopt.gnu_getopt(argv, 'i:v', [
'verbose', 'help'])
except getopt.GetoptError as e:
@@ -224,7 +224,7 @@ class InstanceStopCLI(pki.cli.CLI):
def execute(self, argv):
try:
- opts, args = getopt.getopt(argv, 'i:v', [
+ opts, args = getopt.gnu_getopt(argv, 'i:v', [
'verbose', 'help'])
except getopt.GetoptError as e:
@@ -276,7 +276,7 @@ class InstanceMigrateCLI(pki.cli.CLI):
def execute(self, argv):
try:
- opts, args = getopt.getopt(argv, 'i:v', [
+ opts, args = getopt.gnu_getopt(argv, 'i:v', [
'tomcat=', 'verbose', 'debug', 'help'])
except getopt.GetoptError as e:
@@ -313,11 +313,12 @@ class InstanceMigrateCLI(pki.cli.CLI):
sys.exit(1)
if not tomcat_version:
- print('ERROR: missing Tomcat version')
- self.print_help()
- sys.exit(1)
+ tomcat_version = pki.server.Tomcat.get_major_version()
+
+ if self.verbose:
+ print('Migrating to Tomcat %s' % tomcat_version)
- module = self.top.find_module('migrate')
+ module = self.get_top_module().find_module('migrate')
module.set_verbose(self.verbose)
module.set_debug(self.debug)
@@ -347,7 +348,7 @@ class InstanceNuxwdogEnableCLI(pki.cli.CLI):
def execute(self, argv):
try:
- opts, args = getopt.getopt(argv, 'i:v', [
+ opts, args = getopt.gnu_getopt(argv, 'i:v', [
'verbose', 'help'])
except getopt.GetoptError as e:
@@ -373,7 +374,7 @@ class InstanceNuxwdogEnableCLI(pki.cli.CLI):
self.print_help()
sys.exit(1)
- # module = self.top.find_module('nuxwdog-enable')
+ module = self.get_top_module().find_module('nuxwdog-enable')
module = pki.server.cli.nuxwdog.NuxwdogEnableCLI()
module.set_verbose(self.verbose)
@@ -402,7 +403,7 @@ class InstanceNuxwdogDisableCLI(pki.cli.CLI):
def execute(self, argv):
try:
- opts, args = getopt.getopt(argv, 'i:v', [
+ opts, args = getopt.gnu_getopt(argv, 'i:v', [
'verbose', 'help'])
except getopt.GetoptError as e:
@@ -428,8 +429,7 @@ class InstanceNuxwdogDisableCLI(pki.cli.CLI):
self.print_help()
sys.exit(1)
- # module = self.top.find_module('nuxwdog-disable')
- module = pki.server.cli.nuxwdog.NuxwdogDisableCLI()
+ module = self.get_top_module().find_module('nuxwdog-disable')
module.set_verbose(self.verbose)
instance = pki.server.PKIInstance(instance_name)
diff --git a/base/server/python/pki/server/cli/migrate.py b/base/server/python/pki/server/cli/migrate.py
index ba5e63116..09427974e 100644
--- a/base/server/python/pki/server/cli/migrate.py
+++ b/base/server/python/pki/server/cli/migrate.py
@@ -49,7 +49,7 @@ class MigrateCLI(pki.cli.CLI):
def execute(self, argv):
try:
- opts, _ = getopt.getopt(argv, 'i:v', [
+ opts, _ = getopt.gnu_getopt(argv, 'i:v', [
'tomcat=', 'verbose', 'debug', 'help'])
except getopt.GetoptError as e:
@@ -80,9 +80,10 @@ class MigrateCLI(pki.cli.CLI):
sys.exit(1)
if not tomcat_version:
- print('ERROR: missing Tomcat version')
- self.print_help()
- sys.exit(1)
+ tomcat_version = pki.server.Tomcat.get_major_version()
+
+ if self.verbose:
+ print('Migrating to Tomcat %s' % tomcat_version)
instances = pki.server.PKIServer.instances()
@@ -96,6 +97,10 @@ class MigrateCLI(pki.cli.CLI):
self.migrate_subsystems(instance, tomcat_version)
def migrate_instance(self, instance, tomcat_version):
+
+ if self.verbose:
+ print('Migrating %s instance' % instance.name)
+
server_xml = os.path.join(instance.conf_dir, 'server.xml')
self.migrate_server_xml(server_xml, tomcat_version)
@@ -373,6 +378,9 @@ class MigrateCLI(pki.cli.CLI):
self.migrate_subsystem(subsystem, tomcat_version)
def migrate_subsystem(self, subsystem, tomcat_version):
+ if self.verbose:
+ print('Migrating %s/%s subsystem' % (subsystem.instance.name, subsystem.name))
+
self.migrate_context_xml(subsystem.context_xml, tomcat_version)
def migrate_context_xml(self, filename, tomcat_version):
diff --git a/base/server/python/pki/server/cli/nuxwdog.py b/base/server/python/pki/server/cli/nuxwdog.py
index dd54f5683..dbdf973b6 100644
--- a/base/server/python/pki/server/cli/nuxwdog.py
+++ b/base/server/python/pki/server/cli/nuxwdog.py
@@ -68,7 +68,7 @@ class NuxwdogEnableCLI(pki.cli.CLI):
def execute(self, argv):
try:
- opts, _ = getopt.getopt(argv, 'i:v', [
+ opts, _ = getopt.gnu_getopt(argv, 'i:v', [
'verbose', 'help'])
except getopt.GetoptError as e:
@@ -275,7 +275,7 @@ class NuxwdogDisableCLI(pki.cli.CLI):
def execute(self, argv):
try:
- opts, _ = getopt.getopt(argv, 'i:v', [
+ opts, _ = getopt.gnu_getopt(argv, 'i:v', [
'verbose', 'help'])
except getopt.GetoptError as e:
diff --git a/base/server/python/pki/server/cli/subsystem.py b/base/server/python/pki/server/cli/subsystem.py
index f72292a9d..3b9f9860f 100644
--- a/base/server/python/pki/server/cli/subsystem.py
+++ b/base/server/python/pki/server/cli/subsystem.py
@@ -67,7 +67,7 @@ class SubsystemFindCLI(pki.cli.CLI):
def execute(self, args):
try:
- opts, _ = getopt.getopt(args, 'i:v', [
+ opts, _ = getopt.gnu_getopt(args, 'i:v', [
'instance=',
'verbose', 'help'])
@@ -125,7 +125,7 @@ class SubsystemShowCLI(pki.cli.CLI):
def execute(self, argv):
try:
- opts, args = getopt.getopt(argv, 'i:v', [
+ opts, args = getopt.gnu_getopt(argv, 'i:v', [
'instance=',
'verbose', 'help'])
@@ -182,7 +182,7 @@ class SubsystemEnableCLI(pki.cli.CLI):
def execute(self, argv):
try:
- opts, args = getopt.getopt(argv, 'i:v', [
+ opts, args = getopt.gnu_getopt(argv, 'i:v', [
'instance=',
'verbose', 'help'])
@@ -244,7 +244,7 @@ class SubsystemDisableCLI(pki.cli.CLI):
def execute(self, argv):
try:
- opts, args = getopt.getopt(argv, 'i:v', [
+ opts, args = getopt.gnu_getopt(argv, 'i:v', [
'instance=',
'verbose', 'help'])
@@ -324,7 +324,7 @@ class SubsystemCertFindCLI(pki.cli.CLI):
def execute(self, argv):
try:
- opts, args = getopt.getopt(argv, 'i:v', [
+ opts, args = getopt.gnu_getopt(argv, 'i:v', [
'instance=',
'verbose', 'help'])
@@ -392,7 +392,7 @@ class SubsystemCertShowCLI(pki.cli.CLI):
def execute(self, argv):
try:
- opts, args = getopt.getopt(argv, 'i:v', [
+ opts, args = getopt.gnu_getopt(argv, 'i:v', [
'instance=',
'verbose', 'help'])
@@ -457,7 +457,7 @@ class SubsystemCertUpdateCLI(pki.cli.CLI):
def execute(self, argv):
try:
- opts, args = getopt.getopt(argv, 'i:v', [
+ opts, args = getopt.gnu_getopt(argv, 'i:v', [
'instance=',
'verbose', 'help'])
diff --git a/specs/pki-core.spec b/specs/pki-core.spec
index 2680bf97f..df2e3aa9e 100644
--- a/specs/pki-core.spec
+++ b/specs/pki-core.spec
@@ -778,7 +778,7 @@ then
else
# On RPM upgrade run system upgrade
- echo "Upgrading system at `/bin/date`." >> /var/log/pki/pki-upgrade-%{version}.log 2>&1
+ echo "Upgrading PKI system configuration at `/bin/date`." >> /var/log/pki/pki-upgrade-%{version}.log 2>&1
/sbin/pki-upgrade --silent >> /var/log/pki/pki-upgrade-%{version}.log 2>&1
echo >> /var/log/pki/pki-upgrade-%{version}.log 2>&1
fi
@@ -798,10 +798,14 @@ fi
## from EITHER 'sysVinit' OR previous 'systemd' processes to the new
## PKI deployment process
-echo "Upgrading server at `/bin/date`." >> /var/log/pki/pki-server-upgrade-%{version}.log 2>&1
+echo "Upgrading PKI server configuration at `/bin/date`." >> /var/log/pki/pki-server-upgrade-%{version}.log 2>&1
/sbin/pki-server-upgrade --silent >> /var/log/pki/pki-server-upgrade-%{version}.log 2>&1
echo >> /var/log/pki/pki-server-upgrade-%{version}.log 2>&1
+# Migrate Tomcat configuration
+/sbin/pki-server migrate >> /var/log/pki/pki-server-upgrade-%{version}.log 2>&1
+echo >> /var/log/pki/pki-server-upgrade-%{version}.log 2>&1
+
systemctl daemon-reload
## %preun -n pki-server