From 1f360eb7f0154b5a17f059584fe211801d1b54cd Mon Sep 17 00:00:00 2001
From: madiot <madiot@localhost>
Date: Tue, 22 Dec 2009 15:03:13 +0000
Subject: [PATCH] enable multiple webcontainer to test with DSML
---
opends/tests/staf-tests/shared/ant/tests.xml | 1
opends/tests/staf-tests/shared/ant/build.xml | 27 +
opends/tests/staf-tests/shared/staf/staf-controller.cfg | 2
opends/tests/staf-tests/shared/tests/config.py.stubs | 6
opends/tests/staf-tests/shared/functions/webcontainer.xml | 777 +++++++++++++++++++++++++++++++++++++++++------
opends/tests/staf-tests/shared/ant/build.properties | 4
opends/tests/staf-tests/shared/tests/runTestJob.xml | 2
opends/tests/staf-tests/functional-tests/testcases/dsml/dsml_cleanup.xml | 22 -
opends/tests/staf-tests/functional-tests/testcases/dsml/dsml_setup.xml | 67 +++
opends/tests/staf-tests/shared/ant/dependencies.xml | 10
opends/tests/staf-tests/shared/ant/user.xml | 18 +
11 files changed, 788 insertions(+), 148 deletions(-)
diff --git a/opends/tests/staf-tests/functional-tests/testcases/dsml/dsml_cleanup.xml b/opends/tests/staf-tests/functional-tests/testcases/dsml/dsml_cleanup.xml
index 0f50fe1..355f4ab 100755
--- a/opends/tests/staf-tests/functional-tests/testcases/dsml/dsml_cleanup.xml
+++ b/opends/tests/staf-tests/functional-tests/testcases/dsml/dsml_cleanup.xml
@@ -110,27 +110,7 @@
<message>
'cleanup: stop webcontainer as described in config.py'
</message>
- <call function="'stopWebcontainerWithScript'">
- { 'location' : STAF_REMOTE_HOSTNAME,
- 'wcPath' : '%s/%s-%s' % (WC_DIRECTORY,WC_TYPE,WC_VERSION) }
- </call>
- <message>'getting the list of generic known Issues spanning multiple tests'</message>
- <call function="'runSTAFCommand'">
- { 'name' : 'backup tomcat log files',
- 'location' : STAF_REMOTE_HOSTNAME,
- 'service' : 'FS',
- 'request' : 'COPY ',
- 'arguments' : 'DIRECTORY %s/%s-%s/logs TODIRECTORY %s/tomcatLogBackup TOMACHINE %s RECURSE' % (WC_DIRECTORY, WC_TYPE, WC_VERSION, local.temp, STAXServiceMachine)
- }
- </call>
-
- <if expr="RC != 0">
- <sequence>
- <message>'Failed to backup tomcat log file'</message>
- <return>0</return>
- </sequence>
- </if>
-
+ <call function="'stopWebcontainerWithScript'"/>
<call function="'testCase_Postamble'"/>
</sequence>
</testcase>
diff --git a/opends/tests/staf-tests/functional-tests/testcases/dsml/dsml_setup.xml b/opends/tests/staf-tests/functional-tests/testcases/dsml/dsml_setup.xml
index d596996..9eb445f 100755
--- a/opends/tests/staf-tests/functional-tests/testcases/dsml/dsml_setup.xml
+++ b/opends/tests/staf-tests/functional-tests/testcases/dsml/dsml_setup.xml
@@ -496,13 +496,66 @@
<message>
'Update DSML gateway web.xml file on host %s' % STAF_REMOTE_HOSTNAME
</message>
- <call function="'copyFile'">
- { 'location' : STAXServiceMachine,
- 'remotehost' : '%s' % STAF_REMOTE_HOSTNAME,
- 'srcfile' : '%s/WEB-INF/web.xml.out' % myTmpDir,
- 'destfile' : '%s/%s-%s/webapps/dsml/WEB-INF/web.xml' % (WC_DIRECTORY,WC_TYPE,WC_VERSION)
- }
- </call>
+ <script>
+ # create the autodeploy webapp path
+ destWebXml = None
+ if WC_TYPE == 'tomcat':
+ destWebXml = os.path.join(WC_DIRECTORY, 'apache-%s-%s' % (WC_TYPE, WC_VERSION), 'webapps',
+ 'dsml', 'WEB-INF', 'web.xml')
+ elif WC_TYPE == 'glassfish':
+ destWebXml = os.path.join(WC_DIRECTORY, 'glassfishv3', 'glassfish',
+ 'domains', 'domain1', 'applications',
+ 'dsml', 'WEB-INF', 'web.xml')
+ elif WC_TYPE == 'sunwebserver':
+ destWebXml = os.path.join(WC_DIRECTORY, '%s-%s' % (WC_TYPE, WC_VERSION), 'https-%s' % STAF_REMOTE_HOSTNAME,
+ 'generated', STAF_REMOTE_HOSTNAME, 'dsml', 'WEB-INF', 'web.xml')
+
+ nbLoop = 10
+ loopSleep = 1000 # 1000 millisecondes
+ </script>
+ <message>'checking presence of deployed dsml %s' % destWebXml</message>
+ <loop from="0" to="nbLoop" while="RC == 48">
+ <sequence>
+ <call function="'Sleep'">
+ {'sleepForMilliSeconds' : loopSleep }
+ </call>
+ <message>'going to sleep for 2 secondes'</message>
+ <call function="'GetEntry'">
+ {
+ 'location' : STAF_REMOTE_HOSTNAME,
+ 'entry' : destWebXml,
+ 'attribute': 'TYPE'
+ }
+ </call>
+ </sequence>
+ </loop>
+ <if expr="RC == 0">
+ <sequence>
+ <message>
+ 'going to copy %s:%s/WEB-INF/web.xml.out to %s:%s' % (STAXServiceMachine,myTmpDir,STAF_REMOTE_HOSTNAME,destWebXml)
+ </message>
+ <call function="'copyFile'">
+ { 'location' : STAXServiceMachine,
+ 'remotehost' : '%s' % STAF_REMOTE_HOSTNAME,
+ 'srcfile' : '%s/WEB-INF/web.xml.out' % myTmpDir,
+ 'destfile' : destWebXml
+ }
+ </call>
+ <call function="'checktestRC'">
+ {
+ 'returncode' : RC ,
+ 'result' : STAXResult
+ }
+ </call>
+ <call function="'stopWebcontainerWithScript'"/>
+ <call function="'startWebcontainerWithScript'"/>
+ </sequence>
+ <else>
+ <message>
+ 'the target %s is not available after %sms' % (destWebXml, (nbLoop*loopSleep))
+ </message>
+ </else>
+ </if>
<call function="'checktestRC'">
{
'returncode' : RC ,
diff --git a/opends/tests/staf-tests/shared/ant/build.properties b/opends/tests/staf-tests/shared/ant/build.properties
index 6d04cc4..17acb79 100644
--- a/opends/tests/staf-tests/shared/ant/build.properties
+++ b/opends/tests/staf-tests/shared/ant/build.properties
@@ -41,7 +41,11 @@
event.version=313
eventmanager.version=335
http.version=301
+
+wc.type=tomcat
tomcat.version=6.0.20
+glassfish.version=v3
+sunwebserver.version=7_0u6
# Proxy section
proxy.enabled=false
diff --git a/opends/tests/staf-tests/shared/ant/build.xml b/opends/tests/staf-tests/shared/ant/build.xml
index 45572a0..7f70b34 100644
--- a/opends/tests/staf-tests/shared/ant/build.xml
+++ b/opends/tests/staf-tests/shared/ant/build.xml
@@ -255,6 +255,33 @@
<var name="http.archive" value="HTTPV${http.version}.zip"/>
<var name="tomcat.url" value="http://archive.apache.org/dist/tomcat/tomcat-6/v${tomcat.version}/bin"/>
<var name="tomcat.archive" value="apache-tomcat-${tomcat.version}.zip"/>
+ <var name="glassfish.url" value="http://download.java.net/glassfish/${glassfish.version}/release"/>
+ <var name="glassfish.archive" value="glassfish-${glassfish.version}.zip"/>
+ <var name="sunwebserver.url" value="${sunwebserver.url}"/>
+ <var name="sunwebserver.archive" value="sjsws-${sunwebserver.version}-${os.myname}.zip"/>
+
+ <switch value="${wc.type}">
+ <case value="glassfish">
+ <!-- Glassfish webcontainer -->
+ <var name="wc.url" value="${glassfish.url}"/>
+ <var name="wc.archive" value="${glassfish.archive}"/>
+ <var name="wc.version" value="${glassfish.version}"/>
+ </case>
+ <case value="sunwebserver">
+ <!-- SunWebserver webcontainer -->
+ <var name="wc.url" value="${sunwebserver.url}"/>
+ <var name="wc.archive" value="${sunwebserver.archive}"/>
+ <var name="wc.version" value="${sunwebserver.version}"/>
+ </case>
+ <default>
+ <!-- Tomcat webcontainer -->
+ <var name="wc.url" value="${tomcat.url}"/>
+ <var name="wc.archive" value="${tomcat.archive}"/>
+ <var name="wc.version" value="${tomcat.version}"/>
+ </default>
+ </switch>
+
+
</target>
<!-- ######### -->
diff --git a/opends/tests/staf-tests/shared/ant/dependencies.xml b/opends/tests/staf-tests/shared/ant/dependencies.xml
index 2cb2684..a042b01 100644
--- a/opends/tests/staf-tests/shared/ant/dependencies.xml
+++ b/opends/tests/staf-tests/shared/ant/dependencies.xml
@@ -36,7 +36,7 @@
<!-- STAF and other services -->
<var name="list" value="${staf.archive},${stax.archive},${email.archive}"/>
<var name="list" value="${list},${event.archive},${eventmanager.archive}"/>
- <var name="list" value="${list},${http.archive},${tomcat.archive}"/>
+ <var name="list" value="${list},${http.archive},${wc.archive}"/>
<mkdir dir="${tmp.dir}"/>
<for list="${list}" param="archive">
<sequential>
@@ -88,10 +88,10 @@
</or>
<then>
<if>
- <equals arg1="@{archive}" arg2="${tomcat.archive}"/>
+ <equals arg1="@{archive}" arg2="${wc.archive}"/>
<then>
<!-- Tomcat url -->
- <var name="url" value="${tomcat.url}"/>
+ <var name="url" value="${wc.url}"/>
</then>
<else>
<!-- Other url -->
@@ -118,7 +118,7 @@
<include name="${event.archive}"/>
<include name="${eventmanager.archive}"/>
<include name="${http.archive}"/>
- <include name="${tomcat.archive}"/>
+ <include name="${wc.archive}"/>
</delete>
</target>
@@ -131,7 +131,7 @@
<exclude name="${event.archive}"/>
<exclude name="${eventmanager.archive}"/>
<exclude name="${http.archive}"/>
- <exclude name="${tomcat.archive}"/>
+ <exclude name="${wc.archive}"/>
</delete>
</target>
diff --git a/opends/tests/staf-tests/shared/ant/tests.xml b/opends/tests/staf-tests/shared/ant/tests.xml
index 9d5d5df..b6acd93 100644
--- a/opends/tests/staf-tests/shared/ant/tests.xml
+++ b/opends/tests/staf-tests/shared/ant/tests.xml
@@ -368,6 +368,7 @@
snmp.opendmk.lib.dir=${snmp.opendmk.lib.dir.input}
ldclt.dir=${ldclt.dir.input}
verbose.mode=${verbose.mode.input}
+wc.type=tomcat
test.plan.custom=${test.plan.custom}</echo>
</target>
diff --git a/opends/tests/staf-tests/shared/ant/user.xml b/opends/tests/staf-tests/shared/ant/user.xml
index 7e6e62e..b2fc92c 100644
--- a/opends/tests/staf-tests/shared/ant/user.xml
+++ b/opends/tests/staf-tests/shared/ant/user.xml
@@ -75,6 +75,18 @@
<input message=" Enter Tomcat service version:"
defaultvalue="${tomcat.version}"
addproperty="tomcat.version.input"/>
+
+ <input message=" Enter Glassfish service version:"
+ defaultvalue="${glassfish.version}"
+ addproperty="glassfish.version.input"/>
+
+ <input message=" Enter SunWebserver download url:"
+ defaultvalue="${sunwebserver.url}"
+ addproperty="sunwebserver.url.input"/>
+
+ <input message=" Enter SunWebserver service version:"
+ defaultvalue="${sunwebserver.version}"
+ addproperty="sunwebserver.version.input"/>
</then>
<else>
<property name="staf.version.input" value="${staf.version}"/>
@@ -85,6 +97,9 @@
<property name="eventmanager.version.input" value="${eventmanager.version}"/>
<property name="http.version.input" value="${http.version}"/>
<property name="tomcat.version.input" value="${tomcat.version}"/>
+ <property name="glassfish.version.input" value="${glassfish.version}"/>
+ <property name="sunwebserver.url.input" value="${sunwebserver.url}"/>
+ <property name="sunwebserver.version.input" value="${sunwebserver.version}"/>
</else>
</if>
@@ -158,6 +173,9 @@
eventmanager.version=${eventmanager.version.input}
http.version=${http.version.input}
tomcat.version=${tomcat.version.input}
+glassfish.version=${glassfish.version.input}
+sunwebserver.url=${sunwebserver.url.input}
+sunwebserver.version=${sunwebserver.version.input}
proxy.enabled=${proxy.enabled.input}
proxy.host=${proxy.host.input}
proxy.port=${proxy.port.input}
diff --git a/opends/tests/staf-tests/shared/functions/webcontainer.xml b/opends/tests/staf-tests/shared/functions/webcontainer.xml
index e6777a4..6b712f2 100755
--- a/opends/tests/staf-tests/shared/functions/webcontainer.xml
+++ b/opends/tests/staf-tests/shared/functions/webcontainer.xml
@@ -77,110 +77,515 @@
'unzipdir' : '%s' % wcPath }
</call>
- <!-- chmod +x all the .sh file in tomcat bin directory -->
- <stafcmd name="'make tomcat shell scripts executable'">
- <location>'%s' % mylocation</location>
- <service>'fs'</service>
- <request>' LIST DIRECTORY %s/%s-%s/bin EXT sh' % \
- (wcPath, WC_TYPE, WC_VERSION)</request>
- </stafcmd>
- <script>
- shFilesRC=RC
- shFilesResult=" ".join(STAFResult)
- </script>
- <message>'shFilesResult=%s' % shFilesResult</message>
- <process name="'chmod +x tomcat\'s shell scripts'">
- <location>'%s' % mylocation</location>
- <command mode="'shell'">'chmod +x %s' % shFilesResult</command>
- <parms/>
- <workdir>'%s/%s-%s/bin' % (wcPath, WC_TYPE, WC_VERSION)</workdir>
- <envs>['PATH=/bin:/usr/bin']</envs>
- <stderr mode="'stdout'"/>
- <stdout/>
- <returnstdout/>
- </process>
-
<!-- generate SSL certificate -->
- <!-- Check if 'tomcatCertificate' file exists -->
+ <!-- Check if 'webcontainer Certificate' file exists -->
<call function="'GetEntry'">
{
'location' : STAXServiceMachine,
- 'entry' : '%s/tomcatCertificate' % TMPDIR,
+ 'entry' : '%s/%sCertificate' % (TMPDIR, WC_TYPE),
'attribute' : 'TYPE'
}
</call>
- <!-- 'tomcatCertificate' file does not exist so generate it -->
+ <!-- 'WCCertificate' file does not exist so generate it -->
<if expr="RC == 48">
- <call function="'runCommand'">
- { 'name' : 'Generate a Certificate',
- 'location' : STAXServiceMachine,
- 'command' : '%s/bin/keytool' % (LOCAL_JAVA_HOME),
- 'arguments' : '-genkey -alias tomcat -keyalg rsa \
- -dname "cn=tomcat,O=Sun Microsystems,C=US" \
- -keystore "%s/tomcatCertificate" \
- -storepass "changeit" -keypass "changeit" \
- -storetype JKS ' % (TMPDIR),
- 'path' : '%s/bin' % (LOCAL_JAVA_HOME),
- 'expectedRC': 0
- }
- </call>
+ <sequence>
+ <!-- working arround sunwebserver migrate-jks-certs issue 6393534
+ by, making the alias be 'cn=sunwebserver' -->
+ <call function="'runCommand'">
+ { 'name' : 'Generate a Certificate',
+ 'location' : STAXServiceMachine,
+ 'command' : '%s/bin/keytool' % (LOCAL_JAVA_HOME),
+ 'arguments' : '-genkey -alias %s -keyalg rsa \
+ -dname "cn=%s,O=Sun Microsystems,C=US" \
+ -keystore "%s/%sCertificate" \
+ -storepass "changeit" -keypass "changeit" \
+ -storetype JKS ' % (WC_TYPE, WC_TYPE, TMPDIR, WC_TYPE),
+ 'path' : '%s/bin' % (LOCAL_JAVA_HOME),
+ 'expectedRC': 0
+ }
+ </call>
+ </sequence>
</if>
-
+ <!-- copying cert File over -->
+ <message>
+ 'copying %s/%sCertificate to %s/%sCertificate' % (TMPDIR,WC_TYPE,wcPath,WC_TYPE)
+ </message>
<call function="'copyFile'">
{ 'location' : STAXServiceMachine,
- 'srcfile' : '%s/tomcatCertificate' % (TMPDIR),
- 'destfile' : '%s/%s-%s/conf/tomcatCertificate' % (wcPath, WC_TYPE, WC_VERSION),
+ 'srcfile' : '%s/%sCertificate' % (TMPDIR, WC_TYPE),
+ 'destfile' : '%s/%sCertificate' % (wcPath, WC_TYPE),
'remotehost' : mylocation
}
</call>
- <!-- configure webcontainer's PORTs -->
- <message>
- 'Configure webcontainer ports HTTP %s / HTTPS %s' % (WC_PORT, WC_SSL_PORT)
- </message>
- <stafcmd name="'get tomcat configuration file'">
- <location>'%s' % mylocation</location>
- <service>'fs'</service>
- <request>' GET FILE %s/%s-%s/conf/server.xml ' % \
- (wcPath, WC_TYPE, WC_VERSION)</request>
- </stafcmd>
- <script>
- serverXmlInput=STAFResult
- import re
- portRegEx = re.compile('8080')
- sslPortRegEx = re.compile('8443')
- content=portRegEx.sub(WC_PORT, serverXmlInput)
- content=sslPortRegEx.sub(WC_SSL_PORT, content)
- sslConnectorRegEx = re.compile('<Service name="Catalina">')
- SSL_CONNECTOR = '<Service name="Catalina">\n \
- <Connector port="%s" protocole="HTTP/1.1" \
- SSLEnabled="true" maxThreads="150" scheme="https" secure="true" \
- clientAuth="false" sslProtocol="SSL" \
- keystoreFile="%s/%s-%s/conf/tomcatCertificate" \
- keystorePass="changeit" />' % \
- (WC_SSL_PORT, wcPath, WC_TYPE, WC_VERSION)
- content=sslConnectorRegEx.sub(SSL_CONNECTOR, content)
- serverXmlOutput=open('%s/%s-%s-%s_server.xml' % \
- (local.temp,STAF_REMOTE_HOSTNAME,WC_TYPE,WC_VERSION),'w')
- serverXmlOutput.write(content)
- serverXmlOutput.close()
- </script>
- <call function="'copyFile'">
- {'srcfile' : '%s/%s-%s-%s_server.xml' % (local.temp, STAF_REMOTE_HOSTNAME, WC_TYPE, WC_VERSION),
- 'destfile' : '%s/%s-%s/conf/server.xml' % (wcPath, WC_TYPE, WC_VERSION),
- 'remotehost' : '%s' % STAF_REMOTE_HOSTNAME
- }
- </call>
+
- <!-- configure webcontainer's SSL environement -->
- <message>
- 'Configure webcontainer SSL keystore '
- </message>
-
- <if expr="RC != 0">
- <return>RC</return>
+ <if expr="WC_TYPE == 'tomcat'">
+ <sequence>
+ <!-- chmod +x all the .sh file in tomcat bin directory -->
+ <stafcmd name="'make tomcat shell scripts executable'">
+ <location>'%s' % mylocation</location>
+ <service>'fs'</service>
+ <request>' LIST DIRECTORY %s/apache-%s-%s/bin EXT sh' % \
+ (wcPath, WC_TYPE, WC_VERSION)</request>
+ </stafcmd>
+ <script>
+ shFilesRC=RC
+ shFilesResult=" ".join(STAFResult)
+ </script>
+ <message>'shFilesResult=%s' % shFilesResult</message>
+ <process name="'chmod +x tomcat\'s shell scripts'">
+ <location>'%s' % mylocation</location>
+ <command mode="'shell'">'chmod +x %s' % shFilesResult</command>
+ <parms/>
+ <workdir>'%s/apache-%s-%s/bin' % (wcPath, WC_TYPE, WC_VERSION)</workdir>
+ <envs>['PATH=/bin:/usr/bin']</envs>
+ <stderr mode="'stdout'"/>
+ <stdout/>
+ <returnstdout/>
+ </process>
+
+ <!-- configure webcontainer's PORTs -->
+ <message>
+ 'Configure webcontainer ports HTTP %s / HTTPS %s' % (WC_PORT, WC_SSL_PORT)
+ </message>
+ <stafcmd name="'get tomcat configuration file'">
+ <location>'%s' % mylocation</location>
+ <service>'fs'</service>
+ <request>' GET FILE %s/apache-%s-%s/conf/server.xml ' % \
+ (wcPath, WC_TYPE, WC_VERSION)</request>
+ </stafcmd>
+ <script>
+ serverXmlInput=STAFResult
+ import re
+ # update the HTTP / HTTPS ports
+ portRegEx = re.compile('8080')
+ sslPortRegEx = re.compile('8443')
+ content=portRegEx.sub(WC_PORT, serverXmlInput)
+ content=sslPortRegEx.sub(WC_SSL_PORT, content)
+
+ # enable the SSL port
+ sslConnectorRegEx = re.compile('<Service name="Catalina">')
+ SSL_CONNECTOR = '<Service name="Catalina">\n \
+ <Connector port="%s" protocole="HTTP/1.1" \
+ SSLEnabled="true" maxThreads="150" scheme="https" secure="true" \
+ clientAuth="false" sslProtocol="SSL" \
+ keystoreFile="%s/%sCertificate" \
+ keyAlias="%s" \
+ keystorePass="changeit" />' % \
+ (WC_SSL_PORT, wcPath, WC_TYPE, WC_TYPE)
+ content=sslConnectorRegEx.sub(SSL_CONNECTOR, content)
+ serverXmlOutput=open('%s/%s-apache-%s-%s_server.xml' % \
+ (local.temp,STAF_REMOTE_HOSTNAME,WC_TYPE,WC_VERSION),'w')
+ serverXmlOutput.write(content)
+ serverXmlOutput.close()
+ </script>
+ <call function="'copyFile'">
+ {'srcfile' : '%s/%s-apache-%s-%s_server.xml' % (local.temp, STAF_REMOTE_HOSTNAME, WC_TYPE, WC_VERSION),
+ 'destfile' : '%s/apache-%s-%s/conf/server.xml' % (wcPath, WC_TYPE, WC_VERSION),
+ 'remotehost' : '%s' % STAF_REMOTE_HOSTNAME
+ }
+ </call>
+
+ <if expr="RC != 0">
+ <return>RC</return>
+ </if>
+ </sequence>
+ <elseif expr="WC_TYPE == 'glassfish'">
+ <sequence>
+ <!-- configure webcontainer's PORTs -->
+ <message>
+ 'Configure webcontainer ports HTTP %s / HTTPS %s' % (WC_PORT, WC_SSL_PORT)
+ </message>
+ <script>
+ # create a glassfish batch command file
+ asadminCmds = ["delete-jvm-options -Djavax.net.ssl.keyStore=${com.sun.aas.instanceRoot}/config/keystore.jks",
+ "create-jvm-options -Djavax.net.ssl.keyStore=%s/%sCertificate:-Djavax.net.ssl.keyStorePassword=changeit" % (wcPath,WC_TYPE),
+ "delete-http-listener http-listener-1",
+ "delete-http-listener http-listener-2",
+ "create-http-listener -e --enabled=true --listenerport %s --listeneraddress %s --defaultvs server httpListener" % (WC_PORT, STAF_REMOTE_HOSTNAME),
+ "create-http-listener -e --enabled=true --listenerport %s --listeneraddress %s --defaultvs server httpsListener" % (WC_SSL_PORT, STAF_REMOTE_HOSTNAME),
+ "create-ssl --type http-listener --certname %s httpsListener" % WC_TYPE
+ ]
+ asadminBatchFile = open(os.path.join(local.temp,'asadminWebContainerConfig'),'w')
+ # FIXME - had to resort to workarround that somce create-http-listener didn't work when in the batchfile
+ # batch only the delete-jvm-options / create-jvm-options, the rest is done one asadmin cmdline at a time
+ asadminBatchFile.write('\n'.join(asadminCmds[:2]))
+ asadminBatchFile.write('\n')
+ asadminBatchFile.flush()
+ asadminBatchFile.close()
+ </script>
+ <call function="'copyFile'">
+ {'srcfile' : '%s/asadminWebContainerConfig' % (local.temp),
+ 'destfile' : '%s/asadminWebContainerConfig' % (remote.temp),
+ 'remotehost' : '%s' % STAF_REMOTE_HOSTNAME
+ }
+ </call>
+ <if expr="RC != 0">
+ <return>RC</return>
+ </if>
+ <message>'Starting glassfish to enable administration'</message>
+ <script>
+ STAFCmd = None
+ STAFCmdEnv = None
+ if wcPath:
+ wcBinPath=os.path.join(wcPath, 'glassfishv3','bin')
+ STAFCmd='%s/asadmin' % wcBinPath
+ STAFCmdEnv=['PATH=%s/bin:/bin:/usr/bin' % JAVA_HOME, 'JAVA_HOME=%s' % JAVA_HOME]
+ </script>
+
+ <message>
+ '%s' % STAFCmd
+ </message>
+
+ <call function="'runCommand'">
+ { 'location' : STAF_REMOTE_HOSTNAME,
+ 'command' : STAFCmd,
+ 'envCmd' : STAFCmdEnv,
+ 'arguments' : 'start-domain',
+ 'name' : STAFCmd,
+ 'path' : wcBinPath
+ }
+ </call>
+ <message>'Configuring glassfish ports and certificate'</message>
+ <script>
+ if wcPath:
+ wcBinPath=os.path.join(wcPath, 'glassfishv3','bin')
+ STAFCmd='%s/asadmin' % wcBinPath
+ STAFCmdEnv=['PATH=%s/bin:/bin:/usr/bin' % JAVA_HOME, 'JAVA_HOME=%s' % JAVA_HOME]
+ STAFCmdArgs=' '.join(['multimode',
+ '--file',
+ '%s/asadminWebContainerConfig' % (remote.temp)])
+ </script>
+
+ <message>
+ '%s' % STAFCmd
+ </message>
+
+ <call function="'runCommand'">
+ { 'location' : STAF_REMOTE_HOSTNAME,
+ 'command' : STAFCmd,
+ 'arguments' : STAFCmdArgs,
+ 'envCmd' : STAFCmdEnv,
+ 'name' : STAFCmd,
+ 'path' : wcBinPath
+ }
+ </call>
+ <if expr="RC != 0">
+ <sequence>
+ <message>
+ 'failed configuring glassfish with STAXResult=[%s]' % STAXResult
+ </message>
+ <return>RC</return>
+ </sequence>
+ </if>
+ <iterate var="cfgItem" in="asadminCmds[2:]">
+ <sequence>
+ <message> 'configure with cfgItem=%s' % cfgItem </message>
+ <call function="'runCommand'">
+ { 'location' : location,
+ 'command' : STAFCmd,
+ 'arguments' : cfgItem,
+ 'envCmd' : STAFCmdEnv,
+ 'name' : STAFCmd,
+ 'path' : wcBinPath
+ }
+ </call>
+ <if expr="RC != 0">
+ <sequence>
+ <message>
+ 'failed configuring glassfish with STAXResult=[%s]' % STAXResult
+ </message>
+ <return>RC</return>
+ </sequence>
+ </if>
+ </sequence>
+ </iterate>
+ <message>'Stopping glassfish '</message>
+ <script>
+ if wcPath:
+ wcBinPath=os.path.join(wcPath, 'glassfishv3','bin')
+ STAFCmd='%s/asadmin' % wcBinPath
+ STAFCmdEnv=['PATH=%s/bin:/bin:/usr/bin' % JAVA_HOME,\
+ 'JAVA_HOME=%s' % JAVA_HOME]
+ </script>
+
+ <message>
+ '%s' % STAFCmd
+ </message>
+
+ <call function="'runCommand'">
+ { 'location' : location,
+ 'command' : STAFCmd,
+ 'arguments' : 'stop-domain',
+ 'envCmd' : STAFCmdEnv,
+ 'name' : STAFCmd,
+ 'path' : wcBinPath
+ }
+ </call>
+ </sequence>
+ </elseif>
+ <elseif expr="WC_TYPE == 'sunwebserver'">
+ <sequence>
+ <!-- generate a statefile -->
+ <call function="'GetVar'">
+ {
+ 'location' : STAF_REMOTE_HOSTNAME,
+ 'type' : 'system',
+ 'variable' : 'STAF/Env/USER'
+ }
+ </call>
+ <script>
+ wcUser = STAFResult
+ print 'sunwebserver as user : %s' % wcUser
+ STAFCmd = os.path.join(wcPath,'setup')
+ </script>
+ <call function="'runCommand'">
+ { 'location' : STAF_REMOTE_HOSTNAME,
+ 'name' : 'getting SunWebserver ID',
+ 'command' : STAFCmd,
+ 'arguments' : '--id',
+ 'path' : wcPath,
+ }
+ </call>
+ <script>
+ sunWebserverID = STAXResult[0][1]
+ stateFileList = [ '[STATE_BEGIN Sun Java System Web Server %s]' % sunWebserverID.strip(),
+ 'defaultInstallDirectory = /sun/webserver7',
+ 'currentInstallDirectory = %s/%s-%s' % (wcPath, WC_TYPE, WC_VERSION),
+ 'UPGRADE = false',
+ 'SELECTED_COMPONENTS = admincli,svrcore,devsupport',
+ 'USE_BUNDLED_JDK = true',
+ 'JDK_LOCATION = ',
+ 'IS_ADMIN_NODE = false',
+ 'STARTUP_ONBOOT = false',
+ 'CREATE_SERVICE = ',
+ 'ADMIN_HOST = %s' % STAF_REMOTE_HOSTNAME,
+ 'ADMIN_SSL_PORT = 8989', #FIXME need to define a new port
+ 'ADMIN_PORT = ',
+ 'ADMIN_UID = %s' % wcUser,
+ 'ADMIN_NAME = admin',
+ 'ADMIN_PASSWD = password',
+ 'NODE_HOST = ',
+ 'NODE_SSL_PORT = ',
+ 'REGISTER_NODE = ',
+ 'WEB_SERVERNAME = %s' % STAF_REMOTE_HOSTNAME,
+ 'WEB_PORT = %s' % WC_PORT,
+ 'WEB_UID = %s ' % wcUser,
+ 'WEB_DOCROOT = ',
+ 'SIXTYFOURBIT_INSTALL = false', # FIXME we could figure out this with a call to java -d 64
+ 'CONFIG_NAME = %s ' % STAF_REMOTE_HOSTNAME,
+ 'SKIP_INSTANCE_CREATION = ',
+ 'START_ADMIN = true',
+ '[STATE_DONE Sun Java System Web Server %s]' % sunWebserverID.strip(),
+ ]
+ print 'sunwebserver install statefile %s' % '\n'.join(stateFileList)
+ silentFilename = 'sunwebserver.statefile'
+ silentFd = open(os.path.join(TMPDIR,silentFilename),'w')
+ silentFd.write('\n'.join(stateFileList))
+ silentFd.flush()
+ silentFd.close()
+ silentFilePath = os.path.join(wcPath, silentFilename)
+ STAFCmdArgs = '--silent %s' % silentFilePath
+ </script>
+ <call function="'copyFile'">
+ { 'location' : STAXServiceMachine,
+ 'srcfile' : '%s' % os.path.join(TMPDIR,silentFilename),
+ 'destfile' : '%s' % silentFilePath,
+ 'remotehost' : STAF_REMOTE_HOSTNAME,
+ }
+ </call>
+ <call function="'runCommand'">
+ { 'location' : STAF_REMOTE_HOSTNAME,
+ 'name' : 'Setup SunWebserver silent mode',
+ 'command' : STAFCmd,
+ 'arguments' : STAFCmdArgs,
+ 'path' : wcPath,
+ }
+ </call>
+ <if expr="RC != 0">
+ <sequence>
+
+ <message>'Failed to setup the %s-%s, backing setup log' % (WC_TYPE, WC_VERSION)</message>
+ <script>
+ backupType='Setup'
+ srcDir = os.path.join(wcPath, '%s-%s' % (WC_TYPE, WC_VERSION), 'setup')
+ destDir = os.path.join(local.temp,'%s%sBackup' % (WC_TYPE, backupType))
+ </script>
+ <call function="'runSTAFCommand'">
+ { 'name' : 'backup webapps WEB-INF files',
+ 'location' : STAF_REMOTE_HOSTNAME,
+ 'service' : 'FS',
+ 'request' : 'COPY ',
+ 'arguments' : 'DIRECTORY %s TODIRECTORY %s TOMACHINE %s RECURSE' % (srcDir, destDir, STAXServiceMachine)
+ }
+ </call>
+
+ <if expr="RC != 0">
+ <sequence>
+ <message>'Failed to backup %s-%s setup log file' % (WC_TYPE, WC_VERSION)</message>
+ <return>0</return>
+ </sequence>
+ </if>
+
+ </sequence>
+ </if>
+ <!-- create a wadm passwordfile -->
+ <script>
+ wadmPwdFilename = os.path.join(TMPDIR,'wadmPwd')
+ wadmPwdFile = open(wadmPwdFilename,'w')
+ wadmPwdFile.write('wadm_password=password\n')
+ wadmPwdFile.flush()
+ wadmPwdFile.close()
+ wadmDestPwdFilename = os.path.join(wcPath,'wadmPwd')
+ </script>
+ <call function="'copyFile'">
+ { 'location' : STAXServiceMachine,
+ 'srcfile' : '%s' % wadmPwdFilename,
+ 'destfile' : '%s' % wadmDestPwdFilename,
+ 'remotehost' : location}
+ </call>
+
+ <!-- migrate the JKS keystore -->
+ <script>
+ STAFCmd = os.path.join(wcPath,'%s-%s' % (WC_TYPE, WC_VERSION), 'bin', 'wadm')
+ STAFCmdArgs = ' '.join(['migrate-jks-keycert',
+ '--user=admin', '--password-file=%s' % wadmDestPwdFilename,
+ '--host=%s' % STAF_REMOTE_HOSTNAME,
+ '--config=%s' % STAF_REMOTE_HOSTNAME,
+ '--keystore=%s/%sCertificate' % (wcPath,WC_TYPE),
+ '--key-password=changeit', '--keystore-password=changeit'])
+ </script>
+ <call function="'runCommand'">
+ { 'location' : STAF_REMOTE_HOSTNAME,
+ 'name' : 'Migrate the keystore',
+ 'command' : STAFCmd,
+ 'arguments' : STAFCmdArgs,
+ 'path' : wcPath,
+ }
+ </call>
+ <script>
+ STAFCmdArgs = ' '.join(['list-certs',
+ '--user=admin', '--password-file=%s' % wadmDestPwdFilename,
+ '--host=%s' % STAF_REMOTE_HOSTNAME,
+ '--config=%s' % STAF_REMOTE_HOSTNAME])
+ </script>
+ <call function="'runCommand'">
+ { 'location' : STAF_REMOTE_HOSTNAME,
+ 'name' : 'Migrate the keystore',
+ 'command' : STAFCmd,
+ 'arguments' : STAFCmdArgs,
+ 'path' : wcPath,
+ }
+ </call>
+ <!-- create SSL listener -->
+ <script>
+ STAFCmdArgs = ' '.join(['create-http-listener', '--user=admin',
+ '--password-file=%s' % wadmDestPwdFilename,
+ '--host=%s' % STAF_REMOTE_HOSTNAME,
+ '--config=%s' % STAF_REMOTE_HOSTNAME,
+ '--server-name=%s-%s' % (WC_TYPE,WC_VERSION),
+ '--description=SSL-listener',
+ '--listener-port=%s' % WC_SSL_PORT,
+ '--default-virtual-server-name=%s' % STAF_REMOTE_HOSTNAME,
+ 'ssl-listener-1'])
+ </script>
+ <call function="'runCommand'">
+ { 'location' : STAF_REMOTE_HOSTNAME,
+ 'name' : 'Create SSL dedicated http-listener',
+ 'command' : STAFCmd,
+ 'arguments' : STAFCmdArgs,
+ 'path' : wcPath,
+ }
+ </call>
+
+ <script>
+ # there's a known issue with the keystore migration from JKS see : 6393534
+ # hence cert alias like following don't work : "CN=sunwebserver,O=Sun Microsystems,C=US"
+ # yielding 3 aliases in the server.xml as :
+ # CN=sunwebserver
+ # O=Sun Microsystems
+ # C=US
+ # apparently from the cmdline this works :
+ # bin/wadm set-ssl-prop --user=admin server-cert-nickname="CN=sunwebserver\,O=Sun Microsystems\,C=US"
+ #certNickName="cn=%s" % (WC_TYPE)
+ certNickName=r'"cn=%s\,O=Sun Microsystems\,C=US"' % (WC_TYPE)
+ print 'certNickName used in set-ssl-prop cmdline = [%s]' % certNickName
+ STAFCmdArgs = ' '.join(['set-ssl-prop',
+ '--user=admin', '--password-file=%s' % wadmDestPwdFilename,
+ '--host=%s' % STAF_REMOTE_HOSTNAME,
+ '--config=%s' % STAF_REMOTE_HOSTNAME,
+ '--http-listener=ssl-listener-1',
+ 'enabled=true',
+ 'tls=true',
+ 'client-auth-timeout=60',
+ 'client-auth=false',
+ 'enabled=true',
+ 'ssl2=true',
+ 'max-client-auth-data=1048576',
+ 'tls-rollback-detection=true',
+ 'ssl3=true'
+ ])
+ STAFCmdArgs = r'%s server-cert-nickname=%s' % (STAFCmdArgs, certNickName)
+ </script>
+ <call function="'runCommand'">
+ { 'location' : STAF_REMOTE_HOSTNAME,
+ 'name' : 'set the SSL handling for the SSL dedicated http-listener',
+ 'command' : STAFCmd,
+ 'arguments' : STAFCmdArgs,
+ 'path' : wcPath,
+ }
+ </call>
+ <!-- deploy Config -->
+ <script>
+ STAFCmd = os.path.join(wcPath,'%s-%s' % (WC_TYPE, WC_VERSION), 'bin', 'wadm')
+ STAFCmdArgs = ' '.join(['deploy-config',
+ '--user=admin', '--password-file=%s' % wadmDestPwdFilename,
+ '--host=%s' % STAF_REMOTE_HOSTNAME,
+ '--no-prompt',
+ '--restart',
+ STAF_REMOTE_HOSTNAME])
+ </script>
+ <call function="'runCommand'">
+ { 'location' : STAF_REMOTE_HOSTNAME,
+ 'name' : 'deploy config',
+ 'command' : STAFCmd,
+ 'arguments' : STAFCmdArgs,
+ 'path' : wcPath,
+ }
+ </call>
+
+ <!-- backup the config -->
+ <message>'backing up the webcontainer config'</message>
+ <script>
+ backupType='Config'
+ if WC_TYPE == 'tomcat':
+ srcDir = os.path.join(WC_DIRECTORY, 'apache-%s-%s' % (WC_TYPE, WC_VERSION), 'conf')
+ elif WC_TYPE == 'glassfish':
+ srcDir = os.path.join(WC_DIRECTORY, 'glassfishv3', 'glassfish', 'domains', 'domain1', 'config')
+ elif WC_TYPE == 'sunwebserver':
+ srcDir = os.path.join(wcPath, '%s-%s' % (WC_TYPE, WC_VERSION), 'https-%s' % STAF_REMOTE_HOSTNAME, 'config')
+ destDir = os.path.join(local.temp,'%s%sBackup' % (WC_TYPE, backupType))
+ </script>
+ <call function="'runSTAFCommand'">
+ { 'name' : 'backup webcontainers log files',
+ 'location' : STAF_REMOTE_HOSTNAME,
+ 'service' : 'FS',
+ 'request' : 'COPY ',
+ 'arguments' : 'DIRECTORY %s TODIRECTORY %s TOMACHINE %s RECURSE' % (srcDir, destDir, STAXServiceMachine)
+ }
+ </call>
+
+ <if expr="RC != 0">
+ <sequence>
+ <message>'Failed to backup webcontainer log file'</message>
+ <return>0</return>
+ </sequence>
+ </if>
+
+ </sequence>
+ </elseif>
</if>
-
</sequence>
<catch exception="'TestExceptionResultFailed'" typevar="eType" var="eInfo">
@@ -234,16 +639,29 @@
<sequence>
<message>
- 'setup: deploy web application %s to %s/%s-%s/webapps/%s' % (warFilePath, wcPath, WC_TYPE, WC_VERSION, destWarFileName)
+ 'setup: deploy web application %s to auto deploy webapp directory' % (warFilePath)
</message>
+ <script>
+ # create the autodeploy webapp path
+ destWarFilePath = None
+ if WC_TYPE == 'tomcat':
+ destWarFilePath = os.path.join(wcPath, 'apache-%s-%s' % (WC_TYPE, WC_VERSION), 'webapps', destWarFileName)
+ elif WC_TYPE == 'glassfish':
+ destWarFilePath = os.path.join(wcPath, 'glassfishv3', 'glassfish',
+ 'domains', 'domain1', 'autodeploy', destWarFileName)
+ elif WC_TYPE == 'sunwebserver':
+ destWarFilePath = os.path.join(wcPath, '%s-%s' % (WC_TYPE, WC_VERSION), 'https-%s' % STAF_REMOTE_HOSTNAME, 'auto-deploy', destWarFileName)
+ </script>
+ <message>
+ 'autodeploy directory %s' % destWarFilePath
+ </message>
<call function="'copyFile'">
{ 'location' : STAXServiceMachine,
'srcfile' : '%s' % warFilePath,
- 'destfile' : '%s/%s-%s/webapps/%s' % (wcPath, WC_TYPE, WC_VERSION, destWarFileName),
+ 'destfile' : '%s' % destWarFilePath,
'remotehost' : location}
</call>
-
</sequence>
</function>
@@ -271,13 +689,29 @@
<!-- Build the Command -->
<script>
- if wcPath:
- wcBinPath='%s/bin' % wcPath
- STAFCmd='%s/shutdown%s' % (wcBinPath, scriptExt)
- STAFCmdEnv=['CATALINA_HOME=%s' % wcPath,'PATH=/bin:/usr/bin',\
- 'JAVA_HOME=%s' % JAVA_HOME]
+ if wcPath:
+ if WC_TYPE == 'tomcat':
+ CATALINA_HOME=os.path.join(wcPath, 'apache-%s-%s' % (WC_TYPE, WC_VERSION) )
+ wcBinPath = os.path.join('%s' % CATALINA_HOME, 'bin')
+ STAFCmd='%s/shutdown%s' % (wcBinPath, scriptExt)
+ STAFCmdEnv=['CATALINA_HOME=%s' % CATALINA_HOME,
+ 'PATH=%s/bin:/bin:/usr/bin' % JAVA_HOME,\
+ 'JAVA_HOME=%s' % JAVA_HOME]
+ STAFCmdArgs=""
+ elif WC_TYPE == 'glassfish':
+ wcBinPath = os.path.join(wcPath, 'glassfishv3', 'bin')
+ STAFCmd='%s/asadmin' % wcBinPath
+ STAFCmdEnv=['PATH=%s/bin:/bin:/usr/bin' % JAVA_HOME ,\
+ 'JAVA_HOME=%s' % JAVA_HOME]
+ STAFCmdArgs="stop-domain"
+ elif WC_TYPE == 'sunwebserver':
+ wcBinPath = os.path.join(wcPath, '%s-%s' % (WC_TYPE, WC_VERSION), 'https-%s' % STAF_REMOTE_HOSTNAME, 'bin')
+ STAFCmd = os.path.join(wcBinPath,'stopserv')
+ STAFCmdEnv=['PATH=%s/bin:/bin:/usr/bin' % JAVA_HOME ,\
+ 'JAVA_HOME=%s' % JAVA_HOME]
+ STAFCmdArgs = ""
</script>
-
+
<message>
'%s' % STAFCmd
</message>
@@ -285,12 +719,71 @@
<call function="'runCommand'">
{ 'location' : location,
'command' : STAFCmd,
+ 'arguments' : STAFCmdArgs,
'envCmd' : STAFCmdEnv,
'name' : STAFCmd,
'path' : wcBinPath
}
</call>
+ <!-- backup the web.xml -->
+ <message>'backing up the web.xml'</message>
+ <script>
+ backupType='WebappConfig'
+ if WC_TYPE == 'tomcat':
+ srcDir = os.path.join(WC_DIRECTORY, 'apache-%s-%s' % (WC_TYPE, WC_VERSION), 'webapps', 'dsml', 'WEB-INF')
+ elif WC_TYPE == 'glassfish':
+ srcDir = os.path.join(WC_DIRECTORY, 'glassfishv3', 'glassfish', 'domains',
+ 'domain1', 'applications', 'dsml', 'WEB-INF')
+ elif WC_TYPE == 'sunwebserver':
+ srcDir = os.path.join(WC_DIRECTORY, '%s-%s' % (WC_TYPE, WC_VERSION), 'https-%s' % STAF_REMOTE_HOSTNAME,
+ 'generated', STAF_REMOTE_HOSTNAME, 'dsml', 'WEB-INF')
+ destDir = os.path.join(local.temp,'%s%sBackup' % (WC_TYPE, backupType))
+ </script>
+ <call function="'runSTAFCommand'">
+ { 'name' : 'backup webapps WEB-INF files',
+ 'location' : STAF_REMOTE_HOSTNAME,
+ 'service' : 'FS',
+ 'request' : 'COPY ',
+ 'arguments' : 'DIRECTORY %s TODIRECTORY %s TOMACHINE %s RECURSE' % (srcDir, destDir, STAXServiceMachine)
+ }
+ </call>
+
+ <if expr="RC != 0">
+ <sequence>
+ <message>'Failed to backup webcontainer log file'</message>
+ <return>0</return>
+ </sequence>
+ </if>
+
+ <!-- backup the logs -->
+ <message>'backing up the webcontainer logs'</message>
+ <script>
+ backupType='Logs'
+ if WC_TYPE == 'tomcat':
+ srcDir = os.path.join(WC_DIRECTORY, 'apache-%s-%s' % (WC_TYPE, WC_VERSION), 'logs')
+ elif WC_TYPE == 'glassfish':
+ srcDir = os.path.join(WC_DIRECTORY, 'glassfishv3', 'glassfish', 'domains', 'domain1', 'logs')
+ elif WC_TYPE == 'sunwebserver':
+ srcDir = os.path.join(wcPath, '%s-%s' % (WC_TYPE, WC_VERSION), 'https-%s' % STAF_REMOTE_HOSTNAME, 'logs')
+ destDir = os.path.join(local.temp,'%s%sBackup' % (WC_TYPE, backupType))
+ </script>
+ <call function="'runSTAFCommand'">
+ { 'name' : 'backup webcontainers log files',
+ 'location' : STAF_REMOTE_HOSTNAME,
+ 'service' : 'FS',
+ 'request' : 'COPY ',
+ 'arguments' : 'DIRECTORY %s TODIRECTORY %s TOMACHINE %s RECURSE' % (srcDir, destDir, STAXServiceMachine)
+ }
+ </call>
+
+ <if expr="RC != 0">
+ <sequence>
+ <message>'Failed to backup webcontainer log file'</message>
+ <return>0</return>
+ </sequence>
+ </if>
+
</sequence>
</function>
@@ -306,7 +799,7 @@
</function-arg-description>
<function-arg-property name="type" value="hostname"/>
</function-arg-def>
- <function-arg-def name="wcPath" type="optional" default="'%s/%s-%s' % (WC_DIRECTORY, WC_TYPE, WC_VERSION)">
+ <function-arg-def name="wcPath" type="optional" default="'%s' % WC_DIRECTORY">
<function-arg-description>
Pathname to installation root
</function-arg-description>
@@ -318,11 +811,27 @@
<!-- Build the Command -->
<script>
- if wcPath:
- wcBinPath='%s/bin' % wcPath
- STAFCmd='%s/startup%s' % (wcBinPath, scriptExt)
- STAFCmdEnv=['CATALINA_HOME=%s' % wcPath,'PATH=/bin:/usr/bin', \
- 'JAVA_HOME=%s' % JAVA_HOME]
+ if wcPath:
+ if WC_TYPE == 'tomcat':
+ CATALINA_HOME=os.path.join(wcPath, 'apache-%s-%s' % (WC_TYPE, WC_VERSION) )
+ wcBinPath = os.path.join('%s' % CATALINA_HOME, 'bin')
+ STAFCmd='%s/startup%s' % (wcBinPath, scriptExt)
+ STAFCmdEnv=['CATALINA_HOME=%s' % CATALINA_HOME,
+ 'PATH=%s/bin:/bin:/usr/bin' % JAVA_HOME,\
+ 'JAVA_HOME=%s' % JAVA_HOME]
+ STAFCmdArgs = ''
+ elif WC_TYPE == 'glassfish':
+ wcBinPath = os.path.join(wcPath, 'glassfishv3', 'bin')
+ STAFCmd='%s/asadmin' % wcBinPath
+ STAFCmdEnv=['PATH=%s/bin:/bin:/usr/bin' % JAVA_HOME ,\
+ 'JAVA_HOME=%s' % JAVA_HOME]
+ STAFCmdArgs = 'start-domain'
+ elif WC_TYPE == 'sunwebserver':
+ wcBinPath = os.path.join(wcPath, '%s-%s' % (WC_TYPE,WC_VERSION), 'https-%s' % STAF_REMOTE_HOSTNAME, 'bin')
+ STAFCmd = os.path.join(wcBinPath,'startserv')
+ STAFCmdEnv=['PATH=%s/bin:/bin:/usr/bin' % JAVA_HOME ,\
+ 'JAVA_HOME=%s' % JAVA_HOME]
+ STAFCmdArgs = ""
</script>
<message>
@@ -340,6 +849,7 @@
<call function="'runCommand'">
{ 'location' : location,
'command' : STAFCmd,
+ 'arguments' : STAFCmdArgs,
'envCmd' : STAFCmdEnv,
'name' : STAFCmd,
'path' : wcBinPath,
@@ -379,10 +889,43 @@
<message>
'Remove webcontainer from %s %s.' % (location,wcPath)
</message>
- <call function="'deleteFolder'">
- { 'location' : location,
- 'foldername' : '%s/%s-%s' % (wcPath, WC_TYPE, WC_VERSION) }
- </call>
+ <if expr="WC_TYPE == 'tomcat'">
+ <call function="'deleteFolder'">
+ { 'location' : location,
+ 'foldername' : os.path.join(wcPath,'apache-%s-%s' % (WC_TYPE, WC_VERSION)) }
+ </call>
+ <elseif expr="WC_TYPE == 'glassfish'">
+ <call function="'deleteFolder'">
+ { 'location' : location,
+ 'foldername' : os.path.join(wcPath, 'glassfishv3') }
+ </call>
+ </elseif>
+ <elseif expr="WC_TYPE == 'sunwebserver'">
+<sequence>
+<script>
+ wcBinPath = os.path.join(wcPath, '%s-%s' % (WC_TYPE, WC_VERSION), 'bin')
+ STAFCmd = os.path.join(wcBinPath,'uninstall')
+ STAFCmdArgs = '--silent'
+ STAFCmdEnv=['PATH=%s/bin:/bin:/usr/bin' % JAVA_HOME, 'JAVA_HOME=%s' % JAVA_HOME]
+</script>
+ <call function="'runCommand'">
+ { 'location' : location,
+ 'command' : STAFCmd,
+ 'arguments' : STAFCmdArgs,
+ 'envCmd' : STAFCmdEnv,
+ 'name' : STAFCmd,
+ 'path' : wcBinPath,
+ 'expectedRC' : 0
+ }
+ </call>
+
+ <call function="'deleteFolder'">
+ { 'location' : location,
+ 'foldername' : '%s/%s-%s' % (wcPath, WC_TYPE, WC_VERSION) }
+ </call>
+</sequence>
+ </elseif>
+ </if>
<if expr="RC != 0">
<return>RC</return>
@@ -396,10 +939,24 @@
<message>
'Remove temporary webcontainer zip archive from %s %s' % (location,wcPath)
</message>
- <call function="'deleteFolder'">
- { 'location' : location ,
- 'foldername' : '%s/%s-%s' % (wcPath, WC_TYPE, WC_VERSION) }
- </call>
+ <if expr="WC_TYPE == 'tomcat'">
+ <call function="'deleteFolder'">
+ { 'location' : location,
+ 'foldername' : os.path.join(wcPath,'apache-%s-%s' % (WC_TYPE, WC_VERSION)) }
+ </call>
+ <elseif expr="WC_TYPE == 'glassfish'">
+ <call function="'deleteFolder'">
+ { 'location' : location,
+ 'foldername' : os.path.join(wcPath, 'glassfishv3') }
+ </call>
+ </elseif>
+ <elseif expr="WC_TYPE == 'sunwebserver'">
+ <call function="'deleteFolder'">
+ { 'location' : location,
+ 'foldername' : '%s/%s-%s' % (wcPath, WC_TYPE, WC_VERSION) }
+ </call>
+ </elseif>
+ </if>
</sequence>
</catch>
diff --git a/opends/tests/staf-tests/shared/staf/staf-controller.cfg b/opends/tests/staf-tests/shared/staf/staf-controller.cfg
index 147d1d0..0f5b9f0 100644
--- a/opends/tests/staf-tests/shared/staf/staf-controller.cfg
+++ b/opends/tests/staf-tests/shared/staf/staf-controller.cfg
@@ -77,5 +77,5 @@
OPTION JVMNAME=httpJVM-${local.hostname} \
OPTION J2=-Xms32m -Xmx128m \
-Djavax.net.ssl.trustStorePassword=changeit \
- -Djavax.net.ssl.trustStore=${temp.dir}/tomcatCertificate \
+ -Djavax.net.ssl.trustStore=${temp.dir}/${wc.type}Certificate \
OPTION JVM=${local.javahome}/bin/java
diff --git a/opends/tests/staf-tests/shared/tests/config.py.stubs b/opends/tests/staf-tests/shared/tests/config.py.stubs
index c9b5e5a..5be8103 100644
--- a/opends/tests/staf-tests/shared/tests/config.py.stubs
+++ b/opends/tests/staf-tests/shared/tests/config.py.stubs
@@ -62,10 +62,10 @@
SEND_MAIL_AFTER_TEST_RUN = '${email.enabled}'
SEND_MAIL_TO = '${email.to}'
SEND_MAIL_SUBJECT = '${email.subject}'
-WC_TYPE = 'apache-tomcat'
-WC_VERSION = '${tomcat.version}'
+WC_TYPE = '${wc.type}'
+WC_VERSION = '${wc.version}'
WC_ZIPPATH = '${archives.dir}'
-WC_ZIPNAME = '${tomcat.archive}'
+WC_ZIPNAME = '${wc.archive}'
WC_DIRECTORY = '${tests.tmp.dir}'
WC_PORT = '9000'
WC_SSL_PORT = '9001'
diff --git a/opends/tests/staf-tests/shared/tests/runTestJob.xml b/opends/tests/staf-tests/shared/tests/runTestJob.xml
index f194e16..09b20bf 100644
--- a/opends/tests/staf-tests/shared/tests/runTestJob.xml
+++ b/opends/tests/staf-tests/shared/tests/runTestJob.xml
@@ -222,7 +222,7 @@
<script>
DSMLName='%s' % DSML_WARNAME
DSMLPackage='%s' % DSML_WARPATH
- DSMLContainer='%s %s' % (WC_TYPE,WC_VERSION)
+ DSMLContainer=WC_TYPE
</script>
<!-- Get the location of where the test logs are -->
--
Gitblit v1.10.0