diff options
author | Ade Lee <alee@redhat.com> | 2015-04-29 12:46:19 -0400 |
---|---|---|
committer | Ade Lee <alee@redhat.com> | 2015-04-29 17:29:40 -0400 |
commit | dca532a48524ee6be1c7522cf11fef062c27f2bb (patch) | |
tree | 76b4c9b251776d602d759a8fa6c17b585220142c /base/server | |
parent | 34d7a671cf9d884135bf50f89f5f420ce697d1b4 (diff) | |
download | pki-dca532a48524ee6be1c7522cf11fef062c27f2bb.tar.gz pki-dca532a48524ee6be1c7522cf11fef062c27f2bb.tar.xz pki-dca532a48524ee6be1c7522cf11fef062c27f2bb.zip |
Fix interactive install to not reprompt for ports
Ports are already set when deploying into an existing instance.
Having a user re-enter these is repetitious and error prone.
Diffstat (limited to 'base/server')
-rw-r--r-- | base/server/man/man8/pkispawn.8 | 2 | ||||
-rw-r--r-- | base/server/python/pki/server/deployment/pkiparser.py | 20 | ||||
-rwxr-xr-x | base/server/sbin/pkispawn | 38 |
3 files changed, 53 insertions, 7 deletions
diff --git a/base/server/man/man8/pkispawn.8 b/base/server/man/man8/pkispawn.8 index 1ef9b26be..33c36e338 100644 --- a/base/server/man/man8/pkispawn.8 +++ b/base/server/man/man8/pkispawn.8 @@ -116,6 +116,8 @@ the AJP port of the Tomcat instance. The default value is 8009. .TP \fIManagement port:\fP the management port of the Tomcat instance. The default value is 8005. +.TP +\fBNote:\fP When deploying a new subsystem into an existing instance, pkispawn will attempt to read the ports from \fBdeployment.cfg\fP files stored for previously installed subsystems for this instance. If successful, the installer will not prompt for these ports. .PP \fBAdministrative User Parameters\fP .TP diff --git a/base/server/python/pki/server/deployment/pkiparser.py b/base/server/python/pki/server/deployment/pkiparser.py index b39075f6c..39cef9413 100644 --- a/base/server/python/pki/server/deployment/pkiparser.py +++ b/base/server/python/pki/server/deployment/pkiparser.py @@ -1259,3 +1259,23 @@ class PKIConfigParser: except ConfigParser.ParsingError, err: rv = err return rv + + @staticmethod + def read_existing_deployment_data(instance_name): + data = {} + instance_root = os.path.join('/var/lib/pki', instance_name) + if not os.path.exists(instance_root): + return data + deployment_root = os.path.join('/etc/sysconfig/pki/tomcat', + instance_name) + + for root, _dirs, names in os.walk(deployment_root): + if 'deployment.cfg' in names: + deployment_file = os.path.join(root, 'deployment.cfg') + data = PKIConfigParser.read_simple_configuration_file( + deployment_file) + break + + return data + + diff --git a/base/server/sbin/pkispawn b/base/server/sbin/pkispawn index 965918f22..d4cfe05d7 100755 --- a/base/server/sbin/pkispawn +++ b/base/server/sbin/pkispawn @@ -147,13 +147,30 @@ def main(argv): parser.indent = 2 print "Tomcat:" - parser.read_text('Instance', 'DEFAULT', 'pki_instance_name') - parser.read_text('HTTP port', config.pki_subsystem, 'pki_http_port') - parser.read_text('Secure HTTP port', config.pki_subsystem, - 'pki_https_port') - parser.read_text('AJP port', config.pki_subsystem, 'pki_ajp_port') - parser.read_text('Management port', config.pki_subsystem, - 'pki_tomcat_server_port') + instance_name = parser.read_text( + 'Instance', 'DEFAULT', 'pki_instance_name') + existing_data = parser.read_existing_deployment_data(instance_name) + + set_port(parser, + 'pki_http_port', + 'HTTP port', + existing_data) + + set_port(parser, + 'pki_https_port', + 'Secure HTTP port', + existing_data) + + set_port(parser, + 'pki_ajp_port', + 'AJP port', + existing_data) + + set_port(parser, + 'pki_tomcat_server_port', + 'Management port', + existing_data) + print print "Administrator:" @@ -586,6 +603,13 @@ def main(argv): print_install_information(parser.mdict) +def set_port(parser, tag, prompt, existing_data): + if tag in existing_data: + parser.set_property(config.pki_subsystem, tag, existing_data[tag]) + else: + parser.read_text(prompt, config.pki_subsystem, tag) + + def print_install_information(mdict): skip_configuration = config.str2bool(mdict['pki_skip_configuration']) |