mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

Gary Williams
23.23.2012 3dfb6fc07cc7f27dc0aed5e65f2838cab253c8fb
opends/tests/staf-tests/functional-tests/testcases/replication/aci/aci.xml
@@ -24,7 +24,7 @@
 ! CDDL HEADER END
 !
 !      Copyright 2010 Sun Microsystems, Inc.
 !      Portions Copyright 2011 ForgeRock AS.
 !      Portions Copyright 2011-2012 ForgeRock AS.
 ! -->
<stax>
@@ -63,7 +63,8 @@
            file="'%s/testcases/replication/replication_setup.xml'
                  % (TESTS_DIR)"/>
          <call function="'replication_setup'">
            { 'dataFile' : 'Short_Example.ldif' }
            { 'dataFile' : 'Short_Example.ldif' ,
              'label'    : 'Replication ACI' }
          </call>
                                    
          <script>
@@ -1064,11 +1065,12 @@
            </sequence>
          </testcase>
          <import machine="STAF_LOCAL_HOSTNAME"
            file="'%s/testcases/replication/replication_cleanup.xml' 
                  % (TESTS_DIR)"/>
          <call function="'replication_cleanup'" />
          <call function="'replication_cleanup'" >
            { 'label'    : 'Replication ACI' }
          </call>
          <call function="'testSuite_Postamble'"/>
                  
opends/tests/staf-tests/functional-tests/testcases/replication/basic/basic.xml
@@ -61,7 +61,9 @@
          <import machine="STAF_LOCAL_HOSTNAME"
            file="'%s/testcases/replication/replication_setup.xml' 
              % (TESTS_DIR)"/>
          <call function="'replication_setup'" />
          <call function="'replication_setup'" >
            { 'label'    : 'Replication Basic' }
          </call>
    
          <import machine="STAF_LOCAL_HOSTNAME"
            file="'%s/testcases/replication/basic/replication_basic_setup.xml'
@@ -2048,7 +2050,9 @@
          <import machine="STAF_LOCAL_HOSTNAME"
            file="'%s/testcases/replication/replication_cleanup.xml' 
                  % (TESTS_DIR)"/>
          <call function="'replication_cleanup'" />
          <call function="'replication_cleanup'">
            { 'label'    : 'Replication Basic' }
          </call>
          <call function="'testSuite_Postamble'"/>
        
opends/tests/staf-tests/functional-tests/testcases/replication/basic/replication_basic_setup.xml
@@ -24,7 +24,7 @@
 ! CDDL HEADER END
 !
 !      Copyright 2007-2008 Sun Microsystems, Inc.
 !      Portions Copyright 2011 ForgeRock AS.
 !      Portions Copyright 2011-2012 ForgeRock AS.
 ! -->
<stax>
@@ -32,97 +32,126 @@
  <function name="replication_basic_setup">
    <sequence>
    <block name="'replication-basic-setup'">
      <testcase name="getTestCaseName('Basic Preamble')">
      <!--- Setup the client for the Basic test suite -->
      <message>
        'Replication: Basic: Setup. Get client ready for Basic tests.'
      </message>
      <script>
        synchroSuffix = master.getSynchronizedSuffixList()[0].getSuffixDn()
        entryDn = 'uid=scarter,%s' % synchroSuffix
        grandchildEntryDn = 'uid=scarter,ou=People,o=replication tests,%s' \
                            % synchroSuffix
        mod_type = 'replace'
        attr_type = 'roomnumber'
        attr_value = '1111'
      </script>
        <try>
          <sequence>
      <script>
        filename = 'replication_add_root_suffix.ldif'
        filePath = '%s/%s' % (local.temp,filename)
        write_replication_add_root_suffix_ldif_file(filePath, synchroSuffix)
      </script>
            <call function="'testCase_Preamble'"/>
      <!-- Copy the replication_add_root_suffix ldif to client host -->
      <message>
        'Copy %s file from %s to %s' % (filename,local.temp,client.getTmpDir())
      </message>
      <call function="'copyFile'">
        { 'srcfile'    : filePath,
          'destfile'   : '%s/%s' % (client.getTmpDir(),filename),
          'remotehost' : client.getHostname() }
      </call>
      <script>
        filename = 'replication_add_single.ldif'
        filePath = '%s/%s' % (local.temp,filename)
        write_replication_add_single_ldif_file(filePath, synchroSuffix)
      </script>
      <!-- Copy the replication_add_single ldif to client host -->
      <message>
        'Copy %s file from %s to %s' % (filename,local.temp,client.getTmpDir())
      </message>
      <call function="'copyFile'">
        { 'srcfile'    : filePath,
          'destfile'   : '%s/%s' % (client.getTmpDir(),filename),
          'remotehost' : client.getHostname() }
      </call>
      <script>
        filename = 'replication_add_multiple.ldif'
        filePath = '%s/%s' % (local.temp,filename)
        write_replication_add_multiple_ldif_file(filePath, synchroSuffix)
      </script>
      <!-- Copy the replication_add_multiple ldif to client host -->
      <message>
        'Copy %s file from %s to %s' % (filename,local.temp,client.getTmpDir())
      </message>
      <call function="'copyFile'">
        { 'srcfile'    : filePath,
          'destfile'   : '%s/%s' % (client.getTmpDir(),filename),
          'remotehost' : client.getHostname() }
      </call>
            <!--- Setup the client for the Basic test suite -->
            <message>
              'Replication: Basic: Setup. Get client ready for Basic tests.'
            </message>
            <script>
              synchroSuffix = master.getSynchronizedSuffixList()[0].getSuffixDn()
              entryDn = 'uid=scarter,%s' % synchroSuffix
              grandchildEntryDn = 'uid=scarter,ou=People,o=replication tests,%s' \
                                  % synchroSuffix
              mod_type = 'replace'
              attr_type = 'roomnumber'
              attr_value = '1111'
            </script>
      
      <script>
        filename = 'replication_mod.ldif'
        filePath = '%s/%s' % (local.temp,filename)
        write_replication_mod_ldif_file(filePath, entryDn, mod_type, attr_type,
                                        attr_value)
      </script>
      <!-- Copy the replication_mod ldif to client host -->
      <message>
        'Copy %s file from %s to %s' % (filename,local.temp,client.getTmpDir())
      </message>
      <call function="'copyFile'">
        { 'srcfile'    : filePath,
          'destfile'   : '%s/%s' % (client.getTmpDir(),filename),
          'remotehost' : client.getHostname()
        }
      </call>
      <call function="'checkRC'">
        { 'returncode' : RC ,
          'result'     : STAXResult
        }
      </call>
            <script>
              filename = 'replication_add_root_suffix.ldif'
              filePath = '%s/%s' % (local.temp,filename)
              write_replication_add_root_suffix_ldif_file(filePath, synchroSuffix)
            </script>
            <!-- Copy the replication_add_root_suffix ldif to client host -->
            <message>
              'Copy %s file from %s to %s' % (filename,local.temp,client.getTmpDir())
            </message>
            <call function="'copyFile'">
              { 'srcfile'    : filePath,
                'destfile'   : '%s/%s' % (client.getTmpDir(),filename),
                'remotehost' : client.getHostname() }
            </call>
            <script>
              filename = 'replication_add_single.ldif'
              filePath = '%s/%s' % (local.temp,filename)
              write_replication_add_single_ldif_file(filePath, synchroSuffix)
            </script>
            <!-- Copy the replication_add_single ldif to client host -->
            <message>
              'Copy %s file from %s to %s' % (filename,local.temp,client.getTmpDir())
            </message>
            <call function="'copyFile'">
              { 'srcfile'    : filePath,
                'destfile'   : '%s/%s' % (client.getTmpDir(),filename),
                'remotehost' : client.getHostname() }
            </call>
            <script>
              filename = 'replication_add_multiple.ldif'
              filePath = '%s/%s' % (local.temp,filename)
              write_replication_add_multiple_ldif_file(filePath, synchroSuffix)
            </script>
            <!-- Copy the replication_add_multiple ldif to client host -->
            <message>
              'Copy %s file from %s to %s' % (filename,local.temp,client.getTmpDir())
            </message>
            <call function="'copyFile'">
              { 'srcfile'    : filePath,
                'destfile'   : '%s/%s' % (client.getTmpDir(),filename),
                'remotehost' : client.getHostname() }
            </call>
            <script>
              filename = 'replication_mod.ldif'
              filePath = '%s/%s' % (local.temp,filename)
              write_replication_mod_ldif_file(filePath, entryDn, mod_type, attr_type,
                                              attr_value)
            </script>
            <!-- Copy the replication_mod ldif to client host -->
            <message>
              'Copy %s file from %s to %s' % (filename,local.temp,client.getTmpDir())
            </message>
            <call function="'copyFile'">
              { 'srcfile'    : filePath,
                'destfile'   : '%s/%s' % (client.getTmpDir(),filename),
                'remotehost' : client.getHostname()
              }
            </call>
            <call function="'checkRC'">
              { 'returncode' : RC ,
                'result'     : STAXResult
              }
            </call>
                                  
    </sequence>
              <tcstatus result="'pass'"></tcstatus>
            </sequence>
            <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 Case postamble -->
              <call function="'testCase_Postamble'"/>
            </finally>
          </try>
        </testcase>
      </block>
      
  </function>
opends/tests/staf-tests/functional-tests/testcases/replication/binarycopy/binarycopy.xml
@@ -24,7 +24,7 @@
 ! CDDL HEADER END
 !
 !      Copyright 2007-2010 Sun Microsystems, Inc.
 !      Portions Copyright 2011 ForgeRock AS.
 !      Portions Copyright 2011-2012 ForgeRock AS.
 ! -->
<stax>
  <defaultcall function="replication_binarycopy"/>
@@ -53,7 +53,9 @@
          <import machine="STAF_LOCAL_HOSTNAME"
                  file="'%s/testcases/replication/replication_setup.xml' 
                        % (TESTS_DIR)"/>
          <call function="'replication_setup'" />
          <call function="'replication_setup'" >
            { 'label'    : 'Replication Binarycopy' }
          </call>
          
          <!--- Test Case information
@@ -406,7 +408,9 @@
          <import machine="STAF_LOCAL_HOSTNAME"
                  file="'%s/testcases/replication/replication_cleanup.xml' 
                        % (TESTS_DIR)"/>
          <call function="'replication_cleanup'" />
          <call function="'replication_cleanup'" >
            { 'label'    : 'Replication Binarycopy' }
          </call>
          <call function="'testSuite_Postamble'"/>
        </sequence>
      </block>
opends/tests/staf-tests/functional-tests/testcases/replication/changelog/changelog.xml
@@ -24,7 +24,7 @@
 ! CDDL HEADER END
 !
 !      Copyright 2008-2009 Sun Microsystems, Inc.
 !      Portions Copyright 2011 ForgeRock AS.
 !      Portions Copyright 2011-2012 ForgeRock AS.
 ! -->
<stax>
    
@@ -59,7 +59,8 @@
                  file="'%s/testcases/replication/replication_setup.xml' 
                        % (TESTS_DIR)"/>
          <call function="'replication_setup'">
            { 'dataFile' : 'Example.ldif' }
            { 'dataFile' : 'Example.ldif',
              'label'    : 'Replication Changelog' }
          </call>         
@@ -1448,7 +1449,9 @@
          <import machine="STAF_LOCAL_HOSTNAME"
                  file="'%s/testcases/replication/replication_cleanup.xml' 
                        % (TESTS_DIR)"/>
          <call function="'replication_cleanup'" />
          <call function="'replication_cleanup'" >
            { 'label'    : 'Replication Changelog' }
          </call>
          <call function="'testSuite_Postamble'"/>
        </sequence>
opends/tests/staf-tests/functional-tests/testcases/replication/conflict/conflict.xml
@@ -66,7 +66,8 @@
                                      % REPLICATION_CONFIG_DIR,
              'dataFile'           : 'Short_Example.ldif',
              'isolateLdapServers' : True,
              'enableDebugLogs'    : False
              'enableDebugLogs'    : False,
              'label'              : 'Replication Conflict'
            }
          </call>
                                    
@@ -3549,7 +3550,9 @@
          <import machine="STAF_LOCAL_HOSTNAME"
            file="'%s/testcases/replication/replication_cleanup.xml' 
                  % (TESTS_DIR)"/>
          <call function="'replication_cleanup'" />
          <call function="'replication_cleanup'" >
            { 'label'    : 'Replication Conflict' }
          </call>
                          
          <call function="'testSuite_Postamble'"/>
                  
opends/tests/staf-tests/functional-tests/testcases/replication/encryption/encryption.xml
@@ -24,7 +24,7 @@
 ! CDDL HEADER END
 !
 !      Copyright 2007-2010 Sun Microsystems, Inc.
 !      Portions Copyright 2011 ForgeRock AS.
 !      Portions Copyright 2011-2012 ForgeRock AS.
 ! -->
<stax>
@@ -65,7 +65,8 @@
            { 'topologyFile'     : '%s/3server_topology.txt' \
                                    % REPLICATION_CONFIG_DIR,
              'secureReplication': True,
              'dataFile'         : 'Example.ldif'
              'dataFile'         : 'Example.ldif',
              'label'            : 'Replication Encryption'
            }
          </call>
                                    
@@ -941,7 +942,9 @@
          <import machine="STAF_LOCAL_HOSTNAME"
            file="'%s/testcases/replication/replication_cleanup.xml' 
                  % (TESTS_DIR)"/>
          <call function="'replication_cleanup'" />
          <call function="'replication_cleanup'" >
            { 'label'    : 'Replication Encryption' }
          </call>
          <call function="'testSuite_Postamble'"/>
                  
opends/tests/staf-tests/functional-tests/testcases/replication/failover/failover.xml
@@ -24,7 +24,7 @@
 ! CDDL HEADER END
 !
 !      Copyright 2007-2010 Sun Microsystems, Inc.
 !      Portions Copyright 2011 ForgeRock AS.
 !      Portions Copyright 2011-2012 ForgeRock AS.
 ! -->
<stax>
@@ -60,7 +60,8 @@
          <import machine="STAF_LOCAL_HOSTNAME"
            file="'%s/testcases/replication/replication_setup.xml' % (TESTS_DIR)"/>
          <call function="'replication_setup'">
            {  'topologyFile' : '%s/3server_topology.txt' % REPLICATION_CONFIG_DIR }
            {  'topologyFile' : '%s/3server_topology.txt' % REPLICATION_CONFIG_DIR ,
               'label'        : 'Replication Failover' }
          </call>
                                    
          <script>
@@ -528,7 +529,9 @@
                                                
          <import machine="STAF_LOCAL_HOSTNAME"
            file="'%s/testcases/replication/replication_cleanup.xml' % (TESTS_DIR)"/>
          <call function="'replication_cleanup'" />
          <call function="'replication_cleanup'" >
            { 'label' : 'Replication Failover' }
          </call>
                          
          <call function="'testSuite_Postamble'"/>
                  
opends/tests/staf-tests/functional-tests/testcases/replication/ldifimport/ldifimport.xml
@@ -24,7 +24,7 @@
 ! CDDL HEADER END
 !
 !      Copyright 2007-2010 Sun Microsystems, Inc.
 !      Portions Copyright 2011 ForgeRock AS.
 !      Portions Copyright 2011-2012 ForgeRock AS.
 ! -->
<stax>
@@ -62,7 +62,9 @@
          <import machine="STAF_LOCAL_HOSTNAME"
            file="'%s/testcases/replication/replication_setup.xml'
                  % (TESTS_DIR)"/>
          <call function="'replication_setup'" />
          <call function="'replication_setup'" >
            { 'label'    : 'Replication LDIFimport' }
          </call>
     
            
          <!--- Test Case information
@@ -420,7 +422,9 @@
          <import machine="STAF_LOCAL_HOSTNAME"
            file="'%s/testcases/replication/replication_cleanup.xml'
                  % (TESTS_DIR)"/>
          <call function="'replication_cleanup'" />
          <call function="'replication_cleanup'" >
            { 'label'    : 'Replication LDIFimport' }
          </call>
                          
          <call function="'testSuite_Postamble'"/>
                  
opends/tests/staf-tests/functional-tests/testcases/replication/replication_cleanup.xml
@@ -24,6 +24,7 @@
 ! CDDL HEADER END
 !
 !      Copyright 2007-2008 Sun Microsystems, Inc.
 !      Portions Copyright 2012 ForgeRock AS.
 ! -->
<stax>
@@ -39,84 +40,116 @@
        </function-arg-description>
        <function-arg-property name="type" value="string"/>
      </function-arg-def>
      <function-arg-def name="label"
                        type="optional"
                        default="'Replication'">
        <function-arg-description>
          Friendly label name
        </function-arg-description>
        <function-arg-property name="type" value="string"/>
      </function-arg-def>
    </function-map-args>
    <sequence>
      <block name="'replication-cleanup'">
        <sequence>
          <!-- Stop the servers in the topology -->
          <call function="'stopServers'">
            [_splitServerList]
          </call>
          <!-- Copy the server logs to the controller machine -->
          <if expr="suiteSuffix != None">
            <paralleliterate var="server" in="_splitServerList" indexvar="i">
              <sequence>
                <script>
                  suffix     = suiteSuffix + '_%s' % (i + 1)
                  serverHost = server.getHostname()
                  serverName = '%s:%s' % (serverHost, server.getPort())
                  serverPath = '%s/%s' % (server.getDir(), OPENDSNAME)
                </script>
                <message>
                  'Copy %s/logs/errors from %s to %s/errors_%s on %s' % \
                  (serverPath, serverName, logs.sut, suffix, STAXServiceMachine)
                </message>
                <call function="'copyFile'">
                  {
                    'location'   : serverHost,
                    'srcfile'    : '%s/logs/errors' % serverPath,
                    'destfile'   : '%s/errors_%s' % (logs.sut, suffix),
                    'remotehost' : STAXServiceMachine
                  }
                </call>
                <message>
                  'Copy %s/logs/access from %s to %s/access_%s on %s' % \
                  (serverPath, serverName,logs.sut, suffix, STAXServiceMachine)
                </message>
                <call function="'copyFile'">
                  {
                    'location'   : serverHost,
                    'srcfile'    : '%s/logs/access' % serverPath,
                    'destfile'   : '%s/access_%s' % (logs.sut, suffix),
                    'remotehost' : STAXServiceMachine
                  }
                </call>
                <message>
                  'Copy %s/logs/replication from %s to %s/replication_%s on %s' % \
                  (serverPath, serverName, logs.sut, suffix, STAXServiceMachine)
                </message>
                <call function="'copyFile'">
                  {
                    'location'   : serverHost,
                    'srcfile'    : '%s/logs/replication' % serverPath,
                    'destfile'   : '%s/replication_%s' % (logs.sut, suffix),
                    'remotehost' : STAXServiceMachine
                  }
                </call>
              </sequence>
            </paralleliterate>
          </if>
          <!-- Remove  the topology created for the test suite -->
          <message>
            'Remove DS topology created for the Synchronization Basic Test Suite'
          </message>
          <call function="'removeTopology'">
            { 'multipleInstanceTopology' : True }
          </call>
          <call function="'checkRC'">
            { 'returncode' : RC ,
              'result'     : STAXResult }
          </call>
        <testcase name="getTestCaseName('%s Cleanup' % label)">
        </sequence>
          <try>
            <sequence>
              <call function="'testCase_Preamble'"/>
              <!-- Stop the servers in the topology -->
              <call function="'stopServers'">
                [_splitServerList]
              </call>
              <!-- Copy the server logs to the controller machine -->
              <if expr="suiteSuffix != None">
                <paralleliterate var="server" in="_splitServerList" indexvar="i">
                  <sequence>
                    <script>
                      suffix     = suiteSuffix + '_%s' % (i + 1)
                      serverHost = server.getHostname()
                      serverName = '%s:%s' % (serverHost, server.getPort())
                      serverPath = '%s/%s' % (server.getDir(), OPENDSNAME)
                    </script>
                    <message>
                      'Copy %s/logs/errors from %s to %s/errors_%s on %s' % \
                      (serverPath, serverName, logs.sut, suffix, STAXServiceMachine)
                    </message>
                    <call function="'copyFile'">
                      {
                        'location'   : serverHost,
                        'srcfile'    : '%s/logs/errors' % serverPath,
                        'destfile'   : '%s/errors_%s' % (logs.sut, suffix),
                        'remotehost' : STAXServiceMachine
                      }
                    </call>
                    <message>
                      'Copy %s/logs/access from %s to %s/access_%s on %s' % \
                      (serverPath, serverName,logs.sut, suffix, STAXServiceMachine)
                    </message>
                    <call function="'copyFile'">
                      {
                        'location'   : serverHost,
                        'srcfile'    : '%s/logs/access' % serverPath,
                        'destfile'   : '%s/access_%s' % (logs.sut, suffix),
                        'remotehost' : STAXServiceMachine
                      }
                    </call>
                    <message>
                      'Copy %s/logs/replication from %s to %s/replication_%s on %s' % \
                      (serverPath, serverName, logs.sut, suffix, STAXServiceMachine)
                    </message>
                    <call function="'copyFile'">
                      {
                        'location'   : serverHost,
                        'srcfile'    : '%s/logs/replication' % serverPath,
                        'destfile'   : '%s/replication_%s' % (logs.sut, suffix),
                        'remotehost' : STAXServiceMachine
                      }
                    </call>
                  </sequence>
                </paralleliterate>
              </if>
              <!-- Remove  the topology created for the test suite -->
              <message>
                'Remove DS topology created for the Synchronization Basic Test Suite'
              </message>
              <call function="'removeTopology'">
                { 'multipleInstanceTopology' : True }
              </call>
              <call function="'checkRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
              </call>
              <tcstatus result="'pass'"></tcstatus>
            </sequence>
            <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 Case postamble -->
              <call function="'testCase_Postamble'"/>
            </finally>
          </try>
        </testcase>
      </block>
    
opends/tests/staf-tests/functional-tests/testcases/replication/replication_setup.xml
@@ -24,7 +24,7 @@
 ! CDDL HEADER END
 !
 !      Copyright 2007-2010 Sun Microsystems, Inc.
 !      Portions Copyright 2011 ForgeRock AS.
 !      Portions Copyright 2011-2012 ForgeRock AS.
 ! -->
<stax>
@@ -77,346 +77,332 @@
        </function-arg-description>
        <function-arg-property name="type" value="boolean"/>          
      </function-arg-def>
      <function-arg-def name="label"
                        type="optional"
                        default="'Replication'">
        <function-arg-description>
          Friendly label name
        </function-arg-description>
        <function-arg-property name="type" value="string"/>
      </function-arg-def>
    </function-map-args>    
    
    <sequence>
      <block name="'replication-setup'">
        <sequence>
          <message>
             'Create DS topology as described in %s' % topologyFile
          </message>
          <call function="'createTopology'">
            { 'topologyDescFile'        : topologyFile,
              'sharedDataFolder'        : 'replication',
              'splitReplicationServers' : globalSplitServers
            }
          </call>
          <call function="'checkRC'">
            { 'returncode' : RC ,
              'result'     : STAXResult
            }
          </call>
        <testcase name="getTestCaseName('%s Setup' % label)">
          <!-- Setup variables -->
          <script>
            client = _topologyServerList[0]
            clientHost = client.getHostname()
            clientPath = '%s/%s' % (client.getDir(),OPENDSNAME)
            server1 = _topologyServerList[0]
            server2 = _topologyServerList[1]
            master = _topologyServerList[0]
            masterHost = master.getHostname()
            masterReplicationServer = master.getChangelogServer()
            masterPath = '%s/%s' % (master.getDir(),OPENDSNAME)
            masterDataDir = '%s' % master.getDataDir()
            clientDataDir = '%s' % client.getDataDir()
            masterBackupDir = '%s' % master.getTmpDir()
            synchroSuffix = master.getSynchronizedSuffixList()[0].getSuffixDn()
            consumerList = _topologyServerList[1:]
            domainMap = STAXGlobal({})
          </script>
          <if expr="dataFile">
          <try>
            <sequence>
              <script>
                importDataFile = '%s/replication/%s' % (masterDataDir, dataFile)
              </script>
              <call function="'testCase_Preamble'"/>
              <message>
                'Import data from %s into server %s:%s' \
                % (importDataFile, masterHost, master.getPort())
                 'Create DS topology as described in %s' % topologyFile
              </message>
              <!-- Import data into "master" Directory Server -->
              <call function="'ImportLdifWithScript'">
                { 'location'     : masterHost,
                  'dsPath'       : masterPath,
                  'backEnd'      : DIRECTORY_INSTANCE_BE,
                  'ldifFile'     : importDataFile
              <call function="'createTopology'">
                { 'topologyDescFile'        : topologyFile,
                  'sharedDataFolder'        : 'replication',
                  'splitReplicationServers' : globalSplitServers
                }
              </call>
              <call function="'checkRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult
                }
              </call>
              <!-- Backup "master" server -->
              <call function="'backup'">
                { 'location'  : masterHost,
                  'dsPath'    : masterPath,
                  'backupDir' : masterBackupDir
                }
              </call>
            </sequence>
          </if>
          <!-- Start the servers in the topology -->
          <call function="'startServers'">
            [_splitServerList]
          </call>
          <if expr="len(_topologyReplServerList) != 0">
            <paralleliterate var="replServer" in="_topologyReplServerList">
              <!-- Remove userRoot backend from replication servers -->
              <sequence>
                <message>
                  'Remove userRoot backend from replication server %s:%s' % \
                  (replServer.getHostname(), replServer.getPort())
                </message>
                <call function="'dsconfig'">
                  { 'location'            : replServer.getHostname(),
                    'dsPath'              : '%s/%s' \
                                            % (replServer.getDir(),OPENDSNAME),
                    'dsInstanceHost'      : replServer.getHostname(),
                    'dsInstanceAdminPort' : replServer.getAdminPort(),
                    'dsInstanceDn'        : replServer.getRootDn(),
                    'dsInstancePswd'      : replServer.getRootPwd(),
                    'subcommand'          : 'delete-backend',
                    'objectType'          : 'backend-name',
                    'objectName'          : 'userRoot'
                  }
                </call>
              </sequence>
            </paralleliterate>
          </if>
          <iterate var="server" in="_splitServerList[1:]">
            <sequence>
              <!-- Configure replication if required so by the server
               !  (i.e. server is a changelog server and/or has synchronized
               !  suffixes)
              -->
              <if expr="server.requiresSynchronization()">
                <sequence>
                  <message>
                    'Instance requires REPLICATION configuration.'
                  </message>
                  <script>
                    if master.isOnlyLdapServer():
                      masterReplPort = None
                    else:
                      masterReplPort = masterReplicationServer.getPort()
                    if server.isOnlyLdapServer():
                      serverReplPort = None
                    else:
                      replicationServer = server.getChangelogServer()
                      serverReplPort = replicationServer.getPort()
                    if server.isOnlyReplServer():
                      suffixServer = master
                    else:
                      suffixServer = server
                    replicatedSuffixList = suffixServer.getSynchronizedSuffixList()
                    replicatedDnList = []
                    for suffix in replicatedSuffixList:
                      replicatedDnList.append(suffix.getSuffixDn())
                  </script>
                  <message>
                    'Enable replication for server:\nHost: %s\nLdap port: %s\n\
                    Replication port: %s\nReplicated DN list: %s' \
                      % (server.getHostname(), server.getPort(),
                         serverReplPort, replicatedDnList)
                  </message>
                  <call function="'enableReplication'">
                    { 'location'             : clientHost,
                      'dsPath'               : clientPath,
                      'refInstanceHost'      : masterHost,
                      'refInstanceAdminPort' : master.getAdminPort(),
                      'refInstanceDn'        : master.getRootDn(),
                      'refInstancePswd'      : master.getRootPwd(),
                      'refReplicationPort'   : masterReplPort,
                      'refSecureReplication' : secureReplication,
                      'refOnlyLdapServer'    : master.isOnlyLdapServer(),
                      'refOnlyReplServer'    : master.isOnlyReplServer(),
                      'dsInstanceHost'       : server.getHostname(),
                      'dsInstanceAdminPort'  : server.getAdminPort(),
                      'dsInstanceDn'         : server.getRootDn(),
                      'dsInstancePswd'       : server.getRootPwd(),
                      'dsReplicationPort'    : serverReplPort,
                      'dsSecureReplication'  : secureReplication,
                      'dsOnlyLdapServer'     : server.isOnlyLdapServer(),
                      'dsOnlyReplServer'     : server.isOnlyReplServer(),
                      'replicationDnList'    : replicatedDnList
                    }
                  </call>
                </sequence>
              </if>
            </sequence>
          </iterate>
          <if expr="isolateLdapServers">
            <!-- Make each Ldap Server point only to its own Replication
             !   Server.
             !   This is used by the Conflict testsuite, in order to be able
             !   to simulate conflict scenarios -->
            <paralleliterate var="server" in="_topologyServerList" indexvar="i">
              <sequence>
                <script>
                  ldapServer = '%s:%s' % (server.getHostname(),
                                          server.getPort())
                </script>
                <!-- Retrieve replication-domain name -->
                <call function="'dsconfig'">
                  { 'location'            : server.getHostname(),
                    'dsPath'              : '%s/%s' \
                                            % (server.getDir(),OPENDSNAME),
                    'dsInstanceHost'      : server.getHostname(),
                    'dsInstanceAdminPort' : server.getAdminPort(),
                    'dsInstanceDn'        : server.getRootDn(),
                    'dsInstancePswd'      : server.getRootPwd(),
                    'subcommand'          : 'list-replication-domains',
                    'objectType'          : 'provider-name',
                    'objectName'          : 'Multimaster Synchronization',
                    'optionsString'       : '--script-friendly'
                  }
                </call>
                <if expr='RC == 0'>
                  <script>
                    replicationDomains = STAXResult[0][1]
                    for line in replicationDomains.splitlines():
                      if line.find(synchroSuffix) != -1:
                        domain = line
                        domainMap[ldapServer] = domain
                        break
                  </script>
                </if>
                <script>
                  if globalSplitServers:
                    splitServer = _topologyReplServerList[i]
                    replicationServer = splitServer.getChangelogServer()
                    replServer = '%s:%s' % (splitServer.getHostname(),
                                            replicationServer.getPort())
                  else:
                    replicationServer = server.getChangelogServer()
                    replServer = '%s:%s' % (server.getHostname(),
                                            replicationServer.getPort())
              <!-- Setup variables -->
              <script>
                client = _topologyServerList[0]
                clientHost = client.getHostname()
                clientPath = '%s/%s' % (client.getDir(),OPENDSNAME)
                server1 = _topologyServerList[0]
                server2 = _topologyServerList[1]
                  
                  options = '--domain-name "%s" --set replication-server:%s' \
                            % (domainMap[ldapServer], replServer)
                </script>
                <message>
                  'Removing references to other replication servers \nfor \
                  domain: %s \nfrom server: %s \nkeep replication server: %s' \
                  % (domain, ldapServer, replServer)
                </message>
                <!-- Remove peer RS from replicated domain -->
                <call function="'dsconfig'">
                  { 'location'            : server.getHostname(),
                    'dsPath'              : '%s/%s' \
                                            % (server.getDir(),OPENDSNAME),
                    'dsInstanceHost'      : server.getHostname(),
                    'dsInstanceAdminPort' : server.getAdminPort(),
                    'dsInstanceDn'        : server.getRootDn(),
                    'dsInstancePswd'      : server.getRootPwd(),
                    'subcommand'          : 'set-replication-domain-prop',
                    'objectType'          : 'provider-name',
                    'objectName'          : 'Multimaster Synchronization',
                    'optionsString'       : options
                  }
                </call>
              </sequence>
            </paralleliterate>
          </if>
          <script>
            assuredReplication = globalAssuredReplication
          </script>
          <if expr="assuredReplication">
            <paralleliterate var="server" in="_topologyServerList">
              <sequence>
                <script>
                  ldapServer = '%s:%s' % (server.getHostname(),
                                          server.getPort())
                </script>
                master = _topologyServerList[0]
                masterHost = master.getHostname()
                masterReplicationServer = master.getChangelogServer()
                masterPath = '%s/%s' % (master.getDir(),OPENDSNAME)
                masterDataDir = '%s' % master.getDataDir()
                clientDataDir = '%s' % client.getDataDir()
                masterBackupDir = '%s' % master.getTmpDir()
                synchroSuffix = master.getSynchronizedSuffixList()[0].getSuffixDn()
                
                <if expr="isolateLdapServers">
                  <!-- this means the domainMap has already been filled up -->
                consumerList = _topologyServerList[1:]
                domainMap = STAXGlobal({})
              </script>
              <if expr="dataFile">
                <sequence>
                  <script>
                    domain = domainMap[ldapServer]
                    importDataFile = '%s/replication/%s' % (masterDataDir, dataFile)
                  </script>
                  <else>
                    <sequence>
                      <!-- Retrieve replication-domain name -->
                      <call function="'dsconfig'">
                        { 'location'            : server.getHostname(),
                          'dsPath'              : '%s/%s' \
                                                  % (server.getDir(),OPENDSNAME),
                          'dsInstanceHost'      : server.getHostname(),
                          'dsInstanceAdminPort' : server.getAdminPort(),
                          'dsInstanceDn'        : server.getRootDn(),
                          'dsInstancePswd'      : server.getRootPwd(),
                          'subcommand'          : 'list-replication-domains',
                          'objectType'          : 'provider-name',
                          'objectName'          : 'Multimaster Synchronization',
                          'optionsString'       : '--script-friendly'
                        }
                  <message>
                    'Import data from %s into server %s:%s' \
                    % (importDataFile, masterHost, master.getPort())
                  </message>
                  <!-- Import data into "master" Directory Server -->
                  <call function="'ImportLdifWithScript'">
                    { 'location'     : masterHost,
                      'dsPath'       : masterPath,
                      'backEnd'      : DIRECTORY_INSTANCE_BE,
                      'ldifFile'     : importDataFile
                    }
                  </call>
                  <!-- Backup "master" server -->
                  <call function="'backup'">
                    { 'location'  : masterHost,
                      'dsPath'    : masterPath,
                      'backupDir' : masterBackupDir
                    }
                  </call>
                </sequence>
              </if>
              <!-- Start the servers in the topology -->
              <call function="'startServers'">
                [_splitServerList]
              </call>
              <if expr="len(_topologyReplServerList) != 0">
                <paralleliterate var="replServer" in="_topologyReplServerList">
                  <!-- Remove userRoot backend from replication servers -->
                  <sequence>
                    <message>
                      'Remove userRoot backend from replication server %s:%s' % \
                      (replServer.getHostname(), replServer.getPort())
                    </message>
                    <call function="'dsconfig'">
                      { 'location'            : replServer.getHostname(),
                        'dsPath'              : '%s/%s' \
                                                % (replServer.getDir(),OPENDSNAME),
                        'dsInstanceHost'      : replServer.getHostname(),
                        'dsInstanceAdminPort' : replServer.getAdminPort(),
                        'dsInstanceDn'        : replServer.getRootDn(),
                        'dsInstancePswd'      : replServer.getRootPwd(),
                        'subcommand'          : 'delete-backend',
                        'objectType'          : 'backend-name',
                        'objectName'          : 'userRoot'
                      }
                    </call>
                  </sequence>
                </paralleliterate>
              </if>
              <iterate var="server" in="_splitServerList[1:]">
                <sequence>
                  <!-- Configure replication if required so by the server
                   !  (i.e. server is a changelog server and/or has synchronized
                   !  suffixes)
                  -->
                  <if expr="server.requiresSynchronization()">
                    <sequence>
                      <message>
                        'Instance requires REPLICATION configuration.'
                      </message>
                      <script>
                        if master.isOnlyLdapServer():
                          masterReplPort = None
                        else:
                          masterReplPort = masterReplicationServer.getPort()
                        if server.isOnlyLdapServer():
                          serverReplPort = None
                        else:
                          replicationServer = server.getChangelogServer()
                          serverReplPort = replicationServer.getPort()
                        if server.isOnlyReplServer():
                          suffixServer = master
                        else:
                          suffixServer = server
                        replicatedSuffixList = suffixServer.getSynchronizedSuffixList()
                        replicatedDnList = []
                        for suffix in replicatedSuffixList:
                          replicatedDnList.append(suffix.getSuffixDn())
                      </script>
                      <message>
                        'Enable replication for server:\nHost: %s\nLdap port: %s\n\
                        Replication port: %s\nReplicated DN list: %s' \
                          % (server.getHostname(), server.getPort(),
                             serverReplPort, replicatedDnList)
                      </message>
                      <call function="'enableReplication'">
                        { 'location'             : clientHost,
                          'dsPath'               : clientPath,
                          'refInstanceHost'      : masterHost,
                          'refInstanceAdminPort' : master.getAdminPort(),
                          'refInstanceDn'        : master.getRootDn(),
                          'refInstancePswd'      : master.getRootPwd(),
                          'refReplicationPort'   : masterReplPort,
                          'refSecureReplication' : secureReplication,
                          'refOnlyLdapServer'    : master.isOnlyLdapServer(),
                          'refOnlyReplServer'    : master.isOnlyReplServer(),
                          'dsInstanceHost'       : server.getHostname(),
                          'dsInstanceAdminPort'  : server.getAdminPort(),
                          'dsInstanceDn'         : server.getRootDn(),
                          'dsInstancePswd'       : server.getRootPwd(),
                          'dsReplicationPort'    : serverReplPort,
                          'dsSecureReplication'  : secureReplication,
                          'dsOnlyLdapServer'     : server.isOnlyLdapServer(),
                          'dsOnlyReplServer'     : server.isOnlyReplServer(),
                          'replicationDnList'    : replicatedDnList
                        }
                      </call>
                      <if expr='RC == 0'>
                        <script>
                          replicationDomains = STAXResult[0][1]
                          for line in replicationDomains.splitlines():
                            if line.find(synchroSuffix) != -1:
                              domain = line
                              domainMap[ldapServer] = domain
                              break
                        </script>
                      </if>
                    </sequence>
                  </else>
                </if>
                <script>
                  options = '--domain-name "%s" --set assured-type:%s' \
                            % (domain, assuredReplication)
                </script>
                <message>
                  'Setting replication assured-type to: %s  for server: %s \
                  domain: %s' % (assuredReplication, ldapServer, domain)
                </message>
                <!-- Set assured -->
                <call function="'dsconfig'">
                  { 'location'            : server.getHostname(),
                    'dsPath'              : '%s/%s' \
                                            % (server.getDir(),OPENDSNAME),
                    'dsInstanceHost'      : server.getHostname(),
                    'dsInstanceAdminPort' : server.getAdminPort(),
                    'dsInstanceDn'        : server.getRootDn(),
                    'dsInstancePswd'      : server.getRootPwd(),
                    'subcommand'          : 'set-replication-domain-prop',
                    'objectType'          : 'provider-name',
                    'objectName'          : 'Multimaster Synchronization',
                    'optionsString'       : options
                  }
                </call>
                <if expr="assuredReplication == 'safe-data'">
                  </if>
                </sequence>
              </iterate>
              <if expr="isolateLdapServers">
                <!-- Make each Ldap Server point only to its own Replication
                 !   Server.
                 !   This is used by the Conflict testsuite, in order to be able
                 !   to simulate conflict scenarios -->
                <paralleliterate var="server" in="_topologyServerList" indexvar="i">
                  <sequence>
                    <script>
                      assuredDataLevel = len(_topologyServerList)
                      options = '--domain-name "%s" --set assured-sd-level:%s' \
                                % (domain, assuredDataLevel)
                      ldapServer = '%s:%s' % (server.getHostname(),
                                              server.getPort())
                    </script>
                    <!-- Retrieve replication-domain name -->
                    <call function="'dsconfig'">
                      { 'location'            : server.getHostname(),
                        'dsPath'              : '%s/%s' \
                                                % (server.getDir(),OPENDSNAME),
                        'dsInstanceHost'      : server.getHostname(),
                        'dsInstanceAdminPort' : server.getAdminPort(),
                        'dsInstanceDn'        : server.getRootDn(),
                        'dsInstancePswd'      : server.getRootPwd(),
                        'subcommand'          : 'list-replication-domains',
                        'objectType'          : 'provider-name',
                        'objectName'          : 'Multimaster Synchronization',
                        'optionsString'       : '--script-friendly'
                      }
                    </call>
                    <if expr='RC == 0'>
                      <script>
                        replicationDomains = STAXResult[0][1]
                        for line in replicationDomains.splitlines():
                          if line.find(synchroSuffix) != -1:
                            domain = line
                            domainMap[ldapServer] = domain
                            break
                      </script>
                    </if>
                    <script>
                      if globalSplitServers:
                        splitServer = _topologyReplServerList[i]
                        replicationServer = splitServer.getChangelogServer()
                        replServer = '%s:%s' % (splitServer.getHostname(),
                                                replicationServer.getPort())
                      else:
                        replicationServer = server.getChangelogServer()
                        replServer = '%s:%s' % (server.getHostname(),
                                                replicationServer.getPort())
                      options = '--domain-name "%s" --set replication-server:%s' \
                                % (domainMap[ldapServer], replServer)
                    </script>
                    <message>
                      'Setting safe-data level to: %s  for server: %s \
                      domain: %s' % (assuredDataLevel, ldapServer, domain)
                      'Removing references to other replication servers \nfor \
                      domain: %s \nfrom server: %s \nkeep replication server: %s' \
                      % (domain, ldapServer, replServer)
                    </message>
                    <!-- Remove peer RS from replicated domain -->
                    <call function="'dsconfig'">
                      { 'location'            : server.getHostname(),
                        'dsPath'              : '%s/%s' \
                                                % (server.getDir(),OPENDSNAME),
                        'dsInstanceHost'      : server.getHostname(),
                        'dsInstanceAdminPort' : server.getAdminPort(),
                        'dsInstanceDn'        : server.getRootDn(),
                        'dsInstancePswd'      : server.getRootPwd(),
                        'subcommand'          : 'set-replication-domain-prop',
                        'objectType'          : 'provider-name',
                        'objectName'          : 'Multimaster Synchronization',
                        'optionsString'       : options
                      }
                    </call>
                  </sequence>
                </paralleliterate>
              </if>
              <script>
                assuredReplication = globalAssuredReplication
              </script>
              <if expr="assuredReplication">
                <paralleliterate var="server" in="_topologyServerList">
                  <sequence>
                    <script>
                      ldapServer = '%s:%s' % (server.getHostname(),
                                              server.getPort())
                    </script>
                    <if expr="isolateLdapServers">
                      <!-- this means the domainMap has already been filled up -->
                      <script>
                        domain = domainMap[ldapServer]
                      </script>
                      <else>
                        <sequence>
                          <!-- Retrieve replication-domain name -->
                          <call function="'dsconfig'">
                            { 'location'            : server.getHostname(),
                              'dsPath'              : '%s/%s' \
                                                      % (server.getDir(),OPENDSNAME),
                              'dsInstanceHost'      : server.getHostname(),
                              'dsInstanceAdminPort' : server.getAdminPort(),
                              'dsInstanceDn'        : server.getRootDn(),
                              'dsInstancePswd'      : server.getRootPwd(),
                              'subcommand'          : 'list-replication-domains',
                              'objectType'          : 'provider-name',
                              'objectName'          : 'Multimaster Synchronization',
                              'optionsString'       : '--script-friendly'
                            }
                          </call>
                          <if expr='RC == 0'>
                            <script>
                              replicationDomains = STAXResult[0][1]
                              for line in replicationDomains.splitlines():
                                if line.find(synchroSuffix) != -1:
                                  domain = line
                                  domainMap[ldapServer] = domain
                                  break
                            </script>
                          </if>
                        </sequence>
                      </else>
                    </if>
                    <script>
                      options = '--domain-name "%s" --set assured-type:%s' \
                                % (domain, assuredReplication)
                    </script>
                    <message>
                      'Setting replication assured-type to: %s  for server: %s \
                      domain: %s' % (assuredReplication, ldapServer, domain)
                    </message>
                    <!-- Set assured -->
                    <call function="'dsconfig'">
@@ -433,133 +419,179 @@
                        'optionsString'       : options
                      }
                    </call>
                    <if expr="assuredReplication == 'safe-data'">
                      <sequence>
                        <script>
                          assuredDataLevel = len(_topologyServerList)
                          options = '--domain-name "%s" --set assured-sd-level:%s' \
                                    % (domain, assuredDataLevel)
                        </script>
                        <message>
                          'Setting safe-data level to: %s  for server: %s \
                          domain: %s' % (assuredDataLevel, ldapServer, domain)
                        </message>
                        <!-- Set assured -->
                        <call function="'dsconfig'">
                          { 'location'            : server.getHostname(),
                            'dsPath'              : '%s/%s' \
                                                    % (server.getDir(),OPENDSNAME),
                            'dsInstanceHost'      : server.getHostname(),
                            'dsInstanceAdminPort' : server.getAdminPort(),
                            'dsInstanceDn'        : server.getRootDn(),
                            'dsInstancePswd'      : server.getRootPwd(),
                            'subcommand'          : 'set-replication-domain-prop',
                            'objectType'          : 'provider-name',
                            'objectName'          : 'Multimaster Synchronization',
                            'optionsString'       : options
                          }
                        </call>
                      </sequence>
                    </if>
                  </sequence>
                </if>
              </sequence>
            </paralleliterate>
          </if>
          <if expr="dataFile">
            <sequence>
              <message>
                'Initialise topology from %s:%s' \
                % (masterHost, master.getPort())
              </message>
              <!-- Initialise the servers in the topology -->
              <call function="'initializeReplication'">
                { 'location'                : clientHost,
                  'dsPath'                  : clientPath,
                  'sourceInstanceHost'      : masterHost,
                  'sourceInstanceAdminPort' : master.getAdminPort(),
                  'replicationDnList'       : [synchroSuffix]
                }
              </call>
              <if expr="0">
              <iterate var="server" in="consumerList">
                </paralleliterate>
              </if>
              <if expr="dataFile">
                <sequence>
<!--                  <call function="'initializeReplication'">
                  <message>
                    'Initialise topology from %s:%s' \
                    % (masterHost, master.getPort())
                  </message>
                  <!-- Initialise the servers in the topology -->
                  <call function="'initializeReplication'">
                    { 'location'                : clientHost,
                      'dsPath'                  : clientPath,
                      'dsInstanceHost'          : server.getHostname(),
                      'dsInstanceAdminPort'     : server.getAdminPort(),
                      'sourceInstanceHost'      : masterHost,
                      'sourceInstanceAdminPort' : master.getAdminPort(),
                      'replicationDnList'       : [synchroSuffix]
                    }
                  </call> -->
                  <!-- Search initialisation task to check its status -->
                  <call function="'ldapSearchWithScript'">
                    {
                      'location'       : server.getHostname(),
                      'dsPath'         : '%s/%s' \
                                         % (server.getDir(), OPENDSNAME),
                      'dsInstanceHost' : server.getHostname(),
                      'dsInstancePort' : server.getPort(),
                      'dsInstanceDn'   : server.getRootDn(),
                      'dsInstancePswd' : server.getRootPwd(),
                      'dsBaseDN'       : 'cn=Tasks',
                      'dsFilter'       : 'ds-task-initialize-domain-dn=%s' \
                                         % synchroSuffix
                    }
                  </call>
                  <script>
                    searchRC = STAXResult[0][0]
                    searchResult = STAXResult[0][1]
                    resultLength = len(searchResult) > 0
                  </script>
                  <if expr="resultLength != 0">
                  </call>
                  <if expr="0">
                  <iterate var="server" in="consumerList">
                    <sequence>
                      <message>
                        '++++++++ INITIALISATION TASK for %s:%s ++++++++\n%s' \
                        % (server.getHostname(), server.getPort(), searchResult)
                      </message>
    <!--                  <call function="'initializeReplication'">
                        { 'location'                : clientHost,
                          'dsPath'                  : clientPath,
                          'dsInstanceHost'          : server.getHostname(),
                          'dsInstanceAdminPort'     : server.getAdminPort(),
                          'sourceInstanceHost'      : masterHost,
                          'sourceInstanceAdminPort' : master.getAdminPort(),
                          'replicationDnList'       : [synchroSuffix]
                        }
                      </call> -->
                      <!-- Search initialisation task to check its status -->
                      <call function="'ldapSearchWithScript'">
                        {
                          'location'       : server.getHostname(),
                          'dsPath'         : '%s/%s' \
                                             % (server.getDir(), OPENDSNAME),
                          'dsInstanceHost' : server.getHostname(),
                          'dsInstancePort' : server.getPort(),
                          'dsInstanceDn'   : server.getRootDn(),
                          'dsInstancePswd' : server.getRootPwd(),
                          'dsBaseDN'       : 'cn=Tasks',
                          'dsFilter'       : 'ds-task-initialize-domain-dn=%s' \
                                             % synchroSuffix
                        }
                      </call>
                      <script>
                        searchRC = STAXResult[0][0]
                        searchResult = STAXResult[0][1]
                        resultLength = len(searchResult) > 0
                      </script>
                      <if expr="resultLength != 0">
                        <sequence>
                          <message>
                            '++++++++ INITIALISATION TASK for %s:%s ++++++++\n%s' \
                            % (server.getHostname(), server.getPort(), searchResult)
                          </message>
                        </sequence>
                      </if>
                    </sequence>
                  </iterate>
                  </if>
                </sequence>
              </iterate>
                </sequence>
              </if>
            </sequence>
          </if>
          <if expr="enableDebugLogs">
            <paralleliterate var="server" in="_topologyServerList">
              <sequence>
                <!-- Set the debug logger to "enabled" -->
                <call function="'dsconfigSet'">
                  { 'location'            : server.getHostname(),
                    'dsPath'              : '%s/%s' \
                                            % (server.getDir(),OPENDSNAME),
                    'dsInstanceHost'      : server.getHostname(),
                    'dsInstanceAdminPort' : server.getAdminPort(),
                    'dsInstanceDn'        : server.getRootDn(),
                    'dsInstancePswd'      : server.getRootPwd(),
                    'objectName'          : 'log-publisher',
                    'propertyType'        : 'publisher',
                    'propertyName'        : 'File-based Debug Logger',
                    'attributeName'       : 'enabled',
                    'attributeValue'      : 'true'
                  }
                </call>
                <!-- Set the debug level to "info" -->
                <call function="'dsconfigSet'">
                  { 'location'            : server.getHostname(),
                    'dsPath'              : '%s/%s' \
                                            % (server.getDir(),OPENDSNAME),
                    'dsInstanceHost'      : server.getHostname(),
                    'dsInstanceAdminPort' : server.getAdminPort(),
                    'dsInstanceDn'        : server.getRootDn(),
                    'dsInstancePswd'      : server.getRootPwd(),
                    'objectName'          : 'log-publisher',
                    'propertyType'        : 'publisher',
                    'propertyName'        : 'File-based Debug Logger',
                    'attributeName'       : 'default-debug-level',
                    'attributeValue'      : 'info'
                  }
                </call>
                <!-- Set the debug logger log file to "logs/errors" -->
                <call function="'dsconfigSet'">
                  { 'location'            : server.getHostname(),
                    'dsPath'              : '%s/%s' \
                                            % (server.getDir(),OPENDSNAME),
                    'dsInstanceHost'      : server.getHostname(),
                    'dsInstanceAdminPort' : server.getAdminPort(),
                    'dsInstanceDn'        : server.getRootDn(),
                    'dsInstancePswd'      : server.getRootPwd(),
                    'objectName'          : 'log-publisher',
                    'propertyType'        : 'publisher',
                    'propertyName'        : 'File-based Debug Logger',
                    'attributeName'       : 'log-file',
                    'attributeValue'      : 'logs/errors'
                  }
                </call>
              </sequence>
            </paralleliterate>
          </if>
              <if expr="enableDebugLogs">
                <paralleliterate var="server" in="_topologyServerList">
                  <sequence>
                    <!-- Set the debug logger to "enabled" -->
                    <call function="'dsconfigSet'">
                      { 'location'            : server.getHostname(),
                        'dsPath'              : '%s/%s' \
                                                % (server.getDir(),OPENDSNAME),
                        'dsInstanceHost'      : server.getHostname(),
                        'dsInstanceAdminPort' : server.getAdminPort(),
                        'dsInstanceDn'        : server.getRootDn(),
                        'dsInstancePswd'      : server.getRootPwd(),
                        'objectName'          : 'log-publisher',
                        'propertyType'        : 'publisher',
                        'propertyName'        : 'File-based Debug Logger',
                        'attributeName'       : 'enabled',
                        'attributeValue'      : 'true'
                      }
                    </call>
                    <!-- Set the debug level to "info" -->
                    <call function="'dsconfigSet'">
                      { 'location'            : server.getHostname(),
                        'dsPath'              : '%s/%s' \
                                                % (server.getDir(),OPENDSNAME),
                        'dsInstanceHost'      : server.getHostname(),
                        'dsInstanceAdminPort' : server.getAdminPort(),
                        'dsInstanceDn'        : server.getRootDn(),
                        'dsInstancePswd'      : server.getRootPwd(),
                        'objectName'          : 'log-publisher',
                        'propertyType'        : 'publisher',
                        'propertyName'        : 'File-based Debug Logger',
                        'attributeName'       : 'default-debug-level',
                        'attributeValue'      : 'info'
                      }
                    </call>
                    <!-- Set the debug logger log file to "logs/errors" -->
                    <call function="'dsconfigSet'">
                      { 'location'            : server.getHostname(),
                        'dsPath'              : '%s/%s' \
                                                % (server.getDir(),OPENDSNAME),
                        'dsInstanceHost'      : server.getHostname(),
                        'dsInstanceAdminPort' : server.getAdminPort(),
                        'dsInstanceDn'        : server.getRootDn(),
                        'dsInstancePswd'      : server.getRootPwd(),
                        'objectName'          : 'log-publisher',
                        'propertyType'        : 'publisher',
                        'propertyName'        : 'File-based Debug Logger',
                        'attributeName'       : 'log-file',
                        'attributeValue'      : 'logs/errors'
                      }
                    </call>
                  </sequence>
                </paralleliterate>
              </if>
        </sequence>
              <tcstatus result="'pass'"></tcstatus>
            </sequence>
            <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 Case postamble -->
              <call function="'testCase_Postamble'"/>
            </finally>
          </try>
        </testcase>
      </block>
    
opends/tests/staf-tests/functional-tests/testcases/replication/resynchronization/resynchronization.xml
@@ -24,7 +24,7 @@
 ! CDDL HEADER END
 !
 !      Copyright 2007-2010 Sun Microsystems, Inc.
 !      Portions Copyright 2011 ForgeRock AS.
 !      Portions Copyright 2011-2012 ForgeRock AS.
 ! -->
<stax>
  <defaultcall function="replication_resynchronization"/>
@@ -56,7 +56,8 @@
          <call function="'replication_setup'">
            { 'topologyFile' : '%s/3server_topology.txt' \
                               % REPLICATION_CONFIG_DIR,
              'dataFile'     : 'Example.ldif'
              'dataFile'     : 'Example.ldif' ,
              'label'    : 'Replication Resync'
            }
          </call>
          
@@ -830,7 +831,9 @@
          <import machine="STAF_LOCAL_HOSTNAME"
                  file="'%s/testcases/replication/replication_cleanup.xml' 
                        % (TESTS_DIR)"/>
          <call function="'replication_cleanup'" />
          <call function="'replication_cleanup'" >
            { 'label'    : 'Replication Resync' }
          </call>
          
          <call function="'testSuite_Postamble'"/>
        </sequence>
opends/tests/staf-tests/functional-tests/testcases/replication/schema/schema.xml
@@ -60,7 +60,9 @@
                                                                        
          <import machine="STAF_LOCAL_HOSTNAME"
           file="'%s/testcases/replication/replication_setup.xml' % TESTS_DIR"/>
          <call function="'replication_setup'" />
          <call function="'replication_setup'" >
            { 'label'    : 'Replication Schema' }
          </call>
                                    
          <script>
            synchroSuffix = master.getSynchronizedSuffixList()[0].getSuffixDn()    
@@ -1037,7 +1039,9 @@
                                                
          <import machine="STAF_LOCAL_HOSTNAME"
            file="'%s/testcases/replication/replication_cleanup.xml' % TESTS_DIR"/>
          <call function="'replication_cleanup'" />
          <call function="'replication_cleanup'" >
            { 'label'    : 'Replication Schema' }
          </call>
                          
          <call function="'testSuite_Postamble'"/>
                  
opends/tests/staf-tests/functional-tests/testcases/replication/totalupdate/totalupdate.xml
@@ -55,7 +55,9 @@
          <import machine="STAF_LOCAL_HOSTNAME"
            file="'%s/testcases/replication/replication_setup.xml' 
              % (TESTS_DIR)"/>
          <call function="'replication_setup'" />
          <call function="'replication_setup'" >
            { 'label'    : 'Replication Totalupdate' }
          </call>
          
          <script>
            server1DataDir = '%s' % server1.getDataDir()
@@ -544,7 +546,9 @@
          <import machine="STAF_LOCAL_HOSTNAME"
            file="'%s/testcases/replication/replication_cleanup.xml' 
                 % (TESTS_DIR)"/>
          <call function="'replication_cleanup'" />
          <call function="'replication_cleanup'" >
            { 'label'    : 'Replication Totalupdate' }
          </call>
          
          <call function="'testSuite_Postamble'"/>
        </sequence>