From 63ac9595b4b193200e9b7af94f0854361a70eec9 Mon Sep 17 00:00:00 2001 From: Endi Sukma Dewata Date: Tue, 21 Aug 2012 13:15:34 -0500 Subject: 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 --- base/deploy/CMakeLists.txt | 10 +- base/deploy/config/pkideployment.cfg | 4 - base/deploy/src/scriptlets/pkimessages.py | 6 +- base/deploy/src/scriptlets/pkiparser.py | 7 -- base/deploy/src/scriptlets/war_explosion.py | 89 ---------------- base/deploy/src/scriptlets/webapp_deployment.py | 133 ++++++++++++++++++++++++ 6 files changed, 141 insertions(+), 108 deletions(-) delete mode 100644 base/deploy/src/scriptlets/war_explosion.py create mode 100644 base/deploy/src/scriptlets/webapp_deployment.py (limited to 'base/deploy') diff --git a/base/deploy/CMakeLists.txt b/base/deploy/CMakeLists.txt index 666a7704d..e0f65362b 100644 --- a/base/deploy/CMakeLists.txt +++ b/base/deploy/CMakeLists.txt @@ -86,7 +86,7 @@ install( src/scriptlets/selinux_setup.py src/scriptlets/slot_substitution.py src/scriptlets/subsystem_layout.py - src/scriptlets/war_explosion.py + src/scriptlets/webapp_deployment.py DESTINATION ${PYTHON_SITE_PACKAGES}/pki/deployment PERMISSIONS @@ -149,8 +149,8 @@ foreach(TOMCAT_SUBSYSTEM ${TOMCAT_SUBSYSTEMS}) ) install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink - \"${PYTHON_SITE_PACKAGES}/pki/deployment/war_explosion.py\" - \"\$ENV{DESTDIR}${DATA_INSTALL_DIR}/deployment/spawn/${TOMCAT_SUBSYSTEM}/040_war_explosion\")" + \"${PYTHON_SITE_PACKAGES}/pki/deployment/webapp_deployment.py\" + \"\$ENV{DESTDIR}${DATA_INSTALL_DIR}/deployment/spawn/${TOMCAT_SUBSYSTEM}/040_webapp_deployment\")" ) install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink @@ -192,8 +192,8 @@ foreach(TOMCAT_SUBSYSTEM ${TOMCAT_SUBSYSTEMS}) ) install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink - \"${PYTHON_SITE_PACKAGES}/pki/deployment/war_explosion.py\" - \"\$ENV{DESTDIR}${DATA_INSTALL_DIR}/deployment/destroy/${TOMCAT_SUBSYSTEM}/940_war_explosion\")" + \"${PYTHON_SITE_PACKAGES}/pki/deployment/webapp_deployment.py\" + \"\$ENV{DESTDIR}${DATA_INSTALL_DIR}/deployment/destroy/${TOMCAT_SUBSYSTEM}/940_webapp_deployment\")" ) # install(CODE "execute_process(COMMAND # ${CMAKE_COMMAND} -E create_symlink diff --git a/base/deploy/config/pkideployment.cfg b/base/deploy/config/pkideployment.cfg index 80816e495..006111622 100644 --- a/base/deploy/config/pkideployment.cfg +++ b/base/deploy/config/pkideployment.cfg @@ -157,7 +157,6 @@ pki_ocsp_signing_token= pki_subordinate=False pki_subsystem=CA pki_subsystem_name= -pki_war_file=ca.war ############################################################################### ## 'KRA' Data: ## ## ## @@ -182,7 +181,6 @@ pki_transport_nickname= pki_transport_signing_algorithm=SHA256withRSA pki_transport_subject_dn= pki_transport_token= -pki_war_file=kra.war ############################################################################### ## 'OCSP' Data: ## ## ## @@ -200,7 +198,6 @@ pki_ocsp_signing_subject_dn= pki_ocsp_signing_token= pki_subsystem=OCSP pki_subsystem_name= -pki_war_file=ocsp.war ############################################################################### ## 'RA' Data: ## ## ## @@ -220,7 +217,6 @@ pki_subsystem_name= [TKS] pki_subsystem=TKS pki_subsystem_name= -pki_war_file=tks.war ############################################################################### ## 'TPS' Data: ## ## ## diff --git a/base/deploy/src/scriptlets/pkimessages.py b/base/deploy/src/scriptlets/pkimessages.py index ba3f22898..ff023c6de 100644 --- a/base/deploy/src/scriptlets/pkimessages.py +++ b/base/deploy/src/scriptlets/pkimessages.py @@ -334,6 +334,6 @@ SLOT_ASSIGNMENT_SPAWN_1 = "assigning slots for '%s'" SUBSYSTEM_DESTROY_1 = "depopulating '%s'" SUBSYSTEM_RESPAWN_1 = "repopulating '%s'" SUBSYSTEM_SPAWN_1 = "populating '%s'" -WAR_EXPLOSION_DESTROY_1 = "removing '%s'" -WAR_EXPLOSION_RESPAWN_1 = "redeploying '%s'" -WAR_EXPLOSION_SPAWN_1 = "deploying '%s'" +WEBAPP_DEPLOYMENT_DESTROY_1 = "removing '%s'" +WEBAPP_DEPLOYMENT_RESPAWN_1 = "redeploying '%s'" +WEBAPP_DEPLOYMENT_SPAWN_1 = "deploying '%s'" diff --git a/base/deploy/src/scriptlets/pkiparser.py b/base/deploy/src/scriptlets/pkiparser.py index 4b6128440..09424120c 100644 --- a/base/deploy/src/scriptlets/pkiparser.py +++ b/base/deploy/src/scriptlets/pkiparser.py @@ -406,17 +406,10 @@ def compose_pki_master_dictionary(): "lib") config.pki_master_dict['pki_tomcat_systemd'] =\ config.PKI_DEPLOYMENT_TOMCAT_SYSTEMD - config.pki_master_dict['pki_war_source_dir'] =\ - os.path.join(config.PKI_DEPLOYMENT_SOURCE_ROOT, - config.pki_master_dict['pki_subsystem'].lower(), - "war") config.pki_master_dict['pki_source_webapps_path'] =\ os.path.join(config.PKI_DEPLOYMENT_SOURCE_ROOT, config.pki_master_dict['pki_subsystem'].lower(), "webapps") - config.pki_master_dict['pki_war'] =\ - os.path.join(config.pki_master_dict['pki_war_source_dir'], - config.pki_master_dict['pki_war_file']) config.pki_master_dict['pki_source_catalina_properties'] =\ os.path.join(config.pki_master_dict['pki_source_shared_path'], "catalina.properties") diff --git a/base/deploy/src/scriptlets/war_explosion.py b/base/deploy/src/scriptlets/war_explosion.py deleted file mode 100644 index 16113ba7d..000000000 --- a/base/deploy/src/scriptlets/war_explosion.py +++ /dev/null @@ -1,89 +0,0 @@ -#!/usr/bin/python -t -# Authors: -# Matthew Harmsen -# -# 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. -# - -# 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 Deployment War Explosion Scriptlet -class PkiScriptlet(pkiscriptlet.AbstractBasePkiScriptlet): - rv = 0 - - def spawn(self): - if master['pki_subsystem'] in config.PKI_TOMCAT_SUBSYSTEMS: - config.pki_log.info(log.WAR_EXPLOSION_SPAWN_1, __name__, - extra=config.PKI_INDENTATION_LEVEL_1) - # deploy war file - util.directory.create(master['pki_tomcat_webapps_subsystem_path']) - util.war.explode(master['pki_war'], - master['pki_tomcat_webapps_subsystem_path']) - 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.WAR_EXPLOSION_RESPAWN_1, __name__, - extra=config.PKI_INDENTATION_LEVEL_1) - # redeploy war file - util.directory.modify(master['pki_tomcat_webapps_subsystem_path']) - util.war.explode(master['pki_war'], - master['pki_tomcat_webapps_subsystem_path']) - # 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.WAR_EXPLOSION_DESTROY_1, __name__, - extra=config.PKI_INDENTATION_LEVEL_1) - util.directory.delete(master['pki_tomcat_webapps_subsystem_path']) - return self.rv 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 +# +# 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 -- cgit