summaryrefslogtreecommitdiffstats
path: root/base/server/python/pki/server/deployment/pkihelper.py
diff options
context:
space:
mode:
authorEndi S. Dewata <edewata@redhat.com>2014-10-12 00:16:55 -0400
committerEndi S. Dewata <edewata@redhat.com>2015-01-28 13:40:26 -0500
commit2d574090ba49eec9647b78b44d841a6d6026dccf (patch)
tree2b831ff4ace681b444f9f1b1b83e456130635803 /base/server/python/pki/server/deployment/pkihelper.py
parent8bafe7988740ce078eac8624121459b5357a7501 (diff)
downloadpki-2d574090ba49eec9647b78b44d841a6d6026dccf.tar.gz
pki-2d574090ba49eec9647b78b44d841a6d6026dccf.tar.xz
pki-2d574090ba49eec9647b78b44d841a6d6026dccf.zip
Moved web application deployment locations.
Currently web applications are deployed into Host's appBase (i.e. <instance>/webapps). To allow better control of individual subsystem deployments, the web applications have to be moved out of the appBase so that the autoDeploy can work properly later. This patch moves the common web applications to <instance>/ common/webapps and subsystem web applications to <instance>/ <subsystem>/webapps. An upgrade script has been added to update existing deployments. https://fedorahosted.org/pki/ticket/1183
Diffstat (limited to 'base/server/python/pki/server/deployment/pkihelper.py')
-rw-r--r--base/server/python/pki/server/deployment/pkihelper.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/base/server/python/pki/server/deployment/pkihelper.py b/base/server/python/pki/server/deployment/pkihelper.py
index 9d2469dec..02a2c9e32 100644
--- a/base/server/python/pki/server/deployment/pkihelper.py
+++ b/base/server/python/pki/server/deployment/pkihelper.py
@@ -40,6 +40,7 @@ from grp import getgrnam
from pwd import getpwnam
from pwd import getpwuid
import xml.etree.ElementTree as ET
+from lxml import etree
import zipfile
import selinux
if selinux.is_selinux_enabled():
@@ -4173,4 +4174,38 @@ class PKIDeployer:
self.tps_connector = TPSConnector(self)
self.config_client = ConfigClient(self)
+ def deploy_webapp(self, name, doc_base, descriptor):
+ """
+ Deploy a web application into a Tomcat instance.
+
+ This method will copy the specified deployment descriptor into
+ <instance>/conf/Catalina/localhost/<name>.xml and point the docBase
+ to the specified location. The web application will become available
+ under "/<name>" URL path.
+
+ See also: http://tomcat.apache.org/tomcat-7.0-doc/config/context.html
+
+ :param name: Web application name.
+ :type name: str
+ :param doc_base: Path to web application content.
+ :type doc_base: str
+ :param descriptor: Path to deployment descriptor (context.xml).
+ :type descriptor: str
+ """
+ new_descriptor = os.path.join(
+ self.mdict['pki_instance_configuration_path'],
+ "Catalina",
+ "localhost",
+ name + ".xml")
+
+ parser = etree.XMLParser(remove_blank_text=True)
+ document = etree.parse(descriptor, parser)
+
+ context = document.getroot()
+ context.set('docBase', doc_base)
+
+ with open(new_descriptor, 'w') as f:
+ f.write(etree.tostring(document, pretty_print=True))
+ os.chown(new_descriptor, self.mdict['pki_uid'], self.mdict['pki_gid'])
+ os.chmod(new_descriptor, config.PKI_DEPLOYMENT_DEFAULT_FILE_PERMISSIONS)