diff options
-rw-r--r-- | base/common/python/pki/cli.py | 7 | ||||
-rw-r--r-- | base/server/python/pki/server/__init__.py | 18 | ||||
-rw-r--r-- | base/server/python/pki/server/cli/instance.py | 28 | ||||
-rw-r--r-- | base/server/python/pki/server/cli/migrate.py | 16 | ||||
-rw-r--r-- | base/server/python/pki/server/cli/nuxwdog.py | 4 | ||||
-rw-r--r-- | base/server/python/pki/server/cli/subsystem.py | 14 | ||||
-rw-r--r-- | specs/pki-core.spec | 8 |
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 |