From 9dc10dec2d5d7f61116f7f647b7cf9596ca77be0 Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Fri, 05 Jun 2009 09:04:50 +0000
Subject: [PATCH] svn merge -r5333:5417 https://opends.dev.java.net/svn/opends/branches/b2.0

---
 opendj-sdk/opends/tests/staf-tests/shared/functions/topology.xml |  324 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 324 insertions(+), 0 deletions(-)

diff --git a/opendj-sdk/opends/tests/staf-tests/shared/functions/topology.xml b/opendj-sdk/opends/tests/staf-tests/shared/functions/topology.xml
index aa0b3c2..8d77d94 100755
--- a/opendj-sdk/opends/tests/staf-tests/shared/functions/topology.xml
+++ b/opendj-sdk/opends/tests/staf-tests/shared/functions/topology.xml
@@ -2222,4 +2222,328 @@
     </sequence>
   </function>    
     
+  <function name="common_setup" scope="local">
+    <function-prolog>
+      This function helps to perform a common setup and data load of directory server.  
+    </function-prolog>
+    <function-map-args>
+      <function-arg-def name="directoryServer" type="optional" default="server">
+        <function-arg-description>
+          The directory server object instance
+        </function-arg-description>
+        <function-arg-property name="type" value="boolean"/>
+     </function-arg-def>
+     <function-arg-def name="quickStart" type="optional" default="True">
+        <function-arg-description>
+          Perform a quick start of the server with preloaded data
+        </function-arg-description>
+        <function-arg-property name="type" value="boolean"/>
+     </function-arg-def>
+      <function-arg-def name="loadData" type="optional" default="True">
+        <function-arg-description>
+          Load data into the server
+        </function-arg-description>
+        <function-arg-property name="type" value="boolean"/>
+     </function-arg-def>
+     <function-arg-def name="startServer" type="optional" default="True">
+        <function-arg-description>
+          Start the server
+        </function-arg-description>
+        <function-arg-property name="type" value="boolean"/>
+     </function-arg-def>
+     <function-arg-def name="stopServer" type="optional" default="True">
+        <function-arg-description>
+          Stop the server
+        </function-arg-description>
+        <function-arg-property name="type" value="boolean"/>
+     </function-arg-def>
+     <function-arg-def name="ldifFile" type="optional" default="''">
+        <function-arg-description>
+          Path and name of the ldif file to be used to add entries
+        </function-arg-description>
+        <function-arg-property name="type" value="structure"/>
+      </function-arg-def>    
+     <function-arg-def name="allowPreEncodePassword" type="optional" default="False">
+        <function-arg-description>
+          Allow pre-encoded passwords to be added
+        </function-arg-description>
+        <function-arg-property name="boolean" value="True|False"/>
+      </function-arg-def>
+    </function-map-args>
+    <sequence>
+
+      <block name="'common-setup'">
+
+        <testcase name="getTestCaseName('Common Setup')">
+
+          <try>      
+        
+            <sequence>
+
+              <call function="'testCase_Preamble'"/>
+              
+              <!-- Create the topology necessary to the test group/suite -->                
+              <call function="'runFunction'">
+                { 'functionName'      : 'createTopology'                  ,
+                  'functionMessage'   : 'Create DS topology'              ,
+                  'functionException' : 'Server.CreateTopologyException'  ,
+                  'functionArguments' : { 'initialiseInstance' : quickStart }
+                }
+              </call>
+
+              <if expr="startServer == True">
+                <sequence>
+                  <!-- Start the OpenDS Server -->                  
+                  <call function="'runFunction'">
+                    { 'functionName'      : 'StartDsWithScript'                   ,
+                      'functionMessage'   : 'Start the Directory Server.'         ,
+                      'functionException' : 'Server.StartException'               ,
+                      'functionArguments' : { 'location' : directoryServer.location }
+                    }
+                  </call>
+      
+                  <!--- Check that DS started -->
+                  <call function="'runFunction'">
+                    { 'functionName'      : 'isAlive'                       ,
+                      'functionMessage'   : 'Start the Directory Server.'   ,
+                      'functionException' : 'Server.StartException'         ,
+                      'functionArguments' : { 'noOfLoops'        : 100      ,
+                                              'noOfMilliSeconds' : 3000 }
+                    }
+                  </call>
+                </sequence>  
+              </if>
+
+              <if expr="loadData == True and ldifFile">
+                <sequence>                                                      
+
+                  <if expr="allowPreEncodePassword == True">
+                    <call function="'dsconfigSet'">
+                      { 
+                        'dsInstanceHost'         : directoryServer.host,
+                        'dsInstanceAdminPort'    : directoryServer.adminport,
+                        'dsInstanceDn'           : directoryServer.dn,
+                        'dsInstancePswd'         : directoryServer.password,
+                        'objectName'             : 'password-policy',
+                        'propertyType'           : 'policy',
+                        'propertyName'           : 'Default Password Policy',
+                        'attributeName'          : 'allow-pre-encoded-passwords',
+                        'attributeValue'         : 'true'
+                      }
+                    </call>
+                  </if>
+                  
+                  <!-- Load the data needed by the test suite -->
+                  <call function="'runFunction'">
+                    { 'functionName'      : 'ldapModifyWithScript' ,
+                      'functionMessage'   : 'Adding Initial Entries' ,
+                      'functionException' : 'LDAP.ModifyException'  ,
+                      'functionArguments' : { 'dsAdd'            : 'TRUE' ,
+                                              'dsInstanceHost'   : directoryServer.host ,
+                                              'dsInstancePort'   : directoryServer.port ,
+                                              'dsInstanceDn'     : directoryServer.dn ,
+                                              'dsInstancePswd'   : directoryServer.password ,
+                                              'dsFilename'       : ldifFile }
+                    }  
+                  </call>
+                </sequence>
+              </if>                 
+
+              <if expr="stopServer == True">
+                <sequence>
+                  <!-- Stop the OpenDS Server -->                  
+                  <call function="'runFunction'">
+                    { 'functionName'      : 'StopDsWithScript'                   ,
+                      'functionMessage'   : 'Start the Directory Server.'         ,
+                      'functionException' : 'Server.StopException'               ,
+                      'functionArguments' : { 'location' : directoryServer.location }
+                    }
+                  </call>
+                </sequence>
+              </if>
+              
+            </sequence>        
+
+            <catch exception="'STAXException.Server.CreateTopologyException'" typevar="eType" var="eInfo">
+              <sequence>
+              <message log="1" level="'fatal'">
+                '%s: Create topology failed. eInfo(%s)' % (eType,eInfo)
+              </message>
+              <throw exception="'STAFException.TestSuite.SetupException'" />
+              </sequence>
+            </catch>
+  
+            <catch exception="'STAXException.Server.StartException'" typevar="eType" var="eInfo">
+              <sequence>
+              <message log="1" level="'fatal'">
+                '%s: Failed to start Directory Server. eInfo(%s)' % (eType,eInfo)
+              </message>
+              <throw exception="'STAFException.TestSuite.SetupException'" />
+              </sequence>
+            </catch>
+
+            <catch exception="'STAXException.Server.StopException'" typevar="eType" var="eInfo">
+              <sequence>
+              <message log="1" level="'fatal'">
+                '%s: Failed to stop Directory Server. eInfo(%s)' % (eType,eInfo)
+              </message>
+              <throw exception="'STAFException.TestSuite.SetupException'" />
+              </sequence>
+            </catch>
+  
+            <catch exception="'STAXException.LDAP.ModifyException'" typevar="eType" var="eInfo">
+              <sequence>
+              <message log="1" level="'fatal'">
+                '%s: LDAPModify failed. eInfo(%s)' % (eType,eInfo)
+              </message>
+              <throw exception="'STAFException.TestSuite.SetupException'" />
+              </sequence>
+            </catch>          
+  
+            <finally>
+              <!-- Test Group postamble -->
+              <sequence>
+                <call function="'testCase_Postamble'"/>
+              </sequence>
+            </finally>
+  
+          </try>
+
+        </testcase>                     
+
+      </block>
+            
+     </sequence>
+
+  </function>
+
+  <function name="common_cleanup" scope="local">
+    <function-prolog>
+      This function helps to perform a common cleanup of directory server and its data.  
+    </function-prolog>
+    <function-map-args>
+      <function-arg-def name="directoryServer" type="optional" default="server">
+        <function-arg-description>
+          The directory server object instance
+        </function-arg-description>
+        <function-arg-property name="type" value="boolean"/>
+     </function-arg-def>
+     <function-arg-def name="deleteSuffix" type="optional" default="True">
+        <function-arg-description>
+          Delete the suffix that holds the directory data
+        </function-arg-description>
+        <function-arg-property name="type" value="boolean"/>
+     </function-arg-def>
+   </function-map-args>
+    <sequence>
+
+      <block name="'common-cleanup'">
+
+        <testcase name="getTestCaseName('Common Cleanup')">
+
+          <try>
+          
+            <sequence>
+              <call function="'testCase_Preamble'"/>
+
+              <call function="'runFunction'">
+                { 'functionName'      : 'ldapSearchWithScript'                ,
+                  'functionMessage'   : 'Check Server is Alive.'              ,
+                  'functionArguments' : { 'dsInstanceHost' : directoryServer.host      ,
+                                          'dsInstancePort' : directoryServer.port      ,
+                                          'dsBaseDN'       : 'cn=config'      ,
+                                          'dsInstanceDn'   : directoryServer.dn        ,
+                                          'dsInstancePswd' : directoryServer.password  ,
+                                          'dsFilter'       : 'objectclass=*'  ,
+                                          'dsScope'        : 'base'           ,
+                                          'expectedRC'     : 'noCheck'
+                                      }
+                }
+              </call>
+  
+              <script>
+                _returncode=int(STAXResult[0])
+              </script>
+
+              <if expr="deleteSuffix == True">
+                <sequence>
+                  <!-- If directoryServer is not running we have to restart it -->
+                  <if expr="_returncode == 91">
+            
+                      <call function="'runFunction'">
+                        { 'functionName'      : 'StartDsWithScript'                   ,
+                          'functionMessage'   : 'Start the Directory Server.'         ,
+                          'functionArguments' : { 'expectedRC' : 'noCheck' }
+                        }
+                      </call>              
+                  </if>
+  
+                  <call function="'runFunction'">
+                    { 'functionName'      : 'ldapDeleteWithScript'                          ,
+                      'functionMessage'   : 'Recursive delete of suffix.'                   ,
+                      'functionArguments' : { 'dsDeleteSubtree' : 'TRUE'                    ,
+                                              'dsInstanceHost'  : directoryServer.host      ,
+                                              'dsInstancePort'  : directoryServer.port      ,
+                                              'dsInstanceDn'    : directoryServer.dn        ,
+                                              'dsInstancePswd'  : directoryServer.password  ,
+                                              'dsDn'            : ['%s' % server.suffix]    ,
+                                              'expectedRC'      : 'noCheck' }
+                    }
+                  </call>
+                </sequence>
+              </if>
+
+              <call function="'runFunction'">
+                { 'functionName'      : 'StopDsWithScript'                          ,
+                  'functionMessage'   : 'Stop the Directory Server.'                ,
+                  'functionArguments' : { 'dsHost'      : directoryServer.host      ,
+                                          'dsAdminPort' : directoryServer.adminport ,
+                                          'dsBindDN'    : directoryServer.dn        ,
+                                          'dsBindPwd'   : directoryServer.password  ,
+                                          'expectedRC'  : 'noCheck' }
+                }
+              </call>
+
+              <call function="'runFunction'">
+                { 'functionName'      : 'removeTopology'      ,
+                  'functionMessage'   : 'Remove DS topology.' ,
+                }
+              </call>
+
+              <tcstatus result="'pass'"></tcstatus>                      
+
+            </sequence> 
+
+            <catch exception="'STAXException.LDAP.DeleteException'" typevar="eType" var="eInfo">
+              <sequence>
+              <message log="1" level="'fatal'">
+                '%s: LDAPDelete failed. eInfo(%s)' % (eType,eInfo)
+              </message>
+              <throw exception="'STAFException.TestSuite.CleanupException'" />
+              </sequence>
+            </catch>
+  
+            <catch exception="'STAXException'" typevar="eType" var="eInfo">
+              <sequence>
+              <message log="1" level="'fatal'">
+                '%s: Failed to cleanup. eInfo(%s)' % (eType,eInfo)
+              </message>
+              <throw exception="'STAFException.TestSuite.CleanupException'" />
+              </sequence>
+            </catch>
+            <finally>
+              <!-- Test Group postamble -->
+              <call function="'testCase_Postamble'"/>
+            </finally>
+  
+          </try>        
+
+        </testcase>
+
+      </block>
+
+     </sequence>
+
+  </function>
+     
 </stax>

--
Gitblit v1.10.0