<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<!DOCTYPE stax SYSTEM "../../../shared/stax.dtd">
|
<!--
|
! CDDL HEADER START
|
!
|
! The contents of this file are subject to the terms of the
|
! Common Development and Distribution License, Version 1.0 only
|
! (the "License"). You may not use this file except in compliance
|
! with the License.
|
!
|
! You can obtain a copy of the license at
|
! trunk/opends/resource/legal-notices/OpenDS.LICENSE
|
! or https://OpenDS.dev.java.net/OpenDS.LICENSE.
|
! See the License for the specific language governing permissions
|
! and limitations under the License.
|
!
|
! When distributing Covered Code, include this CDDL HEADER in each
|
! file and include the License file at
|
! trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
|
! add the following below this CDDL HEADER, with the fields enclosed
|
! by brackets "[]" replaced with your own identifying information:
|
! Portions Copyright [yyyy] [name of copyright owner]
|
!
|
! CDDL HEADER END
|
!
|
! Portions Copyright 2008 Sun Microsystems, Inc.
|
! -->
|
<stax>
|
<defaultcall function="dsml_setup" />
|
<function name="dsml_setup">
|
<block name="'setup'">
|
<sequence>
|
<!--- Test Suite information
|
#@TestSuiteName setup
|
#@TestSuitePurpose setup for the dsml test suite.
|
#@TestSuiteGroup dsml setup
|
#@TestScript dsml_setup.xml
|
-->
|
<script>
|
if not CurrentTestPath.has_key('group'):
|
CurrentTestPath['group'] = 'dsml'
|
CurrentTestPath['suite'] = STAXCurrentBlock
|
</script>
|
<call function="'testSuite_Preamble'"/>
|
<parallel>
|
<sequence>
|
<!--- Test Case information
|
#@TestMarker setup
|
#@TestName setup: create DSML directory server
|
#@TestIssue none
|
#@TestPurpose Create the directory server necessary to the
|
test suite.
|
#@TestPreamble none
|
#@TestStep Create Directory server as defined in config.py.
|
#@TestPostamble none
|
#@TestResult Success if returns 0.
|
-->
|
<testcase name="getTestCaseName('prepare DSML Directory backend')">
|
<sequence>
|
<call function="'testCase_Preamble'"/>
|
<!-- Create the DS instance necessary to the test group/suite -->
|
<message>
|
'prepare instance DS as described in config.py '
|
</message>
|
<call function="'prepareInstanceCreation'">
|
{ 'groupDataDir' : 'dsml',
|
'fileExtensions' : ['dat','res'] }
|
</call>
|
<call function="'checktestRC'">
|
{
|
'returncode' : RC ,
|
'result' : STAXResult
|
}
|
</call>
|
|
<call function="'testCase_Postamble'"/>
|
</sequence>
|
</testcase>
|
|
<!--- Test Case information
|
#@TestMarker setup
|
#@TestName setup: create DSML directory server
|
#@TestIssue none
|
#@TestPurpose Create the directory server necessary to the
|
test suite.
|
#@TestPreamble none
|
#@TestStep Create Directory server as defined in config.py.
|
#@TestPostamble none
|
#@TestResult Success if returns 0.
|
-->
|
<testcase name="getTestCaseName('Create, Initialize and Start DSML Directory backend')">
|
<sequence>
|
<call function="'testCase_Preamble'"/>
|
<message>
|
'Create DS as described in config.py '
|
</message>
|
<call function="'createInstance'"/>
|
<call function="'checktestRC'">
|
{
|
'returncode' : RC ,
|
'result' : STAXResult
|
}
|
</call>
|
|
<message>
|
'Start DS instance'
|
</message>
|
<call function="'StartDsWithScript'">
|
{ 'location' : STAF_REMOTE_HOSTNAME }
|
</call>
|
<call function="'checktestRC'">
|
{
|
'returncode' : RC ,
|
'result' : STAXResult
|
}
|
</call>
|
|
<call function="'isAlive'">
|
{ 'noOfLoops' : 5 ,
|
'noOfMilliSeconds' : 2000 }
|
</call>
|
<call function="'checkRC'">
|
{ 'returncode' : RC ,
|
'result' : STAXResult }
|
</call>
|
<call function="'testCase_Postamble'"/>
|
</sequence>
|
</testcase>
|
|
<!--- Test Case information
|
#@TestMarker setup
|
#@TestName setup: import DSML directory server test data
|
#@TestIssue none
|
#@TestPurpose Import the directory server test data.
|
#@TestPreamble none
|
#@TestStep Import Directory server as defined in config.py.
|
#@TestPostamble none
|
#@TestResult Success if returns 0.
|
-->
|
<testcase name="getTestCaseName('Import DSML test data in Directory backend')">
|
<sequence>
|
<call function="'testCase_Preamble'"/>
|
<message>
|
'Import DSML test data'
|
</message>
|
<script>
|
dsmlBaseDNs = {
|
'o=dsmlfe.com' : ('dsmlfe.ldif', 'dsmlfe_BE'),
|
'dc=example,dc=com' : ('oasis.ldif', 'oasis_BE'),
|
'o=IMC, c=US' : ('search.ldif', 'example_BE')
|
}
|
</script>
|
<iterate var="baseDN" in="dsmlBaseDNs.keys()">
|
<sequence>
|
<message>
|
'Import DSML test data [%s | %s | %s/%s/db/%s | %s/%s/import-tmp]' %\
|
(baseDN,\
|
dsmlBaseDNs.get(baseDN)[1],\
|
DIRECTORY_INSTANCE_DIR, OPENDSNAME, dsmlBaseDNs.get(baseDN)[1],\
|
DIRECTORY_INSTANCE_DIR, OPENDSNAME)
|
</message>
|
<script>
|
ldapDB='%s/%s/db/%s' % \
|
(DIRECTORY_INSTANCE_DIR,\
|
OPENDSNAME, \
|
dsmlBaseDNs.get(baseDN)[1])
|
importTempDir='%s/%s/import-tmp/%s' % \
|
(DIRECTORY_INSTANCE_DIR, \
|
OPENDSNAME, \
|
dsmlBaseDNs.get(baseDN)[1])
|
</script>
|
<stafcmd name="'create import temp directory'">
|
<location>'%s' % location</location>
|
<service>'fs'</service>
|
<request>' CREATE DIRECTORY %s' % (importTempDir)</request>
|
</stafcmd>
|
<call function="'checkRC'">
|
{ 'returncode' : RC ,
|
'result' : STAXResult }
|
</call>
|
<stafcmd name="'create database directory'">
|
<location>'%s' % location</location>
|
<service>'fs'</service>
|
<request>' CREATE DIRECTORY %s' % (ldapDB)</request>
|
</stafcmd>
|
<call function="'checkRC'">
|
{ 'returncode' : RC ,
|
'result' : STAXResult }
|
</call>
|
<call function="'CreateBackendWithScript'">
|
{
|
'dsBaseDN' : '%s' % baseDN,
|
'dsBackendID' : '%s' % dsmlBaseDNs.get(baseDN)[1],
|
'dsLdapDB' : '%s' % ldapDB,
|
'dsImportTempDir' : '%s' % importTempDir,
|
'dsInstancePort' : '%s' % DIRECTORY_INSTANCE_PORT,
|
'dsInstanceDn' : '%s' % DIRECTORY_INSTANCE_DN,
|
'dsInstancePswd' : '%s' % DIRECTORY_INSTANCE_PSWD
|
}
|
</call>
|
<call function="'checkRC'">
|
{ 'returncode' : RC ,
|
'result' : STAXResult }
|
</call>
|
<call function="'importLdifTask'">
|
{ 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
|
'dsInstancePort' : DIRECTORY_INSTANCE_PORT,
|
'dsInstanceDn' : DIRECTORY_INSTANCE_DN,
|
'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
|
'taskID' : 'import_%s' % dsmlBaseDNs.get(baseDN)[1],
|
'ldifFile' : '%s/dsml/ldif-files/%s' % (logsRemoteDataDir,dsmlBaseDNs.get(baseDN)[0]),
|
'backEnd' : '%s' % dsmlBaseDNs.get(baseDN)[1]
|
}
|
</call>
|
<call function="'checkRC'">
|
{ 'returncode' : RC ,
|
'result' : STAXResult }
|
</call>
|
</sequence>
|
</iterate>
|
<call function="'checktestRC'">
|
{
|
'returncode' : RC ,
|
'result' : STAXResult
|
}
|
</call>
|
<call function="'testCase_Postamble'"/>
|
</sequence>
|
</testcase>
|
</sequence>
|
<sequence>
|
|
<!--- Test Case information
|
#@TestMarker setup
|
#@TestName setup: create webcontainer
|
#@TestIssue none
|
#@TestPurpose Create the webcontainer necessary to the
|
test suite.
|
#@TestPreamble none
|
#@TestStep Create webcontainer as described in config.py.
|
#@TestPostamble none
|
#@TestResult Success if createWebcontainer returns 0.
|
-->
|
<testcase name="getTestCaseName('setup: create webcontainer')">
|
<sequence>
|
<call function="'testCase_Preamble'"/>
|
<message>
|
'setup: create webcontainer as described in config.py'
|
</message>
|
<call function="'createWebcontainer'" />
|
<call function="'checktestRC'">
|
{
|
'returncode' : RC ,
|
'result' : STAXResult
|
}
|
</call>
|
<call function="'testCase_Postamble'"/>
|
</sequence>
|
</testcase>
|
|
<!--- Test Case information
|
#@TestMarker setup
|
#@TestName setup: deploy web application WAR file
|
#@TestIssue none
|
#@TestPurpose Deploy web application necessary to the
|
test suite.
|
#@TestPreamble none
|
#@TestStep Deploy web application as described in config.py.
|
#@TestPostamble none
|
#@TestResult Success if deployWebApplicationWAR returns 0.
|
-->
|
<testcase name="getTestCaseName('setup: deploy Webapplication %s' % DSML_WARPATH)">
|
<sequence>
|
<call function="'testCase_Preamble'"/>
|
<message>
|
'setup: deploy DSML gateway webapp as described in config.py'
|
</message>
|
<call function="'deployWebApplicationWAR'">
|
{ 'location' : STAF_REMOTE_HOSTNAME ,
|
'warFilePath' : '%s' % DSML_WARPATH,
|
'destWarFileName' : 'dsml.war'}
|
</call>
|
<call function="'checktestRC'">
|
{
|
'returncode' : RC ,
|
'result' : STAXResult
|
}
|
</call>
|
<call function="'testCase_Postamble'"/>
|
</sequence>
|
</testcase>
|
|
<!--- Test Case information
|
#@TestMarker setup
|
#@TestName setup: start web webcontainer
|
#@TestIssue none
|
#@TestPurpose Start the webcontainer necessary to the
|
test suite.
|
#@TestPreamble none
|
#@TestStep start webcontainer as described in config.py.
|
#@TestPostamble none
|
#@TestResult Success if statWebcontainerWithScript returns 0.
|
-->
|
<testcase name="getTestCaseName('setup: start webcontainer')">
|
<sequence>
|
<call function="'testCase_Preamble'"/>
|
<message>
|
'setup: start webcontainer as described in config.py'
|
</message>
|
<call function="'startWebcontainerWithScript'">
|
{ 'location' : STAF_REMOTE_HOSTNAME ,
|
'wcPath' : '%s/%s-%s' % (WC_DIRECTORY,WC_TYPE,WC_VERSION) }
|
</call>
|
<call function="'checktestRC'">
|
{
|
'returncode' : RC ,
|
'result' : STAXResult
|
}
|
</call>
|
<stafcmd name="'waiting for webcontainer startup'">
|
<location>'%s' % location</location>
|
<service>'delay'</service>
|
<request>' DELAY 10000'</request>
|
</stafcmd>
|
<call function="'testCase_Postamble'"/>
|
</sequence>
|
</testcase>
|
|
<testcase name="getTestCaseName('configure: dsml web.xml port')">
|
<sequence>
|
<call function="'testCase_Preamble'"/>
|
<stafcmd name="'extract DSML gateway web.xml'">
|
<location>'local'</location>
|
<service>'zip'</service>
|
<request>'UNZIP ZIPFILE %s TODIRECTORY %s FILE WEB-INF/web.xml' % (DSML_WARPATH, TMPDIR)</request>
|
</stafcmd>
|
<script>
|
webXmlInput=open('%s/WEB-INF/web.xml' % TMPDIR,'r')
|
import re
|
portRegEx = re.compile('389')
|
c=webXmlInput.read()
|
content=portRegEx.sub(DIRECTORY_INSTANCE_PORT, c)
|
webXmlInput.close()
|
webXmlOutput=open('%s/WEB-INF/web.xml.out' % TMPDIR,'w')
|
webXmlOutput.write(content)
|
webXmlOutput.close()
|
</script>
|
<call function="'copyFile'">
|
{ 'location' : 'local',
|
'remotehost' : '%s' % location,
|
'srcfile' : '%s/WEB-INF/web.xml.out' % TMPDIR,
|
'destfile' : '%s/%s-%s/webapps/dsml/WEB-INF/web.xml' % (TMPDIR,WC_TYPE,WC_VERSION)
|
}
|
</call>
|
<call function="'checktestRC'">
|
{
|
'returncode' : RC ,
|
'result' : STAXResult
|
}
|
</call>
|
<call function="'testCase_Postamble'"/>
|
</sequence>
|
</testcase>
|
</sequence>
|
</parallel>
|
<call function="'testSuite_Postamble'"/>
|
</sequence>
|
</block>
|
</function>
|
</stax>
|