From 00d68dec044435ff96edcf4b3d99c57248211b52 Mon Sep 17 00:00:00 2001
From: Christophe Sovant <christophe.sovant@forgerock.com>
Date: Thu, 13 Mar 2008 19:23:44 +0000
Subject: [PATCH] Fix rebuild-index, verify-index testcases andadd functions for remaining tools

---
 opends/tests/shared/functions/tools.xml |  423 +++++++++++++++++++++++++++++-----------------------
 1 files changed, 233 insertions(+), 190 deletions(-)

diff --git a/opends/tests/shared/functions/tools.xml b/opends/tests/shared/functions/tools.xml
index 2dce42e..b2cdfad 100755
--- a/opends/tests/shared/functions/tools.xml
+++ b/opends/tests/shared/functions/tools.xml
@@ -27,7 +27,7 @@
  ! -->
 <stax>
   <!-- This function uses make ldif to generate LDIF data files -->
-  <function name="MakeLdif">
+  <function name="MakeLdifWithScript">
     <function-prolog>
       This function uses make ldif to generate LDIF data files
     </function-prolog>
@@ -366,8 +366,6 @@
     </sequence>
   </function>
   
-
-
   <!-- This function modifies an LDIF file using ldifmodify script -->
   <function name="LdifModifyWithScript">
     <function-prolog>
@@ -871,112 +869,6 @@
     </sequence>
   </function>
   
-  
-  <function name="CLI_rebuild-index">
-    <function-prolog>
-      This wraps the rebuild-index tool to make it easy to use from STAX
-    </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="baseDN" type="required">
-        <function-arg-description>
-          Specify a back-end supporting indexing and triggers a rebuild of all 
-          indexes in the scope of the provided baseDN
-        </function-arg-description>
-      </function-arg-def>
-      <function-arg-def name="attributes" type="required">
-        <function-arg-description>
-          Specify a list of attributes to trigger index rebuild on
-          This should be passed on as a python array like
-          [ 'uid', 'telephonenumber' ]
-        </function-arg-description>
-      </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-def>
-    </function-map-args>
-    
-    <sequence>
-      <script>
-        dsBinPath='%s/%s' % (dsPath,fileFolder)        
-        _cmd='%s/rebuild-index%s' % (dsBinPath,fileExt)
-        _args=' -b %s -i %s' % ( baseDN, ' -i '.join(attributes) )
-      </script>
-      <call function="'runCommand'">
-        { 'name'      : 'rebuild index',
-          'location'  : location,
-          'command'   : _cmd,
-          'arguments' : _args,
-          'expectedRC': expectedRC
-        }
-      </call>
-      <return>STAXResult</return>
-    </sequence>
-  </function>
-  
-  <function name="CLI_verify-index">
-    <function-prolog>
-      This wraps the verify-index tool to make it easy to use from STAX
-    </function-prolog>
-    <function-map-args>
-      <function-arg-def name="baseDN" type="required">
-        <function-arg-description>
-          Specify a back-end supporting indexing and triggers a verification of all 
-          indexes in the scope of the provided baseDN
-        </function-arg-description>
-      </function-arg-def>
-      <function-arg-def name="attributes" type="required">
-        <function-arg-description>
-          Specify a list of attributes to trigger index verification on
-          This should be passed as a python array like
-          [ 'uid','telephonenumber' ]
-        </function-arg-description>
-      </function-arg-def>
-      <function-arg-def name="clean" type="optional">
-        <function-arg-description>
-          Specify a list of attributes to trigger index verification on
-        </function-arg-description>
-      </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-def>
-    </function-map-args>
-
-    <sequence>
-      <script>
-        dsBinPath='%s/%s' % (dsPath,fileFolder)                  
-        _cmd='%s/verify-index%s' % (dsBinPath,fileExt)
-        _args=' -b %s -i %s' % ( baseDN, ' -i '.join(attributes) )
-      </script>
-      <call function="'runCommand'">
-        { 'name'      : 'verify index',
-          'location'  : location,
-          'command'   : _cmd,
-          'arguments' : _args,
-          'expectedRC': expectedRC
-        }
-      </call>
-      <return>STAXResult</return>
-    </sequence>
-  </function>
-  
   <!-- This function perform a search operation in a LDIF file -->
   <function name="ldifSearchWithScript" scope="local">
     <function-prolog>
@@ -992,8 +884,8 @@
         <function-arg-property name="type" value="hostname"/>
       </function-arg-def>
       <function-arg-def name="dsPath"
-                       type="optional"
-                       default="'%s/%s' % (DIRECTORY_INSTANCE_DIR,OPENDSNAME)">
+                        type="optional"
+                        default="'%s/%s' % (DIRECTORY_INSTANCE_DIR,OPENDSNAME)">
         <function-arg-description>
           Pathname to installation root
         </function-arg-description>
@@ -1023,7 +915,9 @@
         </function-arg-description>
         <function-arg-property name="type" value="filename"/>
       </function-arg-def>
-      <function-arg-def name="dsOverwriteExisting" type="optional">
+      <function-arg-def name="dsOverwriteExisting" 
+                        type="optional" 
+                        default="True">
         <function-arg-description>
           Overwrite the output file specified
         </function-arg-description>
@@ -1150,11 +1044,11 @@
       <return>STAXResult</return>
     </sequence>
   </function>
-  
-  <!-- This function execute the rebuild-index tool -->
-  <function name="rebuildIndexWithScript" scope="local">
+
+  <!-- This function execute the encode-password tool -->  
+  <function name="encodePasswordWithScript" scope="local">
     <function-prolog>
-      This function execute the rebuild-index tool
+      This function execute the encode-password tool
     </function-prolog>
     <function-map-args>
       <function-arg-def name="location"
@@ -1173,21 +1067,59 @@
         </function-arg-description>
         <function-arg-property name="type" value="filepath"/>
       </function-arg-def>      
-      <function-arg-def name="dsBaseDN" type="required">
+      <function-arg-def name="authPwdSyntax" type="optional">
         <function-arg-description>
-          Specify a back-end supporting indexing and triggers a verification 
-          of all indexes in the scope of the provided baseDN
+          Use the authentication password syntax.
         </function-arg-description>
-        <function-arg-property name="type" value="dn"/>
+        <function-arg-property name="type" value="option"/>
       </function-arg-def>
-      <function-arg-def name="dsIndexList" type="optional">
+      <function-arg-def name="clearPwd" type="optional">
         <function-arg-description>
-          Specify a list of indexes
-          This should be passed as a python array like
-          [ 'uid','telephonenumber' ]
+          Specify the clear-text password.
         </function-arg-description>
-        <function-arg-property name="type" value="array"/>
+        <function-arg-property name="type" value="string"/>
       </function-arg-def>
+      <function-arg-def name="encodedPwd" type="optional">
+        <function-arg-description>
+          Specify the encoded password.
+        </function-arg-description>
+        <function-arg-property name="type" value="string"/>
+      </function-arg-def>
+      <function-arg-def name="encodedPwdFile" type="optional">
+        <function-arg-description>
+          Use the encoded password from the specified file.
+        </function-arg-description>
+        <function-arg-property name="type" value="filename"/>
+      </function-arg-def>
+      <function-arg-def name="clearPwdFile" type="optional">
+        <function-arg-description>
+          Use the clear-text password from the specified file.
+        </function-arg-description>
+        <function-arg-property name="type" value="filename"/>
+      </function-arg-def>
+      <function-arg-def name="listSchemes" type="optional">
+        <function-arg-description>
+          Display a list of the password storage schemes that are available
+          for use in the OpenDS server. 
+        </function-arg-description>
+        <function-arg-property name="type" value="option"/>
+      </function-arg-def>
+      <function-arg-def name="useCmpRC" type="optional">
+        <function-arg-description>
+          Use an exit code that indicates whether a given clear-text password
+          matched a provided encoded password.
+          Results are an exit code of 6 (COMPARE_TRUE) or
+          an exit code of 5 (COMPARE_FALSE).
+        </function-arg-description>
+        <function-arg-property name="type" value="option"/>
+      </function-arg-def>
+      <function-arg-def name="storageScheme" type="optional">
+        <function-arg-description>
+          Specify the name of the password storage scheme to use when
+          encoding a clear-text password.
+        </function-arg-description>
+        <function-arg-property name="type" value="option"/>
+      </function-arg-def>      
       <function-arg-def name="dsHelp" type="optional">
         <function-arg-description>
           Display this usage information
@@ -1216,17 +1148,35 @@
         
         if dsPath:
           dsBinPath='%s/%s' % (dsPath,fileFolder) 
-          STAFCmd='%s/rebuild-index%s' % (dsBinPath,fileExt)
+          STAFCmd='%s/encode-password%s' % (dsBinPath,fileExt)
           
-        if dsBaseDN:
-          STAFCmdParamsList.append('-b "%s"' % dsBaseDN)
+        if authPwdSyntax:
+          STAFCmdParamsList.append('-a')
           
-        if dsIndexList:
-          STAFCmdParamsList.append('-i %s' % (' -i '.join(dsIndexList)))
+        if clearPwd:
+          STAFCmdParamsList.append('-c %s' % clearPwd)
+          
+        if encodedPwd:
+          STAFCmdParamsList.append('-e %s' % encodedPwd)
+          
+        if encodedPwdFile:
+          STAFCmdParamsList.append('-E %s' % encodedPwdFile)
+          
+        if clearPwdFile:
+          STAFCmdParamsList.append('-f %s' % clearPwdFile)
+          
+        if listSchemes:
+          STAFCmdParamsList.append('-l')
         
+        if useCmpRC:
+          STAFCmdParamsList.append('-r')
+
+        if storageScheme:
+          STAFCmdParamsList.append('-s %s' % storageScheme)
+          
         if dsHelp:
           STAFCmdParamsList.append('-H')
-          
+        
         if dsVersion:
           STAFCmdParamsList.append('-V')      
           
@@ -1235,7 +1185,7 @@
       
       <call function="'runCommand'">
         { 
-        'name'       : 'Rebuild index script',
+        'name'       : 'Encode password script',
         'command'    : STAFCmd,
         'arguments'  : STAFCmdParams,
         'location'   : location,
@@ -1246,11 +1196,12 @@
       <return>STAXResult</return>
     </sequence>
   </function>
-
-  <!-- This function execute the verify-index tool -->  
-  <function name="verifyIndexWithScript" scope="local">
+  
+  <!-- This function compares two LDIF files using the ldif-diff script -->
+  <function name="LdifDiffWithScript-new" scope="local">
     <function-prolog>
-      This function execute the verify-index tool
+      This function  compares two LDIF files and reports the differences
+      in LDIF format
     </function-prolog>
     <function-map-args>
       <function-arg-def name="location"
@@ -1260,7 +1211,7 @@
           Location of target host
         </function-arg-description>
         <function-arg-property name="type" value="hostname"/>
-      </function-arg-def>
+      </function-arg-def>     
       <function-arg-def name="dsPath"
                        type="optional"
                        default="'%s/%s' % (DIRECTORY_INSTANCE_DIR,OPENDSNAME)">
@@ -1269,44 +1220,145 @@
         </function-arg-description>
         <function-arg-property name="type" value="filepath"/>
       </function-arg-def>      
-      <function-arg-def name="dsBaseDN" type="required">
-        <function-arg-description>
-          Specify a back-end supporting indexing and triggers a verification 
-          of all indexes in the scope of the provided baseDN
-        </function-arg-description>
-        <function-arg-property name="type" value="dn"/>
-      </function-arg-def>
-      <function-arg-def name="dsIndexList" type="optional">
-        <function-arg-description>
-          Specify a list of indexes
-          This should be passed as a python array like
-          [ 'uid','telephonenumber' ]
-        </function-arg-description>
-        <function-arg-property name="type" value="array"/>
-      </function-arg-def>
-      <function-arg-def name="dsClean" type="optional">
-        <function-arg-description>
-          Verify that an index is clean
-        </function-arg-description>
-        <function-arg-property name="type" value="option"/>
-      </function-arg-def>
-      <function-arg-def name="dsCountErrors" type="optional">
-        <function-arg-description>
-          Count the number of errors found during the verification 
-        </function-arg-description>
-        <function-arg-property name="type" value="option"/>
-      </function-arg-def>
-      <function-arg-def name="dsHelp" type="optional">
-        <function-arg-description>
-          Display this usage information
-        </function-arg-description>
-        <function-arg-property name="type" value="option"/>
-      </function-arg-def>
       <function-arg-def name="dsVersion" type="optional">
         <function-arg-description>
           Display Directory Server version information
         </function-arg-description>
         <function-arg-property name="type" value="option"/>
+      </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="overwriteExisting" type="optional" default="True">
+        <function-arg-description>
+          Overwrite existing output file rather than append to it
+        </function-arg-description>
+        <function-arg-property name="type" value="option"/>
+      </function-arg-def>   
+      <function-arg-def name="singleValueChanges" type="optional">
+        <function-arg-description>
+          Write each attribute-level change as a separate modification 
+          per attribute value rather than one modification per entry
+        </function-arg-description>
+        <function-arg-property name="type" value="option"/>
+      </function-arg-def> 
+      <function-arg-def name="dsHelp" type="optional">
+        <function-arg-description>
+          Help option
+        </function-arg-description>
+        <function-arg-property name="help" value="option"/>
+      </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-map-args>
+    <sequence>
+      <!-- Build the Command -->
+      <script>
+        STAFCmdParamsList=[]
+        STAFCmdParams=''
+        
+        if dsPath:
+          dsBinPath='%s/%s' % (dsPath,fileFolder) 
+          STAFCmd='%s/ldif-diff%s' % (dsBinPath,fileExt)
+        
+        if dsVersion:
+          STAFCmdParamsList.append('-V')
+        
+        if sourceLdif:
+          STAFCmdParamsList.append('-s %s' % sourceLdif)
+        
+        if targetLdif:
+          STAFCmdParamsList.append('-t %s' % targetLdif)
+        
+        if outputLdif:
+          STAFCmdParamsList.append('-o %s' % outputLdif)
+        
+        if overwriteExisting:
+          STAFCmdParamsList.append('-O')
+        
+        if singleValueChanges:
+          STAFCmdParamsList.append('-S')
+        
+        if dsHelp:
+          STAFCmdParamsList.append('-H')
+        
+        STAFCmdParams=' '.join(STAFCmdParamsList)
+      </script>
+      
+      <call function="'runCommand'">
+        { 
+        'name'       : 'Ldif diff script',
+        'command'    : STAFCmd,
+        'arguments'  : STAFCmdParams,
+        'location'   : location,
+        'expectedRC' : expectedRC
+        }
+      </call>
+      
+      <return>STAXResult</return>
+    </sequence>
+  </function>
+  
+  <!-- This function execute the dsjavaproperties tool -->  
+  <function name="dsJavaPropertiesWithScript" scope="local">
+    <function-prolog>
+      This function execute the dsjavaproperties tool
+    </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="Version" type="optional">
+        <function-arg-description>
+          Display Directory Server version information
+        </function-arg-description>
+        <function-arg-property name="type" value="option"/>
+      </function-arg-def>
+      <function-arg-def name="Quiet" type="optional">
+        <function-arg-description>
+          Run dsjavaproperties in quiet mode
+          Quiet mode does not output progress information to standard output
+        </function-arg-description>
+        <function-arg-property name="type" value="option"/>
+      </function-arg-def>
+      <function-arg-def name="Help" type="optional">
+        <function-arg-description>
+          Help option
+        </function-arg-description>
+        <function-arg-property name="help" value="option"/>
       </function-arg-def>
       <function-arg-def name="expectedRC" type="optional" default="0">
         <function-arg-description>
@@ -1324,32 +1376,23 @@
         
         if dsPath:
           dsBinPath='%s/%s' % (dsPath,fileFolder) 
-          STAFCmd='%s/verify-index%s' % (dsBinPath,fileExt)
-          
-        if dsBaseDN:
-          STAFCmdParamsList.append('-b "%s"' % dsBaseDN)
-          
-        if dsIndexList:
-          STAFCmdParamsList.append('-i %s' % (' -i '.join(dsIndexList)))
-          
-        if dsClean:
-          STAFCmdParamsList.append('-c')
-          
-        if dsCountErrors:
-          STAFCmdParamsList.append('--countErrors ')
+          STAFCmd='%s/dsjavaproperties%s' % (dsBinPath,fileExt)
         
-        if dsHelp:
+        if Version:
+          STAFCmdParamsList.append('-V')
+                
+        if Quiet:
+          STAFCmdParamsList.append('-Q')
+        
+        if Help:
           STAFCmdParamsList.append('-H')
-          
-        if dsVersion:
-          STAFCmdParamsList.append('-V')      
-          
+        
         STAFCmdParams=' '.join(STAFCmdParamsList)
       </script>
       
       <call function="'runCommand'">
         { 
-        'name'      : 'Verify index script',
+        'name'       : 'dsjavaproperties script',
         'command'    : STAFCmd,
         'arguments'  : STAFCmdParams,
         'location'   : location,
@@ -1359,5 +1402,5 @@
       
       <return>STAXResult</return>
     </sequence>
-  </function>  
+  </function>
 </stax>

--
Gitblit v1.10.0