| | |
| | | ! Common Development and Distribution License, Version 1.0 only |
| | | ! (the "License"). You may not use this file except in compliance |
| | | ! with the License. |
| | | ! |
| | | ! |
| | | ! You can obtain a copy of the license at |
| | | ! trunk/opends/resource/legal-notices/OpenDS.LICENSE |
| | | ! or https://OpenDS.dev.java.net/OpenDS.LICENSE. |
| | | ! trunk/opends/resource/legal-notices/CDDLv1_0.txt |
| | | ! or http://forgerock.org/license/CDDLv1.0.html. |
| | | ! See the License for the specific language governing permissions |
| | | ! and limitations under the License. |
| | | ! |
| | | ! |
| | | ! When distributing Covered Code, include this CDDL HEADER in each |
| | | ! file and include the License file at |
| | | ! trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, |
| | | ! trunk/opends/resource/legal-notices/CDDLv1_0.txt. If applicable, |
| | | ! add the following below this CDDL HEADER, with the fields enclosed |
| | | ! by brackets "[]" replaced with your own identifying information: |
| | | ! Portions Copyright [yyyy] [name of copyright owner] |
| | | ! |
| | | ! CDDL HEADER END |
| | | ! |
| | | ! Copyright 2007-2010 Sun Microsystems, Inc. |
| | | ! Portions Copyright 2011-2012 ForgeRock AS. |
| | | ! Copyright 2012 ForgeRock AS. |
| | | ! --> |
| | | <stax> |
| | | |
| | | <defaultcall function="replication_failover"/> |
| | | |
| | | <function name="replication_failover"> |
| | | |
| | | <function name="replication_failover" scope="local"> |
| | | <sequence> |
| | | |
| | | <block name="'failover'"> |
| | | |
| | | <sequence> |
| | | |
| | | <script> |
| | | if not CurrentTestPath.has_key('group'): |
| | | CurrentTestPath['group']='replication' |
| | | CurrentTestPath['suite']=STAXCurrentBlock |
| | | </script> |
| | | |
| | | <call function="'testSuite_Preamble'"/> |
| | | |
| | | <!--- Test Suite information |
| | | #@TestSuiteName Replication Failover Tests |
| | | #@TestSuitePurpose Verify that the failover of a replication server does not affect replication. |
| | | #@TestSuiteID Failover Tests |
| | | #@TestSuiteGroup Failover |
| | | #@TestGroup Replication |
| | | #@TestScript replication_failover.xml |
| | | #@TestHTMLLink http://opends.dev.java.net/ |
| | | --> |
| | | |
| | | |
| | | <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 , |
| | | 'label' : 'Replication Failover' } |
| | | </call> |
| | | |
| | | <script> |
| | | synchroSuffix = master.getSynchronizedSuffixList()[0].getSuffixDn() |
| | | </script> |
| | | |
| | | |
| | | <!-- Load entries into "master" server --> |
| | | <!-- Stop "master" Directory Server --> |
| | | <call function="'StopDsWithScript'"> |
| | | { 'location' : masterHost, |
| | | 'dsPath' : masterPath, |
| | | 'dsHost' : masterHost, |
| | | 'dsAdminPort' : master.getAdminPort(), |
| | | 'dsBindDN' : master.getRootDn(), |
| | | 'dsBindPwd' : master.getRootPwd(), |
| | | 'noOfLoops' : 30 |
| | | } |
| | | </call> |
| | | <block name="'replication_failover'"> |
| | | <try> |
| | | <sequence> |
| | | <script> |
| | | CurrentTestPath['group'] = 'replication' |
| | | CurrentTestPath['suite'] = 'failover' |
| | | |
| | | <!-- Import data into "master" Directory Server --> |
| | | <call function="'ImportLdifWithScript'"> |
| | | { 'location' : masterHost, |
| | | 'dsPath' : masterPath, |
| | | 'backEnd' : DIRECTORY_INSTANCE_BE, |
| | | 'ldifFile' : '%s/replication/Example.ldif' % masterDataDir |
| | | } |
| | | </call> |
| | | _group=CurrentTestPath['group'] |
| | | _groupdir='%s/testcases/%s' % (TESTS_DIR,_group) |
| | | _label = 'Replication Failover' |
| | | </script> |
| | | |
| | | <!-- Start the Directory Server --> |
| | | <call function="'StartDsWithScript'"> |
| | | { 'location' : masterHost, |
| | | 'dsPath' : masterPath |
| | | } |
| | | </call> |
| | | |
| | | <!-- Wait for DS to start --> |
| | | <call function="'isAlive'"> |
| | | { 'location' : masterHost, |
| | | 'dsPath' : masterPath, |
| | | 'dsInstanceHost' : masterHost, |
| | | 'dsInstancePort' : master.getPort() , |
| | | 'dsInstanceDn' : master.getRootDn() , |
| | | 'dsInstancePswd' : master.getRootPwd() , |
| | | 'noOfLoops' : 10 , |
| | | 'noOfMilliSeconds' : 2000 |
| | | } |
| | | </call> |
| | | |
| | | <!-- Initialise the servers in the topology --> |
| | | <!-- |
| | | <call function="'initializeReplication'"> |
| | | { 'location' : clientHost, |
| | | 'dsPath' : clientPath, |
| | | 'sourceInstanceHost' : masterHost, |
| | | 'sourceInstanceAdminPort' : master.getAdminPort(), |
| | | 'replicationDnList' : ['o=example'] |
| | | } |
| | | </call> |
| | | --> |
| | | <iterate var="server" in="consumerList"> |
| | | <!-- Perform the total update --> |
| | | <call function="'initializeReplication'"> |
| | | { 'location' : clientHost, |
| | | 'dsPath' : clientPath, |
| | | 'dsInstanceHost' : server.getHostname(), |
| | | 'dsInstanceAdminPort' : server.getAdminPort(), |
| | | 'sourceInstanceHost' : masterHost, |
| | | 'sourceInstanceAdminPort' : master.getAdminPort(), |
| | | 'replicationDnList' : ['o=example'] |
| | | } |
| | | </call> |
| | | </iterate> |
| | | |
| | | |
| | | <!--- Test Case information |
| | | #@TestMarker Replication Failover Tests |
| | | #@TestName Replication: Failover: One server down (stopped) |
| | | #@TestID One server down (stopped) |
| | | #@TestPurpose Check replication when one server is off-line |
| | | #@TestPreamble |
| | | #@TestSteps |
| | | #@TestPostamble |
| | | #@TestResult |
| | | --> |
| | | <testcase name="getTestCaseName('One server down (stopped)')"> |
| | | <sequence> |
| | | <call function="'testCase_Preamble'"/> |
| | | <message> |
| | | 'Replication: Failover: One server down (stopped). Check replication when one server is off-line ' |
| | | </message> |
| | | |
| | | <iterate var="server" in="_topologyServerList" indexvar="i"> |
| | | <sequence> |
| | | |
| | | <script> |
| | | serverPath = '%s/%s' % (server.getDir(), OPENDSNAME) |
| | | nbOfServers = len(_topologyServerList) |
| | | nextServer = _topologyServerList[(i + 1) % nbOfServers] |
| | | nextServerPath = '%s/%s' % (nextServer.getDir(), OPENDSNAME) |
| | | userDn = 'uid=iabizen-%s, ou=People, %s' % (i, synchroSuffix) |
| | | |
| | | if globalSplitServers: |
| | | replServer = _topologyReplServerList[i] |
| | | else: |
| | | replServer = server |
| | | |
| | | replServerPath = '%s/%s' % (replServer.getDir(), OPENDSNAME) |
| | | </script> |
| | | |
| | | <!-- Stop server (simulate failover?) --> |
| | | <call function="'StopDsWithScript'"> |
| | | { 'location' : server.getHostname(), |
| | | 'dsPath' : serverPath, |
| | | 'dsHost' : server.getHostname(), |
| | | 'dsAdminPort' : server.getAdminPort(), |
| | | 'dsBindDN' : server.getRootDn(), |
| | | 'dsBindPwd' : server.getRootPwd(), |
| | | 'noOfLoops' : 30 |
| | | } |
| | | </call> |
| | | <if expr="globalSplitServers"> |
| | | <call function="'StopDsWithScript'"> |
| | | { 'location' : replServer.getHostname(), |
| | | 'dsPath' : replServerPath, |
| | | 'dsHost' : replServer.getHostname(), |
| | | 'dsAdminPort' : replServer.getAdminPort(), |
| | | 'dsBindDN' : replServer.getRootDn(), |
| | | 'dsBindPwd' : replServer.getRootPwd(), |
| | | 'noOfLoops' : 30 |
| | | } |
| | | </call> |
| | | </if> |
| | | |
| | | <!-- Add entry to one of the other servers --> |
| | | <script> |
| | | listAttr = [] |
| | | listAttr.append('objectclass:top') |
| | | listAttr.append('objectclass:organizationalperson') |
| | | listAttr.append('objectclass:inetorgperson') |
| | | listAttr.append('objectclass:person') |
| | | listAttr.append('givenname:Izen-%s' % i) |
| | | listAttr.append('sn:Abizen-%s' % i) |
| | | listAttr.append('cn:Izen-%s Abizen-%s' % (i, i)) |
| | | </script> |
| | | |
| | | <call function="'addAnEntry'"> |
| | | { 'location' : nextServer.getHostname(), |
| | | 'dsPath' : nextServerPath, |
| | | 'dsInstanceHost' : nextServer.getHostname(), |
| | | 'dsInstancePort' : nextServer.getPort(), |
| | | 'dsInstanceDn' : nextServer.getRootDn(), |
| | | 'dsInstancePswd' : nextServer.getRootPwd(), |
| | | 'DNToAdd' : userDn, |
| | | 'listAttributes' : listAttr, |
| | | 'expectedRC' : 0 |
| | | } |
| | | </call> |
| | | |
| | | <!-- Start the server again --> |
| | | <call function="'StartDsWithScript'"> |
| | | { 'location' : server.getHostname(), |
| | | 'dsPath' : serverPath |
| | | } |
| | | </call> |
| | | <if expr="globalSplitServers"> |
| | | <call function="'StartDsWithScript'"> |
| | | { 'location' : replServer.getHostname(), |
| | | 'dsPath' : replServerPath |
| | | } |
| | | </call> |
| | | </if> |
| | | </sequence> |
| | | </iterate> |
| | | |
| | | |
| | | <!-- Verify the synchronization of the trees among the servers in the topology --> |
| | | <call function="'verifyTrees'"> |
| | | [ clientHost, clientPath, master, consumerList, synchroSuffix ] |
| | | </call> |
| | | |
| | | <call function="'testCase_Postamble'"/> |
| | | </sequence> |
| | | </testcase> |
| | | |
| | | |
| | | |
| | | <!--- Test Case information |
| | | #@TestMarker Replication Failover Tests |
| | | #@TestName Replication: Failover: All but one servers down (stopped) |
| | | #@TestID All but one servers down (stopped) |
| | | #@TestPurpose Check replication when all but one servers are off-line |
| | | #@TestPreamble |
| | | #@TestSteps |
| | | #@TestPostamble |
| | | #@TestResult |
| | | --> |
| | | <testcase name="getTestCaseName('All but one servers down (stopped)')"> |
| | | <sequence> |
| | | <call function="'testCase_Preamble'"/> |
| | | <message> |
| | | 'Replication: Failover: All but one servers down (stopped). Check replication when all but one servers are off-line' |
| | | </message> |
| | | |
| | | <!-- Stop the "consumer" servers --> |
| | | <call function="'stopServers'"> |
| | | [consumerList, 30] |
| | | </call> |
| | | <if expr="globalSplitServers"> |
| | | <call function="'stopServers'"> |
| | | [_topologyReplServerList[1:], 30] |
| | | </call> |
| | | </if> |
| | | |
| | | |
| | | <!-- Add entry to master servers --> |
| | | <script> |
| | | userDn = 'uid=iabizen-berri, ou=People, %s' % synchroSuffix |
| | | <!--- Test Suite information |
| | | #@TestSuiteName Replication Failover Tests |
| | | #@TestSuitePurpose Verify that the total-update operations are replicated |
| | | correctly between two servers. |
| | | #@TestSuiteID Failover Tests |
| | | #@TestSuiteGroup Failover |
| | | #@TestGroup Replication |
| | | #@TestScript replication_failover.xml |
| | | #@TestHTMLLink http://www.forgerock.org/ |
| | | --> |
| | | |
| | | listAttr = [] |
| | | listAttr.append('objectclass:top') |
| | | listAttr.append('objectclass:organizationalperson') |
| | | listAttr.append('objectclass:inetorgperson') |
| | | listAttr.append('objectclass:person') |
| | | listAttr.append('givenname:Izen-berri') |
| | | listAttr.append('sn:Abizen-berri') |
| | | listAttr.append('cn:Izen-berri Abizen-berri') |
| | | </script> |
| | | |
| | | <call function="'addAnEntry'"> |
| | | { 'location' : masterHost, |
| | | 'dsPath' : masterPath, |
| | | 'dsInstanceHost' : masterHost, |
| | | 'dsInstancePort' : master.getPort(), |
| | | 'dsInstanceDn' : master.getRootDn(), |
| | | 'dsInstancePswd' : master.getRootPwd(), |
| | | 'DNToAdd' : userDn, |
| | | 'listAttributes' : listAttr, |
| | | 'expectedRC' : 0 |
| | | } |
| | | </call> |
| | | <call function="'testSuite_Preamble'"/> |
| | | |
| | | <!-- Start the "consumer" servers --> |
| | | <call function="'startServers'"> |
| | | [consumerList] |
| | | </call> |
| | | <if expr="globalSplitServers"> |
| | | <call function="'startServers'"> |
| | | [_topologyReplServerList[1:]] |
| | | <try> |
| | | <sequence> |
| | | |
| | | <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 , |
| | | 'label' : _label } |
| | | </call> |
| | | </if> |
| | | |
| | | |
| | | <!-- Verify the synchronization of the trees among the servers in the topology --> |
| | | <call function="'verifyTrees'"> |
| | | [ clientHost, clientPath, master, consumerList, synchroSuffix ] |
| | | </call> |
| | | |
| | | <!-- List of Import of Test Functions --> |
| | | <script> |
| | | importList=[] |
| | | importList.append('failover/failover_tests') |
| | | </script> |
| | | |
| | | <!-- Import the files for this test suite --> |
| | | <iterate var="_import" in="importList"> |
| | | <import machine="STAF_LOCAL_HOSTNAME" |
| | | file="'%s/%s.xml' % (_groupdir,_import)"/> |
| | | </iterate> |
| | | |
| | | <!-- Specific to replication tests --> |
| | | <script> |
| | | msg1 = 'Replication: Failover:' |
| | | </script> |
| | | |
| | | <!-- List of Test Cases --> |
| | | <script> |
| | | testsList=[] |
| | | testsList.append('replication_failover_001') |
| | | testsList.append('replication_failover_002') |
| | | testsList.append('replication_failover_003') |
| | | testsList.append('replication_failover_004') |
| | | testsList.append('replication_failover_005') |
| | | </script> |
| | | |
| | | <!-- Execute the Tests --> |
| | | <iterate var="__test" in="testsList"> |
| | | <sequence> |
| | | <call function="'%s' % (__test)" /> |
| | | </sequence> |
| | | </iterate> |
| | | |
| | | <call function="'testCase_Postamble'"/> |
| | | </sequence> |
| | | </testcase> |
| | | |
| | | </sequence> |
| | | |
| | | |
| | | |
| | | |
| | | <!--- Test Case information |
| | | #@TestMarker Replication Failover Tests |
| | | #@TestName Replication: Failover: One server down (killed) |
| | | #@TestID One server down (killed) |
| | | #@TestPurpose Check replication when one server fails |
| | | #@TestPreamble |
| | | #@TestSteps |
| | | #@TestPostamble |
| | | #@TestResult |
| | | --> |
| | | <testcase name="getTestCaseName('One server down (killed)')"> |
| | | <sequence> |
| | | <call function="'testCase_Preamble'"/> |
| | | <message> |
| | | 'Replication: Failover: One server down (killed). Check replication when one server fails' |
| | | </message> |
| | | |
| | | <iterate var="server" in="_topologyServerList" indexvar="i"> |
| | | <catch exception="'STAFException.TestSuite.SetupException'"> |
| | | <sequence> |
| | | |
| | | <script> |
| | | serverPath = '%s/%s' % (server.getDir(), OPENDSNAME) |
| | | nbOfServers = len(_topologyServerList) |
| | | nextServer = _topologyServerList[(i + 1) % nbOfServers] |
| | | nextServerPath = '%s/%s' % (nextServer.getDir(), OPENDSNAME) |
| | | userDn = 'uid=ideiturak-%s, ou=People, %s' % (i, synchroSuffix) |
| | | |
| | | if globalSplitServers: |
| | | replServer = _topologyReplServerList[i] |
| | | else: |
| | | replServer = server |
| | | |
| | | replServerPath = '%s/%s' % (replServer.getDir(), OPENDSNAME) |
| | | </script> |
| | | |
| | | <!-- Kill server (simulate failover?) --> |
| | | <call function="'killDs'"> |
| | | { 'location' : server.getHostname(), |
| | | 'dsPath' : serverPath |
| | | } |
| | | </call> |
| | | <if expr="globalSplitServers"> |
| | | <call function="'killDs'"> |
| | | { 'location' : replServer.getHostname(), |
| | | 'dsPath' : replServerPath |
| | | } |
| | | </call> |
| | | </if> |
| | | |
| | | <!-- Add entry to one of the other servers --> |
| | | <script> |
| | | listAttr = [] |
| | | listAttr.append('objectclass:top') |
| | | listAttr.append('objectclass:organizationalperson') |
| | | listAttr.append('objectclass:inetorgperson') |
| | | listAttr.append('objectclass:person') |
| | | listAttr.append('givenname:Izen-%s' % i) |
| | | listAttr.append('sn:Deiturak-%s' % i) |
| | | listAttr.append('cn:Izen-%s Deiturak-%s' % (i, i)) |
| | | </script> |
| | | |
| | | <call function="'addAnEntry'"> |
| | | { 'location' : nextServer.getHostname(), |
| | | 'dsPath' : nextServerPath, |
| | | 'dsInstanceHost' : nextServer.getHostname(), |
| | | 'dsInstancePort' : nextServer.getPort(), |
| | | 'dsInstanceDn' : nextServer.getRootDn(), |
| | | 'dsInstancePswd' : nextServer.getRootPwd(), |
| | | 'DNToAdd' : userDn, |
| | | 'listAttributes' : listAttr, |
| | | 'expectedRC' : 0 |
| | | } |
| | | </call> |
| | | |
| | | <!-- Start the server again --> |
| | | <call function="'StartDsWithScript'"> |
| | | { 'location' : server.getHostname(), |
| | | 'dsPath' : serverPath |
| | | } |
| | | </call> |
| | | <if expr="globalSplitServers"> |
| | | <call function="'StartDsWithScript'"> |
| | | { 'location' : replServer.getHostname(), |
| | | 'dsPath' : replServerPath |
| | | } |
| | | </call> |
| | | </if> |
| | | |
| | | </sequence> |
| | | </iterate> |
| | | |
| | | |
| | | <!-- Verify the synchronization of the trees among the servers in the topology --> |
| | | <call function="'verifyTrees'"> |
| | | [ clientHost, clientPath, master, consumerList, synchroSuffix ] |
| | | </call> |
| | | |
| | | <call function="'testCase_Postamble'"/> |
| | | </sequence> |
| | | </testcase> |
| | | |
| | | |
| | | |
| | | <!--- Test Case information |
| | | #@TestMarker Replication Failover Tests |
| | | #@TestName Replication: Failover: All but one servers down (killed) |
| | | #@TestID One server down (killed) |
| | | #@TestPurpose Check replication when all but one servers fail |
| | | #@TestPreamble |
| | | #@TestSteps |
| | | #@TestPostamble |
| | | #@TestResult |
| | | --> |
| | | <testcase name="getTestCaseName('All but one servers down (killed)')"> |
| | | <sequence> |
| | | <call function="'testCase_Preamble'"/> |
| | | <message> |
| | | 'Replication: Failover: All but one servers down (killed). Check replication when all but one servers fail' |
| | | </message> |
| | | |
| | | <paralleliterate var="server" in="consumerList" indexvar="i"> |
| | | <sequence> |
| | | <script> |
| | | serverPath = '%s/%s' % (server.getDir(), OPENDSNAME) |
| | | |
| | | if globalSplitServers: |
| | | replServer = _topologyReplServerList[i+1] |
| | | else: |
| | | replServer = server |
| | | |
| | | replServerPath = '%s/%s' % (replServer.getDir(), OPENDSNAME) |
| | | </script> |
| | | |
| | | <!-- Kill server (simulate failover?) --> |
| | | <call function="'killDs'"> |
| | | { 'location' : server.getHostname(), |
| | | 'dsPath' : serverPath |
| | | } |
| | | </call> |
| | | <if expr="globalSplitServers"> |
| | | <call function="'killDs'"> |
| | | { 'location' : replServer.getHostname(), |
| | | 'dsPath' : replServerPath |
| | | } |
| | | </call> |
| | | </if> |
| | | <message log="1" level="'fatal'"> |
| | | 'Setup of test suite failed.' |
| | | </message> |
| | | <rethrow/> |
| | | </sequence> |
| | | </paralleliterate> |
| | | |
| | | |
| | | <!-- Add entry to master servers --> |
| | | <script> |
| | | userDn = 'uid=ideitura-berriak, ou=People, %s' % synchroSuffix |
| | | |
| | | listAttr = [] |
| | | listAttr.append('objectclass:top') |
| | | listAttr.append('objectclass:organizationalperson') |
| | | listAttr.append('objectclass:inetorgperson') |
| | | listAttr.append('objectclass:person') |
| | | listAttr.append('givenname:Izen-berri') |
| | | listAttr.append('sn:Deitura-berriak') |
| | | listAttr.append('cn:Izen-berri Deitura-berriak') |
| | | </script> |
| | | </catch> |
| | | |
| | | <finally> |
| | | <message>'Test Cases Completed.'</message> |
| | | </finally> |
| | | |
| | | </try> |
| | | |
| | | </sequence> |
| | | |
| | | <call function="'addAnEntry'"> |
| | | { 'location' : masterHost, |
| | | 'dsPath' : masterPath, |
| | | 'dsInstanceHost' : masterHost, |
| | | 'dsInstancePort' : master.getPort(), |
| | | 'dsInstanceDn' : master.getRootDn(), |
| | | 'dsInstancePswd' : master.getRootPwd(), |
| | | 'DNToAdd' : userDn, |
| | | 'listAttributes' : listAttr, |
| | | 'expectedRC' : 0 |
| | | } |
| | | </call> |
| | | |
| | | <!-- Start the "consumer" servers --> |
| | | <call function="'startServers'"> |
| | | [consumerList] |
| | | </call> |
| | | <if expr="globalSplitServers"> |
| | | <call function="'startServers'"> |
| | | [_topologyReplServerList[1:]] |
| | | </call> |
| | | </if> |
| | | |
| | | |
| | | <!-- Verify the synchronization of the trees among the servers in the topology --> |
| | | <call function="'verifyTrees'"> |
| | | [ clientHost, clientPath, master, consumerList, synchroSuffix ] |
| | | </call> |
| | | |
| | | <call function="'testCase_Postamble'"/> |
| | | <finally> |
| | | <sequence> |
| | | <!-- Test Suite Cleanup --> |
| | | <message>'Finally: Replication Cleanup.'</message> |
| | | <try> |
| | | <sequence> |
| | | <import machine="STAF_LOCAL_HOSTNAME" |
| | | file="'%s/testcases/replication/replication_cleanup.xml' |
| | | % (TESTS_DIR)"/> |
| | | <call function="'replication_cleanup'"> |
| | | { 'label' : _label } |
| | | </call> |
| | | </sequence> |
| | | <catch exception="'STAFException'"> |
| | | <sequence> |
| | | <message log="1" level="'fatal'">'Cleanup of test suite failed.'</message> |
| | | </sequence> |
| | | </catch> |
| | | <finally> |
| | | <call function="'testSuite_Postamble'"/> |
| | | </finally> |
| | | </try> |
| | | </sequence> |
| | | </testcase> |
| | | |
| | | |
| | | |
| | | <import machine="STAF_LOCAL_HOSTNAME" |
| | | file="'%s/testcases/replication/replication_cleanup.xml' % (TESTS_DIR)"/> |
| | | <call function="'replication_cleanup'" > |
| | | { 'label' : 'Replication Failover' } |
| | | </call> |
| | | |
| | | <call function="'testSuite_Postamble'"/> |
| | | |
| | | </sequence> |
| | | |
| | | </finally> |
| | | |
| | | </try> |
| | | </block> |
| | | |
| | | </sequence> |
| | | |
| | | </function> |
| | | |
| | | </stax> |