summaryrefslogtreecommitdiffstats
path: root/base/server
diff options
context:
space:
mode:
authorAde Lee <alee@redhat.com>2015-04-29 12:46:19 -0400
committerAde Lee <alee@redhat.com>2015-04-29 17:29:40 -0400
commitdca532a48524ee6be1c7522cf11fef062c27f2bb (patch)
tree76b4c9b251776d602d759a8fa6c17b585220142c /base/server
parent34d7a671cf9d884135bf50f89f5f420ce697d1b4 (diff)
downloadpki-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.82
-rw-r--r--base/server/python/pki/server/deployment/pkiparser.py20
-rwxr-xr-xbase/server/sbin/pkispawn38
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'])