<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE stax SYSTEM "/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 legal-notices/CDDLv1_0.txt
! or http://forgerock.org/license/CDDLv1.0.html.
! 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 legal-notices/CDDLv1_0.txt.
! 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 2011-2013 ForgeRock AS
! -->
<stax>
<!-- SDK ldapsearch Function -->
<function name="SDKldapSearch">
<function-prolog>
This function performs an ldapsearch using the SDK java API
</function-prolog>
<function-map-args>
<function-arg-def name="dsInstanceHost" type="optional">
<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="optional">
<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="optional">
<function-arg-description>
Bind DN
</function-arg-description>
<function-arg-property name="type" value="DN"/>
</function-arg-def>
<function-arg-def name="dsInstancePswd" type="optional">
<function-arg-description>
Bind 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="string"/>
</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="optional">
<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="dsAttributes" type="optional">
<function-arg-description>
Only return these attributes
</function-arg-description>
<function-arg-property name="type" value="string"/>
</function-arg-def>
<function-arg-def name="outputFile" type="optional" default="'None'">
<function-arg-description>
Output file containing the command output
</function-arg-description>
<function-arg-property name="type" value="file"/>
</function-arg-def>
<function-arg-def name="outputPath" type="optional">
<function-arg-description>
Path containing the outputFile
</function-arg-description>
<function-arg-property name="type" value="filepath"/>
</function-arg-def>
</function-map-args>
<sequence>
<!-- Build the Command -->
<script>
from org.forgerock.opendj.ldap import *
from org.forgerock.opendj.ldap.responses import *
from org.forgerock.opendj.ldif import *
myHost=String(dsInstanceHost)
myPort=int(dsInstancePort)
myBaseDn=String(dsBaseDN)
myDn=String(dsInstanceDn)
myPassword=String(dsInstancePswd).toCharArray()
if dsScope == 'base':
myScope = SearchScope.BASE_OBJECT
elif dsScope == 'one':
myScope = SearchScope.SINGLE_LEVEL
elif dsScope == 'sub':
myScope = SearchScope.WHOLE_SUBTREE
else:
myScope = SearchScope.WHOLE_SUBTREE
if dsFilter:
myFilter = dsFilter
else:
myFilter = '(objectClass=*)'
if dsAttributes:
myAttrs = dsAttributes
else:
myAttrs = []
writer = LDIFEntryWriter(System.out)
factory = LDAPConnectionFactory(myHost,myPort)
connection = None
try:
try:
connection = factory.getConnection()
connection.bind(myDn, myPassword)
reader = connection.search(myBaseDn, myScope, myFilter, myAttrs)
#TODO: handle search result references
#TODO: not really a need to use writer to write to stdout
while (reader.hasNext()):
if not reader.isReference():
entry = reader.readEntry()
writer.writeComment("Search result entry: %s" % entry.getName().toString())
writer.writeEntry(entry)
else:
ref = reader.readReference()
writer.writeComment("Search result reference: %s " % ref.getURIs().toString())
writer.flush()
except ErrorResultException, e:
System.err.println(e.getMessage())
System.exit(e.getResult().getResultCode().intValue())
except ErrorResultIOException, e:
System.err.println(e.getMessage())
System.exit(e.getCause().getResult().getResultCode().intValue())
except InterruptedException, e:
System.err.println(e.getMessage())
System.exit(ResultCode.CLIENT_SIDE_USER_CANCELLED.intValue())
except IOException, e:
System.err.println(e.getMessage())
System.exit(ResultCode.CLIENT_SIDE_LOCAL_ERROR.intValue())
finally:
connection.close()
SDKResult = [[0,'%s' % entry.getAllAttributes().toString()]]
</script>
<message>
'Result = %s' % entry.getAllAttributes().toString()
</message>
<return>
SDKResult
</return>
</sequence>
</function>
<function name="authRate">
<function-prolog>
This function runs ldap authrate tool from OpenDJ SDK
</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="sdkBinPath" type="optional" default="'%s' % SDK_BIN">
<function-arg-description>
Pathname to installation of sdk binaries
</function-arg-description>
<function-arg-property name="type" value="filepath"/>
</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="filepath"/>
</function-arg-def>
<function-arg-def name="dsInstanceHost" type="optional">
<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="optional">
<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="optional">
<function-arg-description>
Bind DN
</function-arg-description>
<function-arg-property name="type" value="DN"/>
</function-arg-def>
<function-arg-def name="dsInstancePswd" type="optional">
<function-arg-description>
Bind password
</function-arg-description>
<function-arg-property name="type" value="string"/>
</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="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="verbose" type="optional" default="True">
<function-arg-description>
Display (or not) output.
</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-def>
<function-arg-def name="outputFile" type="optional" default="'None'">
<function-arg-description>
Output file containing the command output
</function-arg-description>
<function-arg-property name="type" value="file"/>
</function-arg-def>
<function-arg-def name="outputPath" type="optional">
<function-arg-description>
Path containing the outputFile
</function-arg-description>
<function-arg-property name="type" value="filepath"/>
</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/authrate%s' % (sdkBinPath,fileExt)
</script>
<!-- Set common ldap arguments -->
<call function="'_ldapCommonArgs'" />
<script>
if extraParams:
STAFCmdParamsList.append('%s' % extraParams)
STAFCmdParams=' '.join(STAFCmdParamsList)
</script>
<if expr="outputFile != 'None'">
<call function="'runCommand'" >
{ 'command' : STAFCmd,
'arguments' : STAFCmdParams,
'location' : location,
'name' : 'authrate',
'outputFile': '%s/%s' % (outputPath, outputFile),
'expectedRC': expectedRC,
'knownIssue': knownIssue
}
</call>
<else>
<sequence>
<call function="'runCommand'">
{ 'command' : STAFCmd,
'arguments' : STAFCmdParams,
'location' : mylocation,
'name' : 'authrate',
'expectedRC' : expectedRC,
'knownIssue' : knownIssue
}
</call>
<script>
for line in STAXResult[0][1].split('\n'):
print line
</script>
</sequence>
</else>
</if>
<return>
STAXResult
</return>
</sequence>
</function>
<function name="searchRate">
<function-prolog>
This function runs ldap searchrate tool from OpenDJ SDK
</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="sdkBinPath" type="optional" default="'%s' % SDK_BIN">
<function-arg-description>
Pathname to installation of sdk binaries
</function-arg-description>
<function-arg-property name="type" value="filepath"/>
</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="filepath"/>
</function-arg-def>
<function-arg-def name="dsInstanceHost" type="optional">
<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="optional">
<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="optional">
<function-arg-description>
Bind DN
</function-arg-description>
<function-arg-property name="type" value="DN"/>
</function-arg-def>
<function-arg-def name="dsInstancePswd" type="optional">
<function-arg-description>
Bind password
</function-arg-description>
<function-arg-property name="type" value="string"/>
</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="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="verbose" type="optional" default="True">
<function-arg-description>
Display (or not) output.
</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-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="outputFile" type="optional" default="'None'">
<function-arg-description>
Output file containing the command output
</function-arg-description>
<function-arg-property name="type" value="file"/>
</function-arg-def>
<function-arg-def name="outputPath" type="optional">
<function-arg-description>
Path containing the outputFile
</function-arg-description>
<function-arg-property name="type" value="filepath"/>
</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/searchrate%s' % (sdkBinPath,fileExt)
</script>
<!-- Set common ldap arguments -->
<call function="'_ldapCommonArgs'" />
<script>
if dsBaseDN:
STAFCmdParamsList.append('-b %s' % dsBaseDN)
if extraParams:
STAFCmdParamsList.append('%s' % extraParams)
STAFCmdParams=' '.join(STAFCmdParamsList)
</script>
<if expr="outputFile != 'None'">
<call function="'runCommand'" >
{ 'command' : STAFCmd,
'arguments' : STAFCmdParams,
'location' : location,
'name' : 'searchrate',
'outputFile': '%s/%s' % (outputPath, outputFile),
'expectedRC': expectedRC,
'knownIssue': knownIssue
}
</call>
<else>
<sequence>
<call function="'runCommand'">
{ 'command' : STAFCmd,
'arguments' : STAFCmdParams,
'location' : mylocation,
'name' : 'searchrate',
'expectedRC' : expectedRC,
'knownIssue' : knownIssue
}
</call>
<script>
for line in STAXResult[0][1].split('\n'):
print line
</script>
</sequence>
</else>
</if>
<return>
STAXResult
</return>
</sequence>
</function>
<function name="modRate">
<function-prolog>
This function runs ldap modrate tool from OpenDJ SDK
</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="sdkBinPath" type="optional" default="'%s' % SDK_BIN">
<function-arg-description>
Pathname to installation of sdk binaries
</function-arg-description>
<function-arg-property name="type" value="filepath"/>
</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="filepath"/>
</function-arg-def>
<function-arg-def name="dsInstanceHost" type="optional">
<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="optional">
<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="optional">
<function-arg-description>
Bind DN
</function-arg-description>
<function-arg-property name="type" value="DN"/>
</function-arg-def>
<function-arg-def name="dsInstancePswd" type="optional">
<function-arg-description>
Bind password
</function-arg-description>
<function-arg-property name="type" value="string"/>
</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="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="verbose" type="optional" default="True">
<function-arg-description>
Display (or not) output.
</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-def>
<function-arg-def name="dsBaseDN" type="optional">
<function-arg-description>
The baseDN for the operation
</function-arg-description>
<function-arg-property name="type" value="dn"/>
</function-arg-def>
<function-arg-def name="attribute" type="optional">
<function-arg-description>
The attribute to be modified
</function-arg-description>
<function-arg-property name="type" value="string"/>
</function-arg-def>
<function-arg-def name="formatString" type="optional">
<function-arg-description>
The attribute value to be modified
</function-arg-description>
<function-arg-property name="type" value="string"/>
</function-arg-def>
<function-arg-def name="outputFile" type="optional" default="'None'">
<function-arg-description>
Output file containing the command output
</function-arg-description>
<function-arg-property name="type" value="file"/>
</function-arg-def>
<function-arg-def name="outputPath" type="optional">
<function-arg-description>
Path containing the outputFile
</function-arg-description>
<function-arg-property name="type" value="filepath"/>
</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/modrate%s' % (sdkBinPath,fileExt)
</script>
<!-- Set common ldap arguments -->
<call function="'_ldapCommonArgs'" />
<script>
if dsBaseDN:
STAFCmdParamsList.append('-b %s' % dsBaseDN)
if extraParams:
STAFCmdParamsList.append('%s' % extraParams)
if attribute:
if formatString:
STAFCmdParamsList.append('%s:%s' % (attribute,formatString))
else:
STAFCmdParamsList.append('%s' % attribute)
STAFCmdParams=' '.join(STAFCmdParamsList)
</script>
<if expr="outputFile != 'None'">
<call function="'runCommand'" >
{ 'command' : STAFCmd,
'arguments' : STAFCmdParams,
'location' : location,
'name' : 'modrate',
'outputFile': '%s/%s' % (outputPath, outputFile),
'expectedRC': expectedRC,
'knownIssue': knownIssue
}
</call>
<else>
<sequence>
<call function="'runCommand'">
{ 'command' : STAFCmd,
'arguments' : STAFCmdParams,
'location' : mylocation,
'name' : 'modrate',
'expectedRC' : expectedRC,
'knownIssue' : knownIssue
}
</call>
<script>
for line in STAXResult[0][1].split('\n'):
print line
</script>
</sequence>
</else>
</if>
<return>
STAXResult
</return>
</sequence>
</function>
<function name="addRate">
<function-prolog>
This function runs ldap searchrate tool from OpenDJ SDK
</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="sdkBinPath" type="optional" default="'%s' % SDK_BIN">
<function-arg-description>
Pathname to installation of sdk binaries
</function-arg-description>
<function-arg-property name="type" value="filepath"/>
</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="filepath"/>
</function-arg-def>
<function-arg-def name="dsInstanceHost" type="optional">
<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="optional">
<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="optional">
<function-arg-description>
Bind DN
</function-arg-description>
<function-arg-property name="type" value="DN"/>
</function-arg-def>
<function-arg-def name="dsInstancePswd" type="optional">
<function-arg-description>
Bind password
</function-arg-description>
<function-arg-property name="type" value="string"/>
</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="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="verbose" type="optional" default="True">
<function-arg-description>
Display (or not) output.
</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-def>
<function-arg-def name="templateFile" type="optional">
<function-arg-description>
The template file
</function-arg-description>
<function-arg-property name="type" value="dn"/>
</function-arg-def>
<function-arg-def name="outputFile" type="optional" default="'None'">
<function-arg-description>
Output file containing the command output
</function-arg-description>
<function-arg-property name="type" value="file"/>
</function-arg-def>
<function-arg-def name="outputPath" type="optional">
<function-arg-description>
Path containing the outputFile
</function-arg-description>
<function-arg-property name="type" value="filepath"/>
</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/addrate%s' % (sdkBinPath,fileExt)
</script>
<!-- Set common ldap arguments -->
<call function="'_ldapCommonArgs'" />
<script>
if templateFile:
STAFCmdParamsList.append('-l %s' % templateFile)
if extraParams:
STAFCmdParamsList.append('%s' % extraParams)
STAFCmdParams=' '.join(STAFCmdParamsList)
</script>
<if expr="outputFile != 'None'">
<call function="'runCommand'" >
{ 'command' : STAFCmd,
'arguments' : STAFCmdParams,
'location' : location,
'name' : 'addrate',
'outputFile': '%s/%s' % (outputPath, outputFile),
'expectedRC': expectedRC,
'knownIssue': knownIssue
}
</call>
<else>
<sequence>
<call function="'runCommand'">
{ 'command' : STAFCmd,
'arguments' : STAFCmdParams,
'location' : mylocation,
'name' : 'addrate',
'expectedRC' : expectedRC,
'knownIssue' : knownIssue
}
</call>
<script>
for line in STAXResult[0][1].split('\n'):
print line
</script>
</sequence>
</else>
</if>
<return>
STAXResult
</return>
</sequence>
</function>
<function name="delRate">
<function-prolog>
This function runs ldap delrate tool from OpenDJ SDK
</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="sdkBinPath" type="optional" default="'%s' % SDK_BIN">
<function-arg-description>
Pathname to installation of sdk binaries
</function-arg-description>
<function-arg-property name="type" value="filepath"/>
</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="filepath"/>
</function-arg-def>
<function-arg-def name="dsInstanceHost" type="optional">
<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="optional">
<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="optional">
<function-arg-description>
Bind DN
</function-arg-description>
<function-arg-property name="type" value="DN"/>
</function-arg-def>
<function-arg-def name="dsInstancePswd" type="optional">
<function-arg-description>
Bind password
</function-arg-description>
<function-arg-property name="type" value="string"/>
</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="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="verbose" type="optional" default="True">
<function-arg-description>
Display (or not) output.
</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-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="outputFile" type="optional" default="'None'">
<function-arg-description>
Output file containing the command output
</function-arg-description>
<function-arg-property name="type" value="file"/>
</function-arg-def>
<function-arg-def name="outputPath" type="optional">
<function-arg-description>
Path containing the outputFile
</function-arg-description>
<function-arg-property name="type" value="filepath"/>
</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/delrate%s' % (sdkBinPath,fileExt)
</script>
<!-- Set common ldap arguments -->
<call function="'_ldapCommonArgs'" />
<script>
if dsBaseDN:
STAFCmdParamsList.append('-b %s' % dsBaseDN)
if extraParams:
STAFCmdParamsList.append('%s' % extraParams)
STAFCmdParams=' '.join(STAFCmdParamsList)
</script>
<if expr="outputFile != 'None'">
<call function="'runCommand'" >
{ 'command' : STAFCmd,
'arguments' : STAFCmdParams,
'location' : location,
'name' : 'delrate',
'outputFile': '%s/%s' % (outputPath, outputFile),
'expectedRC': expectedRC,
'knownIssue': knownIssue
}
</call>
<else>
<sequence>
<call function="'runCommand'">
{ 'command' : STAFCmd,
'arguments' : STAFCmdParams,
'location' : mylocation,
'name' : 'delrate',
'expectedRC' : expectedRC,
'knownIssue' : knownIssue
}
</call>
<script>
for line in STAXResult[0][1].split('\n'):
print line
</script>
</sequence>
</else>
</if>
<return>
STAXResult
</return>
</sequence>
</function>
<function name="LdifDiffSdk">
<function-prolog>
This function runs ldif-diff tool from OpenDJ SDK
</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="sdkBinPath" type="optional" default="'%s' % SDK_BIN">
<function-arg-description>
Pathname to installation of sdk binaries
</function-arg-description>
<function-arg-property name="type" value="filepath"/>
</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="filepath"/>
</function-arg-def>
<function-arg-def name="sourceLdif" type="required">
<function-arg-description>
LDIF file to use as the source data
</function-arg-description>
<function-arg-property name="type" value="filepath"/>
</function-arg-def>
<function-arg-def name="targetLdif" type="required">
<function-arg-description>
LDIF file to use as the target data
</function-arg-description>
<function-arg-property name="type" value="filepath"/>
</function-arg-def>
<function-arg-def name="outputLdif" type="required">
<function-arg-description>
File to which the diffs should be written
</function-arg-description>
<function-arg-property name="type" value="filepath"/>
</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-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/ldifdiff%s' % (sdkBinPath,fileExt)
</script>
<script>
if outputLdif:
STAFCmdParamsList.append('-o %s' % outputLdif)
STAFCmdParamsList.append(sourceLdif)
STAFCmdParamsList.append(targetLdif)
STAFCmdParams=' '.join(STAFCmdParamsList)
</script>
<call function="'runCommand'">
{ 'command' : STAFCmd,
'arguments' : STAFCmdParams,
'location' : mylocation,
'name' : 'ldifdiff',
'expectedRC' : expectedRC,
'knownIssue' : knownIssue
}
</call>
<script>
savSTAXResult = STAXResult
for line in savSTAXResult[0][1].split('\n'):
print line
if len(savSTAXResult[0][1]) > 0:
savSTAXResult[0][0] = 1
else:
savSTAXResult[0][0] = 0
</script>
<return>
STAXResult
</return>
</sequence>
</function>
</stax>