From 9ed2bbf2be91150b72bf8987bca63f01a8457ab5 Mon Sep 17 00:00:00 2001
From: ugaston <ugaston@localhost>
Date: Mon, 14 Sep 2009 17:20:50 +0000
Subject: [PATCH] First set of External Changelog functional tests
---
opends/tests/staf-tests/shared/functions/ldap.xml | 323 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 323 insertions(+), 0 deletions(-)
diff --git a/opends/tests/staf-tests/shared/functions/ldap.xml b/opends/tests/staf-tests/shared/functions/ldap.xml
index 4c803e5..f7081b6 100755
--- a/opends/tests/staf-tests/shared/functions/ldap.xml
+++ b/opends/tests/staf-tests/shared/functions/ldap.xml
@@ -3083,6 +3083,151 @@
</sequence>
</function>
+
+ <!-- Rename an entry -->
+ <function name="modifyDn">
+ <function-prolog>
+ This function renames an entry, either by a modRDN or by a modDN
+ </function-prolog>
+ <function-map-args>
+ <function-arg-def name="location"
+ type="optional"
+ default="STAF_REMOTE_HOSTNAME">
+ <function-arg-description>
+ Location of target host
+ </function-arg-description>
+ <function-arg-property name="type" value="hostname"/>
+ </function-arg-def>
+ <function-arg-def name="dsPath"
+ type="optional"
+ default="'%s/%s' % (DIRECTORY_INSTANCE_DIR,OPENDSNAME)">
+ <function-arg-description>
+ Pathname to installation root
+ </function-arg-description>
+ <function-arg-property name="type" value="filepath"/>
+ </function-arg-def>
+ <function-arg-def name="dsInstanceHost"
+ type="optional"
+ default="STAF_REMOTE_HOSTNAME">
+ <function-arg-description>
+ Directory server hostname or IP address
+ </function-arg-description>
+ <function-arg-property name="type" value="hostname"/>
+ </function-arg-def>
+ <function-arg-def name="dsInstancePort" type="required">
+ <function-arg-description>
+ Directory server port number
+ </function-arg-description>
+ <function-arg-property name="type" value="Port number"/>
+ </function-arg-def>
+ <function-arg-def name="dsInstanceDn" type="required">
+ <function-arg-description>
+ Bind DN
+ </function-arg-description>
+ <function-arg-property name="type" value="DN"/>
+ </function-arg-def>
+ <function-arg-def name="dsInstancePswd" type="required">
+ <function-arg-description>
+ Bind password
+ </function-arg-description>
+ <function-arg-property name="type" value="string"/>
+ </function-arg-def>
+ <function-arg-def name="DNToModify" type="required">
+ <function-arg-description>
+ DN to modify
+ </function-arg-description>
+ <function-arg-property name="type" value="DN"/>
+ </function-arg-def>
+ <function-arg-def name="newRDN"
+ type="optional"
+ default="None">
+ <function-arg-description>
+ New rdn name : ie uid=jdoe_bis. If not passed, the newRDN will be the
+ same old rdn
+ </function-arg-description>
+ <function-arg-property name="type" value="string"/>
+ </function-arg-def>
+ <function-arg-def name="deleteOldRDN"
+ type="optional"
+ default="None">
+ <function-arg-description>
+ 1 : delete old rdn, 0 do not delete old rdn, default value is 1
+ </function-arg-description>
+ <function-arg-property name="type" value="integer"/>
+ </function-arg-def>
+ <function-arg-def name="newSuperior"
+ type="optional"
+ default="None">
+ <function-arg-description>
+ New parent entry for the entry
+ </function-arg-description>
+ <function-arg-property name="type" value="DN"/>
+ </function-arg-def>
+ <function-arg-def name="expectedRC" type="optional" default="0">
+ <function-arg-description>
+ Expected return code value. Default value is 0
+ Wildcard 'noCheck' to not check the RC
+ </function-arg-description>
+ <function-arg-property name="type" value="integer"/>
+ </function-arg-def>
+ <function-arg-def name="knownIssue" type="optional" default="None">
+ <function-arg-description>
+ Known issue. Corresponds to an issue number.
+ </function-arg-description>
+ <function-arg-property name="type" value="string" />
+ </function-arg-def>
+ </function-map-args>
+ <sequence>
+
+ <!-- Local variables -->
+ <script>
+ mylocation=location
+ #Build the Command
+ STAFCmdParamsList=[]
+ STAFCmdParams=''
+ STAFCmd=''
+ </script>
+
+ <!-- Set common ldap arguments -->
+ <call function="'_ldapCommonArgs'" />
+ <script>
+ if DNToModify:
+ STAFCmdParamsList.append('-d "%s"' % DNToModify)
+
+ if newRDN:
+ STAFCmdParamsList.append('-e "%s"' % newRDN)
+
+ if deleteOldRDN == 0:
+ STAFCmdParamsList.append('-f "false"')
+ elif deleteOldRDN == 1:
+ STAFCmdParamsList.append('-f "true"')
+
+ if newSuperior:
+ STAFCmdParamsList.append('-g "%s"' % newSuperior)
+
+ STAFCmdParams=' '.join(STAFCmdParamsList)
+
+ STAFCmd='modifyDn'
+ </script>
+ <call function="'runCommand'" >
+ { 'name' : 'Modify DN',
+ 'command' : '%s/bin/java' % JAVA_HOME,
+ 'arguments' : '%s %s' % (STAFCmd,STAFCmdParams),
+ 'location' : location,
+ 'envCmd' : ['CLASSPATH=%s/../%s/ldapjndi' % (dsPath,remote.reljavadir)],
+ 'path' : '%s/../%s/ldapjndi' % (dsPath,remote.reljavadir),
+ 'expectedRC': expectedRC,
+ 'knownIssue': knownIssue
+ }
+ </call>
+ <return>
+ STAXResult
+ </return>
+ </sequence>
+ </function>
+
+
+
<!-- Modify an attribute -->
<function name="saslSearch">
<function-prolog>
@@ -3298,5 +3443,183 @@
</sequence>
</function>
+
+
+
+ <function name="SearchExternalChangelog">
+ <function-prolog>
+ This function searches the external changelog
+ </function-prolog>
+ <function-map-args>
+ <function-arg-def name="location" type="optional" default="STAF_REMOTE_HOSTNAME">
+ <function-arg-description>
+ Location of target host
+ </function-arg-description>
+ <function-arg-property name="type" value="hostname"/>
+ </function-arg-def>
+ <function-arg-def name="dsPath" type="optional" default="'%s/%s' % (DIRECTORY_INSTANCE_BIN,OPENDSNAME)">
+ <function-arg-description>
+ Pathname to installation root
+ </function-arg-description>
+ <function-arg-property name="type" value="pathname"/>
+ </function-arg-def>
+ <function-arg-def name="dsInstanceHost" type="optional">
+ <function-arg-description>
+ Directory Server Host Name
+ </function-arg-description>
+ <function-arg-property name="type" value="hostname"/>
+ </function-arg-def>
+ <function-arg-def name="dsInstancePort" type="optional">
+ <function-arg-description>
+ Directory Server Port Number
+ </function-arg-description>
+ <function-arg-property name="type" value="integer"/>
+ </function-arg-def>
+ <function-arg-def name="dsInstanceDn" type="optional">
+ <function-arg-description>
+ Directory Server Manager DN
+ </function-arg-description>
+ <function-arg-property name="type" value="dn"/>
+ </function-arg-def>
+ <function-arg-def name="dsInstancePswd" type="optional">
+ <function-arg-description>
+ Directory Server Manager Password
+ </function-arg-description>
+ <function-arg-property name="type" value="string"/>
+ </function-arg-def>
+ <function-arg-def name="dsScope" type="optional">
+ <function-arg-description>
+ The scope of the search operation
+ </function-arg-description>
+ <function-arg-property name="type" value="dn"/>
+ </function-arg-def>
+ <function-arg-def name="dsBaseDN" type="optional">
+ <function-arg-description>
+ The baseDN for the search operation
+ </function-arg-description>
+ <function-arg-property name="type" value="dn"/>
+ </function-arg-def>
+ <function-arg-def name="dsFilter" type="required">
+ <function-arg-description>
+ The filter for the search operation
+ </function-arg-description>
+ <function-arg-property name="type" value="filter"/>
+ </function-arg-def>
+ <function-arg-def name="extraParams" type="optional">
+ <function-arg-description>
+ Optional extra parameters for specific test cases
+ </function-arg-description>
+ <function-arg-property name="type" value="string"/>
+ </function-arg-def>
+ <function-arg-def name="attributes" type="optional">
+ <function-arg-description>
+ Optional Attributes to return
+ </function-arg-description>
+ <function-arg-property name="type" value="attributes"/>
+ </function-arg-def>
+ <function-arg-def name="changelogCookie"
+ type="optional"
+ default="None">
+ <function-arg-description>
+ Changelog cookie of the last change retrieved.
+ (OpenDS external changelog => non draft-compatible mode)
+ </function-arg-description>
+ <function-arg-property name="type" value="string"/>
+ </function-arg-def>
+ <function-arg-def name="changeNumberFilter"
+ type="optional"
+ default="None">
+ <function-arg-description>
+ Changenumber corresponding to the last change retrieved.
+ (Changelog draft-compatible mode)
+ </function-arg-description>
+ <function-arg-property name="type" value="filter"/>
+ </function-arg-def>
+ <function-arg-def name="expectedRC" type="optional" default="0">
+ <function-arg-description>
+ Expected return code value. Default value is 0.
+ Wildcard 'noCheck' to not check the RC
+ </function-arg-description>
+ <function-arg-property name="type" value="integer"/>
+ </function-arg-def>
+ <function-arg-def name="knownIssue" type="optional" default="None">
+ <function-arg-description>
+ Known issue. Corresponds to an issue number.
+ </function-arg-description>
+ <function-arg-property name="type" value="string" />
+ </function-arg-def>
+ </function-map-args>
+ <sequence>
+
+ <!-- Local variables -->
+ <script>
+ mylocation=location
+ </script>
+
+ <!-- Build the Command -->
+ <script>
+ STAFCmdParamsList=[]
+ STAFCmdParams=''
+
+ if dsPath:
+ dsBinPath='%s/%s' % (dsPath,fileFolder)
+ STAFCmd='%s/ldapsearch%s' % (dsBinPath,fileExt)
+
+ </script>
+
+ <!-- Set common ldap arguments -->
+ <call function="'_ldapCommonArgs'"/>
+
+ <script>
+ if changelogCookie:
+ control = '1.3.6.1.4.1.26027.1.5.4:false:%s' % changelogCookie
+ STAFCmdParamsList.append('--control "%s"' % control)
+
+ if dsScope:
+ STAFCmdParamsList.append('-s %s' % dsScope)
+
+ if extraParams:
+ STAFCmdParamsList.append('%s' % extraParams)
+
+ if dsBaseDN:
+ STAFCmdParamsList.append('-b "%s"' % dsBaseDN)
+
+ if dsFilter:
+ if changeNumberFilter:
+ searchFilter = '&%s%s' % (changeNumberFilter, dsFilter)
+ else:
+ searchFilter = dsFilter
+ STAFCmdParamsList.append('"%s"' % searchFilter)
+ else:
+ if changeNumberFilter:
+ STAFCmdParamsList.append('"%s"' % changeNumberFilter)
+
+ if attributes:
+ STAFCmdParamsList.append('%s' % attributes)
+ else:
+ STAFCmdParamsList.append('@changeLogEntry')
+
+ STAFCmdParams=' '.join(STAFCmdParamsList)
+ </script>
+
+ <message>
+ '%s %s' % (STAFCmd, STAFCmdParams)
+ </message>
+
+ <call function="'runCommand'">
+ { 'command' : STAFCmd,
+ 'arguments' : STAFCmdParams,
+ 'location' : location,
+ 'name' : 'ldapsearch',
+ 'expectedRC': expectedRC,
+ 'knownIssue': knownIssue
+ }
+ </call>
+ <return>
+ STAXResult
+ </return>
+ </sequence>
+
+ </function>
</stax>
--
Gitblit v1.10.0