summaryrefslogtreecommitdiffstats
path: root/base/deploy/src/scriptlets/webapp_deployment.py
diff options
context:
space:
mode:
authorEndi Sukma Dewata <edewata@redhat.com>2012-08-21 13:15:34 -0500
committerEndi Sukma Dewata <edewata@redhat.com>2012-09-05 10:08:41 -0500
commit63ac9595b4b193200e9b7af94f0854361a70eec9 (patch)
treee90039709931cd7783cbdb0276bf3e683704cf22 /base/deploy/src/scriptlets/webapp_deployment.py
parent1637107a208bc4ea465671ba0d9539548b4f1146 (diff)
downloadpki-63ac9595b4b193200e9b7af94f0854361a70eec9.tar.gz
pki-63ac9595b4b193200e9b7af94f0854361a70eec9.tar.xz
pki-63ac9595b4b193200e9b7af94f0854361a70eec9.zip
Moved webapp deployment code into pkispawn.
Previously the WAR files were generated at build time, so it would include theme files that were installed on the build machine. The code has been changed such that instead of generating WAR files pkispawn will copy the webapp files from the theme folders and combine them with subsystem webapp files at deployment time. This way it will use the actual theme files installed on the deployment machine. Ticket #89
Diffstat (limited to 'base/deploy/src/scriptlets/webapp_deployment.py')
-rw-r--r--base/deploy/src/scriptlets/webapp_deployment.py133
1 files changed, 133 insertions, 0 deletions
diff --git a/base/deploy/src/scriptlets/webapp_deployment.py b/base/deploy/src/scriptlets/webapp_deployment.py
new file mode 100644
index 000000000..17b1bc349
--- /dev/null
+++ b/base/deploy/src/scriptlets/webapp_deployment.py
@@ -0,0 +1,133 @@
+#!/usr/bin/python -t
+# Authors:
+# Matthew Harmsen <mharmsen@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) 2012 Red Hat, Inc.
+# All rights reserved.
+#
+
+# System Imports
+import os
+
+
+# PKI Deployment Imports
+import pkiconfig as config
+from pkiconfig import pki_master_dict as master
+import pkihelper as util
+import pkimessages as log
+import pkiscriptlet
+
+
+# PKI Web Application Deployment Scriptlet
+class PkiScriptlet(pkiscriptlet.AbstractBasePkiScriptlet):
+ rv = 0
+
+ def spawn(self):
+ if master['pki_subsystem'] in config.PKI_TOMCAT_SUBSYSTEMS:
+ config.pki_log.info(log.WEBAPP_DEPLOYMENT_SPAWN_1, __name__,
+ extra=config.PKI_INDENTATION_LEVEL_1)
+ # deploy war file
+ util.directory.create(master['pki_tomcat_webapps_subsystem_path'])
+ util.directory.copy(
+ os.path.join(
+ config.PKI_DEPLOYMENT_SOURCE_ROOT,
+ "common-ui"),
+ master['pki_tomcat_webapps_subsystem_path'],
+ overwrite_flag=True)
+ util.directory.copy(
+ os.path.join(
+ config.PKI_DEPLOYMENT_SOURCE_ROOT,
+ master['pki_subsystem'].lower() + "-ui",
+ "webapps",
+ master['pki_subsystem'].lower()),
+ master['pki_tomcat_webapps_subsystem_path'],
+ overwrite_flag=True)
+ util.directory.copy(
+ os.path.join(
+ config.PKI_DEPLOYMENT_SOURCE_ROOT,
+ master['pki_subsystem'].lower(),
+ "webapps",
+ master['pki_subsystem'].lower()),
+ master['pki_tomcat_webapps_subsystem_path'],
+ overwrite_flag=True)
+ util.directory.create(
+ master['pki_tomcat_webapps_subsystem_webinf_classes_path'])
+ util.directory.create(
+ master['pki_tomcat_webapps_subsystem_webinf_lib_path'])
+ # establish Tomcat webapps subsystem WEB-INF lib symbolic links
+ if master['pki_subsystem'] == "CA":
+ util.symlink.create(master['pki_ca_jar'],
+ master['pki_ca_jar_link'])
+ elif master['pki_subsystem'] == "KRA":
+ util.symlink.create(master['pki_kra_jar'],
+ master['pki_kra_jar_link'])
+ elif master['pki_subsystem'] == "OCSP":
+ util.symlink.create(master['pki_ocsp_jar'],
+ master['pki_ocsp_jar_link'])
+ elif master['pki_subsystem'] == "TKS":
+ util.symlink.create(master['pki_tks_jar'],
+ master['pki_tks_jar_link'])
+ # set ownerships, permissions, and acls
+ util.directory.set_mode(master['pki_tomcat_webapps_subsystem_path'])
+ return self.rv
+
+ def respawn(self):
+ if master['pki_subsystem'] in config.PKI_TOMCAT_SUBSYSTEMS:
+ config.pki_log.info(log.WEBAPP_DEPLOYMENT_RESPAWN_1, __name__,
+ extra=config.PKI_INDENTATION_LEVEL_1)
+ # redeploy war file
+ util.directory.modify(master['pki_tomcat_webapps_subsystem_path'])
+ util.directory.copy(
+ os.path.join(
+ config.PKI_DEPLOYMENT_SOURCE_ROOT,
+ "common-ui"),
+ master['pki_tomcat_webapps_subsystem_path'],
+ overwrite_flag=True)
+ util.directory.copy(
+ os.path.join(
+ config.PKI_DEPLOYMENT_SOURCE_ROOT,
+ master['pki_subsystem'].lower() + "-ui",
+ "webapps",
+ master['pki_subsystem'].lower()),
+ master['pki_tomcat_webapps_subsystem_path'],
+ overwrite_flag=True)
+ util.directory.copy(
+ os.path.join(
+ config.PKI_DEPLOYMENT_SOURCE_ROOT,
+ master['pki_subsystem'].lower(),
+ "webapps",
+ master['pki_subsystem'].lower()),
+ master['pki_tomcat_webapps_subsystem_path'],
+ overwrite_flag=True)
+ # update Tomcat webapps subsystem WEB-INF lib symbolic links
+ if master['pki_subsystem'] == "CA":
+ util.symlink.modify(master['pki_ca_jar_link'])
+ elif master['pki_subsystem'] == "KRA":
+ util.symlink.modify(master['pki_kra_jar_link'])
+ elif master['pki_subsystem'] == "OCSP":
+ util.symlink.modify(master['pki_ocsp_jar_link'])
+ elif master['pki_subsystem'] == "TKS":
+ util.symlink.modify(master['pki_tks_jar_link'])
+ # update ownerships, permissions, and acls
+ util.directory.set_mode(master['pki_tomcat_webapps_subsystem_path'])
+ return self.rv
+
+ def destroy(self):
+ if master['pki_subsystem'] in config.PKI_TOMCAT_SUBSYSTEMS:
+ config.pki_log.info(log.WEBAPP_DEPLOYMENT_DESTROY_1, __name__,
+ extra=config.PKI_INDENTATION_LEVEL_1)
+ util.directory.delete(master['pki_tomcat_webapps_subsystem_path'])
+ return self.rv