| opends/tests/system-tests/scenario/singleServer/clients/secureUserpasswordModify/secureUserpasswordModify.xml | ●●●●● patch | view | raw | blame | history | |
| opends/tests/system-tests/scenario/singleServer/clients/secureUserpasswordModify/secureUserpasswordModifyLib.xml | ●●●●● patch | view | raw | blame | history | |
| opends/tests/system-tests/scenario/singleServer/clients/secureUserpasswordModify/secureUserpasswordModifyPostamble.xml | ●●●●● patch | view | raw | blame | history | |
| opends/tests/system-tests/scenario/singleServer/clients/secureUserpasswordModify/secureUserpasswordModifyPreamble.xml | ●●●●● patch | view | raw | blame | history |
opends/tests/system-tests/scenario/singleServer/clients/secureUserpasswordModify/secureUserpasswordModify.xml
@@ -28,12 +28,13 @@ <stax> <defaultcall function="secureUserpasswordModify"/> <!-- ************************************************************ --> <function name="secureUserpasswordModify" scope="local"> <!-- Client is automatically called by the scheduler and must --> <!-- always define all the parameters below --> <function name="secureUserpasswordModify"> <function-map-args> <function-arg-def name="workingDir" type="required"/> <function-arg-def name="client" type="required"/> <function-arg-def name="instances" type="required"/> <function-arg-def name="duration" type="required"/> @@ -42,7 +43,6 @@ <function-arg-def name="fileFd" type="required"/> </function-map-args> <sequence> <!-- =================== Comments =================== --> <!-- client is run under paralleliterate tag --> @@ -54,100 +54,21 @@ msg = '' </script> <!-- ================== Preamble =================== --> <!-- ================== Parser =================== --> <!-- parse the client parameters : --> <!-- params is [[param1,val1],[param2,val2],...] --> <!-- get the ldap instance parameters --> <import machine="'%s' % (client.getHost())" file="'%s/%sLib.xml' % (client.getPath(),client.getName())"/> <call function="'%sParser' % client.getName()"> { 'client' : client, 'instances' : instances, 'duration' : duration, 'suffix' : suffix } </call> <script> compilDir = '%s/%s_%s' % (workingDir,client.getHost(),client.getId()) outFile = '%s/client_secureUserpasswordModify_id%s.txt' % \ (client.getLogDir(),client.getId()) # # Extract client parameters from client.getParams() # cParams = client.getParams() try: serverInstanceFromClient = cParams[0][1] except IndexError: serverInstanceFromClient = NOT_DEFINED msg = '%s\nERROR: serverInstanceFromClient undefined,mandatory' % msg try: baseDn = cParams[1][1] except IndexError: baseDn = NOT_DEFINED msg = '%s\nERROR: baseDn undefined,mandatory' % msg try: nbCnx = cParams[2][1] except IndexError: nbCnx = NOT_DEFINED msg = '%s\nERROR: nbCnx undefined,mandatory' % msg try: nbMaxOp = cParams[3][1] except IndexError: nbMaxOp = NOT_DEFINED msg = '%s\nERROR: nbMaxOperations undefined,mandatory' % msg try: attributeName = cParams[4][1] except IndexError: attributeName = NOT_DEFINED try: protocol = cParams[5][1] except IndexError: protocol = NOT_DEFINED try: certAlias = cParams[6][1] except IndexError: certAlias = NOT_DEFINED try: delaySec = cParams[7][1] except IndexError: delaySec = NOT_DEFINED # # setup parms to run the client # if serverInstanceFromClient != NOT_DEFINED: sys.path.append("%s/phases/scheduler" % TESTS_DIR ) from scheduler import getInstance serverInstance = getInstance(serverInstanceFromClient,instances) if (serverInstance == 'ERROR'): msg = '%s\nERROR: cant find client instance named' % msg msg = '%s %s in server instance list' % \ (msg,serverInstanceFromClient) else: # remove sec, try to finish before timer kill -9 the client duration = duration - 120 # keystorePath keystorePath = "%s/CERT_%s_%s/config" % (client.getLogDir(),client.getName(),client.getId()) parms=[] if (protocol == 'ssl'): parms.append('-Dhostname=%s -Dport=%s' % \ (serverInstance.getHost(),serverInstance.getLDAPSPort())) else: parms.append('-Dhostname=%s -Dport=%s' % \ (serverInstance.getHost(),serverInstance.getLDAPPort())) parms.append('-Dsuffix="%s"' % baseDn) parms.append('-Dnb_threads=%s -DNB_MAX_mod=%s -DmaxDuration=%s' % (nbCnx,nbMaxOp,duration)) parms.append('-Dprotocol="%s"' % protocol) if attributeName != NOT_DEFINED: parms.append('-DattributeName="%s"' % attributeName) parms.append('-DbindDN="%s"' % DIRECTORY_INSTANCE_DN) parms.append('-DbindPW="%s"' % DIRECTORY_INSTANCE_PSWD) if delaySec != NOT_DEFINED: parms.append('-DdelaySec="%s"' % delaySec) parms = ' '.join(parms) </script> <if expr="msg.find('ERROR') != -1"> <sequence> <message>'%s' % msg</message> @@ -166,75 +87,6 @@ </sequence> <else> <sequence> <!-- ==== Add execute permission to build.ksh file ==== --> <call function="'writeStartTagOperation'"> { 'tagName' : 'chmod', 'fileFd' : fileFd } </call> <call function="'writeMessage'"> {'content' : 'Add execute permission to build.ksh file', 'fileFd' : fileFd} </call> <process name="'%s: chmod +x build.ksh' % client.getHost()"> <location>client.getHost()</location> <command mode="'shell'">'chmod +x build.ksh'</command> <parms/> <workdir>workingDir</workdir> <envs>['PATH=/bin:/usr/bin']</envs> <stderr mode="'stdout'"/> <stdout/> <returnstdout/> </process> <call function="'checkRC'"> { 'returncode' : RC, 'result' : STAXResult[0][1], 'fileFd' : fileFd } </call> <script> errNum += STAXResult </script> <call function="'writeEndTagOperation'">{'fileFd' : fileFd}</call> <!-- ==== Build client : run build.ksh file ==== --> <call function="'writeStartTagOperation'"> { 'tagName' : 'build', 'fileFd' : fileFd } </call> <!-- Build Client in unique directory (compilDir), avoid --> <!-- conflict if same client is run several time at the same time --> <process name="'%s: build %s' % (client.getHost(),client.getName())"> <location>client.getHost()</location> <command mode="'shell'">'./build.ksh'</command> <parms/> <workdir>workingDir</workdir> <envs>['PATH=%s/bin:/bin:/usr/bin' % JAVA_HOME,'COMPILDIR=%s' % compilDir ]</envs> <stderr mode="'stdout'"/> <stdout/> <returnstdout/> </process> <call function="'checkRC'"> { 'returncode' : RC, 'result' : STAXResult[0][1], 'fileFd' : fileFd } </call> <if expr="RC != 0"> <message> 'FAILED to build client %s on %s' % \ (client.getName(),client.getHost()) </message> </if> <script> errNum += STAXResult </script> <call function="'writeEndTagOperation'">{'fileFd' : fileFd}</call> <!-- ========== Run the client ========== --> <call function="'writeStartTagOperation'"> { 'tagName' : 'run', @@ -242,7 +94,14 @@ </call> <call function="'writeMessage'"> { 'fileFd' : fileFd, 'content' : 'Do ldapmodify on %s:%s' % \ 'content' : 'Do secure or non secure ldapsearchs on %s:%s' % \ (serverInstance.getHost(),serverInstance.getLDAPPort()) } </call> <call function="'writeMessage'"> { 'fileFd' : fileFd, 'content' : 'Do userpassword modify on %s:%s' % \ (serverInstance.getHost(),serverInstance.getLDAPSPort()) } </call> @@ -271,12 +130,13 @@ <location>client.getHost()</location> <command>'%s/bin/java' % JAVA_HOME</command> <parms>cParam </parms> <workdir>workingDir</workdir> <workdir>client.getPath()</workdir> <envs>['PATH=%s/bin:/bin:/usr/bin' % JAVA_HOME]</envs> <stderr mode="'stdout'"/> <stdout>outFile</stdout> <returnstdout/> </process> <!-- TBD : result should be STAXResult[0][1] : problem when javaexception, with carac " and < >--> <call function="'checkRC'"> @@ -289,33 +149,12 @@ </script> <call function="'writeEndTagOperation'">{'fileFd' : fileFd}</call> <!-- ========== Postamble ========== --> <call function="'writeMessage'"> {'content' : 'Output file %s' % outFile, 'xlink' : outFile, 'fileFd' : fileFd} </call> <process name="'%s:%s: Grep' % (client.getHost(),client.getName())"> <location>client.getHost()</location> <command mode="'shell'"> "grep 'TOTAL' %s | cut -d ' ' -f3-" % outFile </command> <envs>['PATH=/bin:/usr/bin']</envs> <stderr mode="'stdout'"/> <stdout/> <returnstdout/> </process> <script> summary = STAXResult[0][1] </script> <call function="'writeMessage'"> {'content' : 'Summary %s' % (summary), 'fileFd' : fileFd} </call> </sequence> </else> </if> @@ -324,7 +163,5 @@ </sequence> </function> </function> </stax> opends/tests/system-tests/scenario/singleServer/clients/secureUserpasswordModify/secureUserpasswordModifyLib.xml
New file @@ -0,0 +1,136 @@ <?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 ! ! Copyright 2008 Sun Microsystems, Inc. ! --> <stax> <defaultcall function="secureUserpasswordModifyParser"/> <!-- ************************************************************ --> <!-- Client Parser --> <!-- This function must NOT have scope=local has its variables may --> <!-- be used by the caller --> <function name="secureUserpasswordModifyParser"> <function-map-args> <function-arg-def name="client" type="required"/> <function-arg-def name="instances" type="required"/> <function-arg-def name="duration" type="required"/> <function-arg-def name="suffix" type="required"/> </function-map-args> <sequence> <script> compilDir = '%s/%s_%s' % (client.getPath(),client.getHost(),client.getId()) # # Extract client parameters from client.getParams() # cParams = client.getParams() try: serverInstanceFromClient = cParams[0][1] except IndexError: serverInstanceFromClient = NOT_DEFINED msg = '%s\nERROR: serverInstanceFromClient undefined,mandatory' % msg try: baseDn = cParams[1][1] except IndexError: baseDn = NOT_DEFINED msg = '%s\nERROR: baseDn undefined,mandatory' % msg try: nbCnx = cParams[2][1] except IndexError: nbCnx = NOT_DEFINED msg = '%s\nERROR: nbCnx undefined,mandatory' % msg try: nbMaxOp = cParams[3][1] except IndexError: nbMaxOp = NOT_DEFINED msg = '%s\nERROR: nbMaxOperations undefined,mandatory' % msg try: attributeName = cParams[4][1] except IndexError: attributeName = NOT_DEFINED try: protocol = cParams[5][1] except IndexError: protocol = NOT_DEFINED try: certAlias = cParams[6][1] except IndexError: certAlias = NOT_DEFINED try: delaySec = cParams[7][1] except IndexError: delaySec = NOT_DEFINED # # setup parms to run the client # if serverInstanceFromClient != NOT_DEFINED: sys.path.append("%s/phases/scheduler" % TESTS_DIR ) from scheduler import getInstance serverInstance = getInstance(serverInstanceFromClient,instances) if (serverInstance == 'ERROR'): msg = '%s\nERROR: cant find client instance named' % msg msg = '%s %s in server instance list' % \ (msg,serverInstanceFromClient) else: # remove sec, try to finish before timer kill -9 the client duration = duration - 20 # keystorePath keystorePath = "%s/CERT_%s_%s/config" % (client.getLogDir(),client.getName(),client.getId()) parms=[] if (protocol == 'ssl'): parms.append('-Dhostname=%s -Dport=%s' % \ (serverInstance.getHost(),serverInstance.getLDAPSPort())) else: parms.append('-Dhostname=%s -Dport=%s' % \ (serverInstance.getHost(),serverInstance.getLDAPPort())) parms.append('-Dsuffix="%s"' % baseDn) parms.append('-Dnb_threads=%s -DNB_MAX_mod=%s -DmaxDuration=%s' % (nbCnx,nbMaxOp,duration)) parms.append('-Dprotocol="%s"' % protocol) if attributeName != NOT_DEFINED: parms.append('-DattributeName="%s"' % attributeName) parms.append('-DbindDN="%s"' % DIRECTORY_INSTANCE_DN) parms.append('-DbindPW="%s"' % DIRECTORY_INSTANCE_PSWD) if delaySec != NOT_DEFINED: parms.append('-DdelaySec="%s"' % delaySec) parms = ' '.join(parms) </script> </sequence> </function> </stax> opends/tests/system-tests/scenario/singleServer/clients/secureUserpasswordModify/secureUserpasswordModifyPostamble.xml
New file @@ -0,0 +1,116 @@ <?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 ! ! Copyright 2008 Sun Microsystems, Inc. ! --> <stax> <defaultcall function="secureUserpasswordModifyPostamble"/> <!-- ************************************************************ --> <!-- Client postamble is automatically called by the scheduler --> <!-- and must always define all the parameters below --> <function name="secureUserpasswordModifyPostamble" scope="local"> <function-map-args> <function-arg-def name="client" type="required"/> <function-arg-def name="instances" type="required"/> <function-arg-def name="duration" type="required"/> <function-arg-def name="suffix" type="required"/> <function-arg-def name="outFile" type="required"/> <function-arg-def name="fileFd" type="required"/> </function-map-args> <sequence> <!-- =================== Comments =================== --> <!-- client is run under paralleliterate tag --> <!-- each variables defined are internal --> <!-- client should have its own err_num variable in order --> <!-- to inform scheduler if it has pass/fail status --> <script> errNum = 0 msg = '' </script> <!-- ================== Parser =================== --> <!-- parse the client parameters : --> <!-- params is [[param1,val1],[param2,val2],...] --> <!-- get the ldap instance parameters --> <import machine="'%s' % (STAF_LOCAL_HOSTNAME)" file="'%s/%sLib.xml' % (client.getPath(),client.getName())"/> <call function="'%sParser' % client.getName()"> { 'client' : client, 'instances' : instances, 'duration' : duration, 'suffix' : suffix } </call> <if expr="msg.find('ERROR') != -1"> <sequence> <message>'%s' % msg</message> <call function="'writeOperationResult'"> { 'returncode' : '1', 'expected' : '0', 'result' : msg, 'status' : 'ERROR', 'fileFd' : fileFd } </call> <script> errNum += 1 </script> </sequence> <else> <sequence> <process name="'%s:%s: Grep' % (client.getHost(),client.getName())"> <location>client.getHost()</location> <command mode="'shell'"> "grep 'ERROR' %s " % outFile </command> <envs>['PATH=/bin:/usr/bin']</envs> <stderr mode="'stdout'"/> <stdout/> <returnstdout/> </process> <script> if RC == 0: errNum +=1 summary = STAXResult[0][1] </script> <call function="'writeMessage'"> {'content' : 'Summary %s' % (summary), 'fileFd' : fileFd} </call> </sequence> </else> </if> <return> errNum </return> </sequence> </function> </stax> opends/tests/system-tests/scenario/singleServer/clients/secureUserpasswordModify/secureUserpasswordModifyPreamble.xml
New file @@ -0,0 +1,164 @@ <?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 ! ! Copyright 2008 Sun Microsystems, Inc. ! --> <stax> <defaultcall function="secureUserpasswordModifyPreamble"/> <!-- ************************************************************ --> <!-- Client preamble is automatically called by the scheduler --> <!-- and must always define all the parameters below --> <function name="secureUserpasswordModifyPreamble" scope="local"> <function-map-args> <function-arg-def name="client" type="required"/> <function-arg-def name="instances" type="required"/> <function-arg-def name="duration" type="required"/> <function-arg-def name="suffix" type="required"/> <function-arg-def name="outFile" type="required"/> <function-arg-def name="fileFd" type="required"/> </function-map-args> <sequence> <!-- =================== Comments =================== --> <!-- client is run under paralleliterate tag --> <!-- each variables defined are internal --> <!-- client should have its own err_num variable in order --> <!-- to inform scheduler if it has pass/fail status --> <script> errNum = 0 msg = '' </script> <!-- ================== Parser =================== --> <!-- parse the client parameters : --> <!-- params is [[param1,val1],[param2,val2],...] --> <!-- get the ldap instance parameters --> <import machine="'%s' % (STAF_LOCAL_HOSTNAME)" file="'%s/%sLib.xml' % (client.getPath(),client.getName())"/> <call function="'%sParser' % client.getName()"> { 'client' : client, 'instances' : instances, 'duration' : duration, 'suffix' : suffix } </call> <if expr="msg.find('ERROR') != -1"> <sequence> <message>'%s' % msg</message> <call function="'writeOperationResult'"> { 'returncode' : '1', 'expected' : '0', 'result' : msg, 'status' : 'ERROR', 'fileFd' : fileFd } </call> <script> errNum += 1 </script> </sequence> <else> <sequence> <!-- ==== Add execute permission to build.ksh file ==== --> <call function="'writeStartTagOperation'"> { 'tagName' : 'chmod', 'fileFd' : fileFd } </call> <call function="'writeMessage'"> {'content' : 'Add execute permission to build.ksh file', 'fileFd' : fileFd} </call> <process name="'%s: chmod +x build.ksh' % client.getHost()"> <location>client.getHost()</location> <command mode="'shell'">'chmod +x build.ksh'</command> <parms/> <workdir>client.getPath()</workdir> <envs>['PATH=/bin:/usr/bin']</envs> <stderr mode="'stdout'"/> <stdout/> <returnstdout/> </process> <call function="'checkRC'"> { 'returncode' : RC, 'result' : STAXResult[0][1], 'fileFd' : fileFd } </call> <script> errNum += STAXResult </script> <call function="'writeEndTagOperation'">{'fileFd' : fileFd}</call> <!-- ==== Build client : run build.ksh file ==== --> <call function="'writeStartTagOperation'"> { 'tagName' : 'build', 'fileFd' : fileFd } </call> <call function="'writeMessage'"> {'content' : 'Build client', 'fileFd' : fileFd} </call> <!-- Build Client in unique directory (compilDir), avoid --> <!-- conflict if same client is run several time at the same time --> <process name="'%s: build %s' % (client.getHost(),client.getName())"> <location>client.getHost()</location> <command mode="'shell'">'./build.ksh'</command> <parms/> <workdir>client.getPath()</workdir> <envs>['PATH=%s/bin:/bin:/usr/bin' % JAVA_HOME,'COMPILDIR=%s' % compilDir ]</envs> <stderr mode="'stdout'"/> <stdout/> <returnstdout/> </process> <call function="'checkRC'"> { 'returncode' : RC, 'result' : STAXResult[0][1], 'fileFd' : fileFd } </call> <if expr="RC != 0"> <message> 'FAILED to build client %s on %s' % \ (client.getName(),client.getHost()) </message> </if> <script> errNum += STAXResult </script> <call function="'writeEndTagOperation'">{'fileFd' : fileFd}</call> </sequence> </else> </if> <return> errNum </return> </sequence> </function> </stax>