From 69a5e67a588c3e4724f93e20792bb12c51595c2e Mon Sep 17 00:00:00 2001
From: ugaston <ugaston@localhost>
Date: Wed, 12 Aug 2009 16:46:00 +0000
Subject: [PATCH] Make replication func tests server-splittable + small fixes
---
opends/tests/staf-tests/functional-tests/testcases/replication/changelog/changelog.xml | 356 ++++++++++++------
opends/tests/staf-tests/shared/tests/config.py.stubs | 1
opends/tests/staf-tests/shared/functions/tools.xml | 8
opends/tests/staf-tests/functional-tests/testcases/replication/conflict/conflict.xml | 75 ++-
opends/tests/staf-tests/functional-tests/testcases/replication/encryption/encryption.xml | 2
opends/tests/staf-tests/functional-tests/testcases/replication/replication_cleanup.xml | 4
opends/tests/staf-tests/functional-tests/testcases/replication/replication_setup.xml | 66 ++-
opends/tests/staf-tests/functional-tests/testcases/privileges/privileges_users.xml | 16
opends/tests/staf-tests/functional-tests/testcases/replication/resynchronization/resynchronization.xml | 176 ++++++--
opends/tests/staf-tests/shared/functions/topology.xml | 152 ++++++-
opends/tests/staf-tests/functional-tests/testcases/replication/replication.xml | 5
opends/tests/staf-tests/functional-tests/testcases/replication/totalupdate/totalupdate.xml | 52 +
opends/tests/staf-tests/functional-tests/testcases/replication/failover/failover.xml | 144 +++++-
opends/tests/staf-tests/shared/ant/build.properties | 1
opends/tests/staf-tests/shared/python/replication.py | 29 +
15 files changed, 759 insertions(+), 328 deletions(-)
diff --git a/opends/tests/staf-tests/functional-tests/testcases/privileges/privileges_users.xml b/opends/tests/staf-tests/functional-tests/testcases/privileges/privileges_users.xml
index 276ed46..4f820b0 100644
--- a/opends/tests/staf-tests/functional-tests/testcases/privileges/privileges_users.xml
+++ b/opends/tests/staf-tests/functional-tests/testcases/privileges/privileges_users.xml
@@ -2653,14 +2653,14 @@
<!--
<script>
listAttr=[]
- listAttr.append('objectclass: top')
- listAttr.append('objectclass: person')
- listAttr.append('objectclass: mozillaobject')
- listAttr.append('cn: Salmon Fish')
- listAttr.append('sn: Fish')
- listAttr.append('givenname: Salmon')
- listAttr.append('l: Cupertino')
- listAttr.append('uid: sfish')
+ listAttr.append('objectclass:top')
+ listAttr.append('objectclass:person')
+ listAttr.append('objectclass:mozillaobject')
+ listAttr.append('cn:Salmon Fish')
+ listAttr.append('sn:Fish')
+ listAttr.append('givenname:Salmon')
+ listAttr.append('l:Cupertino')
+ listAttr.append('uid:sfish')
</script>
<call function="'addAnEntry'">
diff --git a/opends/tests/staf-tests/functional-tests/testcases/replication/changelog/changelog.xml b/opends/tests/staf-tests/functional-tests/testcases/replication/changelog/changelog.xml
index 6e4abd5..1033dbb 100644
--- a/opends/tests/staf-tests/functional-tests/testcases/replication/changelog/changelog.xml
+++ b/opends/tests/staf-tests/functional-tests/testcases/replication/changelog/changelog.xml
@@ -138,20 +138,26 @@
<!-- Search changelog in the various replication servers -->
<paralleliterate var="server"
- in="_topologyServerList">
+ in="_topologyServerList"
+ indexvar="i">
<sequence>
<script>
- serverPath = '%s/%s' % (server.getDir(), OPENDSNAME)
+ if globalSplitServers:
+ replServer = _topologyReplServerList[i]
+ else:
+ replServer = server
+
+ replServerPath = '%s/%s' % (replServer.getDir(), OPENDSNAME)
</script>
<!-- Search for entry add -->
<call function="'ldapSearchWithScript'">
- { 'location' : server.getHostname(),
- 'dsPath' : serverPath,
- 'dsInstanceHost' : server.getHostname(),
- 'dsInstancePort' : server.getPort(),
- 'dsInstanceDn' : server.getRootDn(),
- 'dsInstancePswd' : server.getRootPwd(),
+ { 'location' : replServer.getHostname(),
+ 'dsPath' : replServerPath,
+ 'dsInstanceHost' : replServer.getHostname(),
+ 'dsInstancePort' : replServer.getPort(),
+ 'dsInstanceDn' : replServer.getRootDn(),
+ 'dsInstancePswd' : replServer.getRootPwd(),
'dsBaseDN' : 'dc=replicationChanges',
'dsFilter' : 'uid=iabizen.0',
'dsAttributes' : 'dn'
@@ -173,12 +179,12 @@
<!-- Search for entry modify -->
<call function="'ldapSearchWithScript'">
- { 'location' : server.getHostname(),
- 'dsPath' : serverPath,
- 'dsInstanceHost' : server.getHostname(),
- 'dsInstancePort' : server.getPort(),
- 'dsInstanceDn' : server.getRootDn(),
- 'dsInstancePswd' : server.getRootPwd(),
+ { 'location' : replServer.getHostname(),
+ 'dsPath' : replServerPath,
+ 'dsInstanceHost' : replServer.getHostname(),
+ 'dsInstancePort' : replServer.getPort(),
+ 'dsInstanceDn' : replServer.getRootDn(),
+ 'dsInstancePswd' : replServer.getRootPwd(),
'dsBaseDN' : 'dc=replicationChanges',
'dsFilter' : 'l=GEC',
'dsAttributes' : 'dn'
@@ -275,25 +281,32 @@
<!-- Export changelog in the various replication servers, then
check for added entry in the exported files -->
<paralleliterate var="server"
- in="_topologyServerList">
+ in="_topologyServerList"
+ indexvar="i">
<sequence>
<script>
- serverPath = '%s/%s' % (server.getDir(), OPENDSNAME)
- serverDataDir = '%s/%s' % (server.getDir(),remote.reldatadir)
+ if globalSplitServers:
+ replServer = _topologyReplServerList[i]
+ else:
+ replServer = server
+
+ replServerPath = '%s/%s' % (replServer.getDir(), OPENDSNAME)
+ replServerDataDir = '%s/%s' \
+ % (replServer.getDir(),remote.reldatadir)
exportedChangelog = \
'%s/replication/changelog_export_online.ldif' \
- % serverDataDir
+ % replServerDataDir
</script>
<!-- Export changelog data from server -->
<call function="'exportLdifTask'">
- { 'location' : server.getHostname(),
- 'dsPath' : serverPath,
- 'dsInstanceHost' : server.getHostname(),
- 'dsInstancePort' : server.getPort(),
- 'dsInstanceDn' : server.getRootDn(),
- 'dsInstancePswd' : server.getRootPwd(),
+ { 'location' : replServer.getHostname(),
+ 'dsPath' : replServerPath,
+ 'dsInstanceHost' : replServer.getHostname(),
+ 'dsInstancePort' : replServer.getPort(),
+ 'dsInstanceDn' : replServer.getRootDn(),
+ 'dsInstancePswd' : replServer.getRootPwd(),
'taskID' : 'changelog export task',
'ldifFile' : exportedChangelog,
'backEnd' : 'replicationChanges'
@@ -303,7 +316,7 @@
<!-- Check for the added entry inside the exported file -->
<call function="'grep'">
{
- 'location' : server.getHostname(),
+ 'location' : replServer.getHostname(),
'filename' : exportedChangelog,
'testString' : 'uid=iabizen.2'
}
@@ -392,25 +405,37 @@
</call>
<!-- Stop the servers in the topology -->
+ <script>
+ if globalSplitServers:
+ serverList = _topologyReplServerList
+ else:
+ serverList = _topologyServerList
+ </script>
<call function="'stopServers'">
- [_topologyServerList]
+ [serverList]
</call>
-
<!-- Backup changelog in the various replication servers -->
<paralleliterate var="server"
- in="_topologyServerList">
+ in="_topologyServerList"
+ indexvar="i">
<sequence>
<script>
- serverPath = '%s/%s' % (server.getDir(), OPENDSNAME)
- serverDataDir = '%s/%s' % (server.getDir(),remote.reldatadir)
+ if globalSplitServers:
+ replServer = _topologyReplServerList[i]
+ else:
+ replServer = server
+
+ replServerPath = '%s/%s' % (replServer.getDir(), OPENDSNAME)
+ replServerDataDir = '%s/%s' \
+ % (replServer.getDir(),remote.reldatadir)
changelogBackupDir = '%s/replication/changelog_backup' \
- % serverDataDir
+ % replServerDataDir
</script>
<call function="'backup'">
- { 'location' : server.getHostname(),
- 'dsPath' : serverPath,
+ { 'location' : replServer.getHostname(),
+ 'dsPath' : replServerPath,
'backupDir' : changelogBackupDir,
'backEnd' : 'replicationChanges'
}
@@ -419,10 +444,15 @@
</paralleliterate>
<!-- Start the servers in the topology -->
+ <script>
+ if globalSplitServers:
+ serverList = _topologyReplServerList
+ else:
+ serverList = _topologyServerList
+ </script>
<call function="'startServers'">
- [_topologyServerList]
- </call>
-
+ [serverList]
+ </call>
<!-- Add entry B to "master" server -->
<script>
@@ -460,7 +490,7 @@
<!-- Stop the servers in the topology -->
<call function="'stopServers'">
- [_topologyServerList]
+ [_splitServerList]
</call>
@@ -472,10 +502,18 @@
<sequence>
<script>
+ if globalSplitServers:
+ replServer = _topologyReplServerList[i]
+ else:
+ replServer = server
+
serverPath = '%s/%s' % (server.getDir(), OPENDSNAME)
serverDataDir = '%s/%s' % (server.getDir(),remote.reldatadir)
+ replServerPath = '%s/%s' % (replServer.getDir(), OPENDSNAME)
+ replServerDataDir = '%s/%s' \
+ % (replServer.getDir(),remote.reldatadir)
changelogBackupDir = '%s/replication/changelog_backup' \
- % serverDataDir
+ % replServerDataDir
</script>
<!-- Restore master_backup -->
@@ -516,8 +554,8 @@
<!-- Restore changelog_backup -->
<call function="'restore'">
- { 'location' : server.getHostname(),
- 'dsPath' : serverPath,
+ { 'location' : replServer.getHostname(),
+ 'dsPath' : replServerPath,
'backupDir' : changelogBackupDir
}
</call>
@@ -526,7 +564,7 @@
<!-- Start the servers in the topology -->
<call function="'startServers'">
- [_topologyServerList]
+ [_splitServerList]
</call>
@@ -534,10 +572,17 @@
<!-- Search synchroSuffix and changelog in the various servers,
looking for entries A (should be there) and B (shouldn't be) -->
<paralleliterate var="server"
- in="_topologyServerList">
- <sequence>
+ in="_topologyServerList"
+ indexvar="i">
+ <sequence>
<script>
+ if globalSplitServers:
+ replServer = _topologyReplServerList[i]
+ else:
+ replServer = server
+
serverPath = '%s/%s' % (server.getDir(), OPENDSNAME)
+ replServerPath = '%s/%s' % (replServer.getDir(), OPENDSNAME)
</script>
<!-- Search for entry A (should be there) -->
@@ -555,12 +600,12 @@
}
</call>
<call function="'ldapSearchWithScript'">
- { 'location' : server.getHostname(),
- 'dsPath' : serverPath,
- 'dsInstanceHost' : server.getHostname(),
- 'dsInstancePort' : server.getPort(),
- 'dsInstanceDn' : server.getRootDn(),
- 'dsInstancePswd' : server.getRootPwd(),
+ { 'location' : replServer.getHostname(),
+ 'dsPath' : replServerPath,
+ 'dsInstanceHost' : replServer.getHostname(),
+ 'dsInstancePort' : replServer.getPort(),
+ 'dsInstanceDn' : replServer.getRootDn(),
+ 'dsInstancePswd' : replServer.getRootPwd(),
'dsBaseDN' : 'dc=replicationChanges',
'dsFilter' : 'uid=iabizen.A',
'dsAttributes' : 'dn',
@@ -596,12 +641,12 @@
}
</call>
<call function="'ldapSearchWithScript'">
- { 'location' : server.getHostname(),
- 'dsPath' : serverPath,
- 'dsInstanceHost' : server.getHostname(),
- 'dsInstancePort' : server.getPort(),
- 'dsInstanceDn' : server.getRootDn(),
- 'dsInstancePswd' : server.getRootPwd(),
+ { 'location' : replServer.getHostname(),
+ 'dsPath' : replServerPath,
+ 'dsInstanceHost' : replServer.getHostname(),
+ 'dsInstancePort' : replServer.getPort(),
+ 'dsInstanceDn' : replServer.getRootDn(),
+ 'dsInstancePswd' : replServer.getRootPwd(),
'dsBaseDN' : 'dc=replicationChanges',
'dsFilter' : 'uid=iabizen.B',
'dsAttributes' : 'dn',
@@ -707,22 +752,30 @@
<!-- Backup changelog in the various replication servers -->
<paralleliterate var="server"
- in="_topologyServerList">
+ in="_topologyServerList"
+ indexvar="i">
<sequence>
<script>
- serverPath = '%s/%s' % (server.getDir(), OPENDSNAME)
- serverDataDir = '%s/%s' % (server.getDir(),remote.reldatadir)
+ if globalSplitServers:
+ replServer = _topologyReplServerList[i]
+ else:
+ replServer = server
+
+ replServerPath = '%s/%s' % (replServer.getDir(), OPENDSNAME)
+ replServerDataDir = '%s/%s' \
+ % (replServer.getDir(),remote.reldatadir)
changelogBackupDir = \
- '%s/replication/changelog_backup_online' % serverDataDir
+ '%s/replication/changelog_backup_online' \
+ % replServerDataDir
</script>
<call function="'backupTask'">
- { 'location' : server.getHostname(),
- 'dsPath' : serverPath,
- 'dsInstanceHost' : server.getHostname(),
- 'dsInstancePort' : server.getPort(),
- 'dsInstanceDn' : server.getRootDn(),
- 'dsInstancePswd' : server.getRootPwd(),
+ { 'location' : replServer.getHostname(),
+ 'dsPath' : replServerPath,
+ 'dsInstanceHost' : replServer.getHostname(),
+ 'dsInstancePort' : replServer.getPort(),
+ 'dsInstanceDn' : replServer.getRootDn(),
+ 'dsInstancePswd' : replServer.getRootPwd(),
'taskID' : 'changelog backup task',
'backupDir' : changelogBackupDir,
'backEnd' : 'replicationChanges'
@@ -774,20 +827,29 @@
<sequence>
<script>
+ if globalSplitServers:
+ replServer = _topologyReplServerList[i]
+ else:
+ replServer = server
+
serverPath = '%s/%s' % (server.getDir(), OPENDSNAME)
serverDataDir = '%s/%s' % (server.getDir(),remote.reldatadir)
+ replServerPath = '%s/%s' % (replServer.getDir(), OPENDSNAME)
+ replServerDataDir = '%s/%s' \
+ % (replServer.getDir(),remote.reldatadir)
changelogBackupDir = \
- '%s/replication/changelog_backup_online' % serverDataDir
+ '%s/replication/changelog_backup_online' \
+ % replServerDataDir
</script>
<!-- Restore changelog_backup -->
<call function="'restoreTask'">
- { 'location' : server.getHostname(),
- 'dsPath' : serverPath,
- 'dsInstanceHost' : server.getHostname(),
- 'dsInstancePort' : server.getPort(),
- 'dsInstanceDn' : server.getRootDn(),
- 'dsInstancePswd' : server.getRootPwd(),
+ { 'location' : replServer.getHostname(),
+ 'dsPath' : replServerPath,
+ 'dsInstanceHost' : replServer.getHostname(),
+ 'dsInstancePort' : replServer.getPort(),
+ 'dsInstanceDn' : replServer.getRootDn(),
+ 'dsInstancePswd' : replServer.getRootPwd(),
'taskID' : 'changelog restore task',
'backupDir' : changelogBackupDir
}
@@ -842,12 +904,20 @@
looking for entries AA (should be there) and BB (shouldn't be)
-->
<paralleliterate var="server"
- in="_topologyServerList">
+ in="_topologyServerList"
+ indexvar="i">
<sequence>
<script>
+ if globalSplitServers:
+ replServer = _topologyReplServerList[i]
+ else:
+ replServer = server
+
serverPath = '%s/%s' % (server.getDir(), OPENDSNAME)
+ replServerPath = '%s/%s' % (replServer.getDir(), OPENDSNAME)
</script>
+
<!-- Search for entry AA (should be there) -->
<call function="'ldapSearchWithScript'">
{ 'location' : server.getHostname(),
@@ -863,12 +933,12 @@
}
</call>
<call function="'ldapSearchWithScript'">
- { 'location' : server.getHostname(),
- 'dsPath' : serverPath,
- 'dsInstanceHost' : server.getHostname(),
- 'dsInstancePort' : server.getPort(),
- 'dsInstanceDn' : server.getRootDn(),
- 'dsInstancePswd' : server.getRootPwd(),
+ { 'location' : replServer.getHostname(),
+ 'dsPath' : replServerPath,
+ 'dsInstanceHost' : replServer.getHostname(),
+ 'dsInstancePort' : replServer.getPort(),
+ 'dsInstanceDn' : replServer.getRootDn(),
+ 'dsInstancePswd' : replServer.getRootPwd(),
'dsBaseDN' : 'dc=replicationChanges',
'dsFilter' : 'uid=iabizen.AA',
'dsAttributes' : 'dn',
@@ -904,12 +974,12 @@
}
</call>
<call function="'ldapSearchWithScript'">
- { 'location' : server.getHostname(),
- 'dsPath' : serverPath,
- 'dsInstanceHost' : server.getHostname(),
- 'dsInstancePort' : server.getPort(),
- 'dsInstanceDn' : server.getRootDn(),
- 'dsInstancePswd' : server.getRootPwd(),
+ { 'location' : replServer.getHostname(),
+ 'dsPath' : replServerPath,
+ 'dsInstanceHost' : replServer.getHostname(),
+ 'dsInstancePort' : replServer.getPort(),
+ 'dsInstanceDn' : replServer.getRootDn(),
+ 'dsInstancePswd' : replServer.getRootPwd(),
'dsBaseDN' : 'dc=replicationChanges',
'dsFilter' : 'uid=iabizen.BB',
'dsAttributes' : 'dn',
@@ -1006,20 +1076,27 @@
<!-- Search changelog in the various replication servers -->
<paralleliterate var="server"
- in="_topologyServerList">
+ in="_topologyServerList"
+ indexvar="i">
<sequence>
<script>
- serverPath = '%s/%s' % (server.getDir(), OPENDSNAME)
+ if globalSplitServers:
+ replServer = _topologyReplServerList[i]
+ else:
+ replServer = server
+
+ replServerPath = '%s/%s' % (replServer.getDir(), OPENDSNAME)
</script>
+
<call function="'ldapSearchWithScript'">
- { 'location' : server.getHostname(),
- 'dsPath' : serverPath,
- 'dsInstanceHost' : server.getHostname(),
- 'dsInstancePort' : server.getPort(),
- 'dsInstanceDn' : server.getRootDn(),
- 'dsInstancePswd' : server.getRootPwd(),
+ { 'location' : replServer.getHostname(),
+ 'dsPath' : replServerPath,
+ 'dsInstanceHost' : replServer.getHostname(),
+ 'dsInstancePort' : replServer.getPort(),
+ 'dsInstanceDn' : replServer.getRootDn(),
+ 'dsInstancePswd' : replServer.getRootPwd(),
'dsBaseDN' : 'dc=replicationChanges' ,
'dsFilter' : 'uid=iabizen.3',
'dsAttributes' : 'dn'
@@ -1059,10 +1136,17 @@
<!-- Search changelog in the various replication servers -->
<paralleliterate var="server"
- in="_topologyServerList">
- <sequence>
+ in="_topologyServerList"
+ indexvar="i">
+ <sequence>
<script>
+ if globalSplitServers:
+ replServer = _topologyReplServerList[i]
+ else:
+ replServer = server
+
serverPath = '%s/%s' % (server.getDir(), OPENDSNAME)
+ replServerPath = '%s/%s' % (replServer.getDir(), OPENDSNAME)
</script>
<!-- Search for entry in the suffix (should NOT be there) -->
@@ -1082,12 +1166,12 @@
<!-- Search for corresponding change in the changelog
(should NOT be there) -->
<call function="'ldapSearchWithScript'">
- { 'location' : server.getHostname(),
- 'dsPath' : serverPath,
- 'dsInstanceHost' : server.getHostname(),
- 'dsInstancePort' : server.getPort(),
- 'dsInstanceDn' : server.getRootDn(),
- 'dsInstancePswd' : server.getRootPwd(),
+ { 'location' : replServer.getHostname(),
+ 'dsPath' : replServerPath,
+ 'dsInstanceHost' : replServer.getHostname(),
+ 'dsInstancePort' : replServer.getPort(),
+ 'dsInstanceDn' : replServer.getRootDn(),
+ 'dsInstancePswd' : replServer.getRootPwd(),
'dsBaseDN' : 'dc=replicationChanges',
'dsFilter' : 'uid=iabizen.3',
'dsAttributes' : 'dn',
@@ -1153,19 +1237,30 @@
specified in the conf expires'
</message>
+ <script>
+ if globalSplitServers:
+ masterReplServer = _topologyReplServerList[0]
+ else:
+ masterReplServer = master
+
+ masterReplServerHost = masterReplServer.getHostname()
+ masterReplServerPath = '%s/%s' % \
+ (masterReplServer.getDir(), OPENDSNAME)
+ </script>
+
<message>
'Set purge delay to 20 seconds on server %s:%s' \
- % (masterHost, master.getPort())
+ % (masterReplServerHost, masterReplServer.getPort())
</message>
<!-- Set purge delay to 20s on "master" server -->
<call function="'dsconfigSet'">
- { 'location' : masterHost,
- 'dsPath' : masterPath,
- 'dsInstanceHost' : masterHost,
- 'dsInstanceAdminPort' : master.getAdminPort(),
- 'dsInstanceDn' : master.getRootDn(),
- 'dsInstancePswd' : master.getRootPwd(),
+ { 'location' : masterReplServerHost,
+ 'dsPath' : masterReplServerPath,
+ 'dsInstanceHost' : masterReplServerHost,
+ 'dsInstanceAdminPort' : masterReplServer.getAdminPort(),
+ 'dsInstanceDn' : masterReplServer.getRootDn(),
+ 'dsInstancePswd' : masterReplServer.getRootPwd(),
'objectName' : 'replication-server' ,
'propertyType' : 'provider',
'propertyName' : 'Multimaster Synchronization',
@@ -1237,20 +1332,26 @@
<!-- Search changelog in the various replication servers -->
<paralleliterate var="server"
- in="_topologyServerList">
+ in="_topologyServerList"
+ indexvar="i">
<sequence>
<script>
- serverPath = '%s/%s' % (server.getDir(), OPENDSNAME)
+ if globalSplitServers:
+ replServer = _topologyReplServerList[i]
+ else:
+ replServer = server
+
+ replServerPath = '%s/%s' % (replServer.getDir(), OPENDSNAME)
</script>
-
+
<call function="'ldapSearchWithScript'">
{
- 'location' : server.getHostname(),
- 'dsPath' : serverPath,
- 'dsInstanceHost' : server.getHostname(),
- 'dsInstancePort' : server.getPort(),
- 'dsInstanceDn' : server.getRootDn(),
- 'dsInstancePswd' : server.getRootPwd(),
+ 'location' : replServer.getHostname(),
+ 'dsPath' : replServerPath,
+ 'dsInstanceHost' : replServer.getHostname(),
+ 'dsInstancePort' : replServer.getPort(),
+ 'dsInstanceDn' : replServer.getRootDn(),
+ 'dsInstancePswd' : replServer.getRootPwd(),
'dsBaseDN' : 'dc=replicationChanges' ,
'dsFilter' : 'uid=iabizen.X',
'dsAttributes' : 'dn'
@@ -1287,17 +1388,22 @@
indexvar="i">
<sequence>
<script>
- serverPath = '%s/%s' % (server.getDir(), OPENDSNAME)
+ if globalSplitServers:
+ replServer = _topologyReplServerList[i]
+ else:
+ replServer = server
+
+ replServerPath = '%s/%s' % (replServer.getDir(), OPENDSNAME)
</script>
<call function="'ldapSearchWithScript'">
{
- 'location' : server.getHostname(),
- 'dsPath' : serverPath,
- 'dsInstanceHost' : server.getHostname(),
- 'dsInstancePort' : server.getPort(),
- 'dsInstanceDn' : server.getRootDn(),
- 'dsInstancePswd' : server.getRootPwd(),
+ 'location' : replServer.getHostname(),
+ 'dsPath' : replServerPath,
+ 'dsInstanceHost' : replServer.getHostname(),
+ 'dsInstancePort' : replServer.getPort(),
+ 'dsInstanceDn' : replServer.getRootDn(),
+ 'dsInstancePswd' : replServer.getRootPwd(),
'dsBaseDN' : 'dc=replicationChanges',
'dsFilter' : 'uid=iabizen.X',
'dsAttributes' : 'dn',
@@ -1310,7 +1416,7 @@
resultLength = len(searchResult) > 0
if i == 0:
- # index [0] corresponds to "master" server
+ # index [0] corresponds to "master" repl server
# => purge delay expired => changelog purged
# => expect NO entry returned
# => len(searchResult) = 0 => resultLength = 0
diff --git a/opends/tests/staf-tests/functional-tests/testcases/replication/conflict/conflict.xml b/opends/tests/staf-tests/functional-tests/testcases/replication/conflict/conflict.xml
index 46553c3..5fecb4e 100644
--- a/opends/tests/staf-tests/functional-tests/testcases/replication/conflict/conflict.xml
+++ b/opends/tests/staf-tests/functional-tests/testcases/replication/conflict/conflict.xml
@@ -80,6 +80,13 @@
server2DataDir = '%s/%s' % (server2.getDir(),remote.reldatadir)
server1name = '%s:%s' % (server1Host, server1.getPort())
server2name = '%s:%s' % (server2Host, server2.getPort())
+
+ if globalSplitServers:
+ replServer1 = _topologyReplServerList[0]
+ replServer2 = _topologyReplServerList[1]
+ else:
+ replServer1 = server1
+ replServer2 = server2
# Filter used for retrieving conflict counters from cn=monitor
filter0 = '(base-dn=%s)' % synchroSuffix
@@ -286,7 +293,7 @@
<!-- Disconnect Replication Servers -->
<call function="'disconnectReplicationServers'">
- [ clientHost, clientPath, [server1, server2] ]
+ [ clientHost, clientPath, [replServer1, replServer2] ]
</call>
<iterate var="server"
@@ -343,7 +350,7 @@
<!-- Reconnect Replication Servers -->
<call function="'reconnectReplicationServers'">
- [ clientHost, clientPath, [server1, server2] ]
+ [ clientHost, clientPath, [replServer1, replServer2] ]
</call>
<!-- Check conflict is resolved -->
@@ -445,7 +452,7 @@
<!-- Disconnect Replication Servers -->
<call function="'disconnectReplicationServers'">
- [ clientHost, clientPath, [server1, server2] ]
+ [ clientHost, clientPath, [replServer1, replServer2] ]
</call>
<iterate var="server"
@@ -503,7 +510,7 @@
<!-- Reconnect Replication Servers -->
<call function="'reconnectReplicationServers'">
- [ clientHost, clientPath, [server1, server2] ]
+ [ clientHost, clientPath, [replServer1, replServer2] ]
</call>
<!-- Check conflict is resolved -->
@@ -618,7 +625,7 @@
<!-- Disconnect Replication Servers -->
<call function="'disconnectReplicationServers'">
- [ clientHost, clientPath, [server1, server2] ]
+ [ clientHost, clientPath, [replServer1, replServer2] ]
</call>
<iterate var="server"
@@ -690,7 +697,7 @@
<!-- Reconnect Replication Servers -->
<call function="'reconnectReplicationServers'">
- [ clientHost, clientPath, [server1, server2] ]
+ [ clientHost, clientPath, [replServer1, replServer2] ]
</call>
<!-- Check conflict is resolved -->
@@ -805,7 +812,7 @@
<!-- Disconnect Replication Servers -->
<call function="'disconnectReplicationServers'">
- [ clientHost, clientPath, [server1, server2] ]
+ [ clientHost, clientPath, [replServer1, replServer2] ]
</call>
<iterate var="server"
@@ -877,7 +884,7 @@
<!-- Reconnect Replication Servers -->
<call function="'reconnectReplicationServers'">
- [ clientHost, clientPath, [server1, server2] ]
+ [ clientHost, clientPath, [replServer1, replServer2] ]
</call>
<!-- Check conflict is resolved -->
@@ -984,7 +991,7 @@
<!-- Disconnect Replication Servers -->
<call function="'disconnectReplicationServers'">
- [ clientHost, clientPath, [server1, server2] ]
+ [ clientHost, clientPath, [replServer1, replServer2] ]
</call>
<iterate var="server"
@@ -1043,7 +1050,7 @@
<!-- Reconnect Replication Servers -->
<call function="'reconnectReplicationServers'">
- [ clientHost, clientPath, [server1, server2] ]
+ [ clientHost, clientPath, [replServer1, replServer2] ]
</call>
<!-- Check conflict is resolved -->
@@ -1150,7 +1157,7 @@
<!-- Disconnect Replication Servers -->
<call function="'disconnectReplicationServers'">
- [ clientHost, clientPath, [server1, server2] ]
+ [ clientHost, clientPath, [replServer1, replServer2] ]
</call>
<iterate var="server"
@@ -1209,7 +1216,7 @@
<!-- Reconnect Replication Servers -->
<call function="'reconnectReplicationServers'">
- [ clientHost, clientPath, [server1, server2] ]
+ [ clientHost, clientPath, [replServer1, replServer2] ]
</call>
<!-- Check conflict is resolved -->
@@ -1323,7 +1330,7 @@
<!-- Disconnect Replication Servers -->
<call function="'disconnectReplicationServers'">
- [ clientHost, clientPath, [server1, server2] ]
+ [ clientHost, clientPath, [replServer1, replServer2] ]
</call>
<iterate var="server"
@@ -1382,7 +1389,7 @@
<!-- Reconnect Replication Servers -->
<call function="'reconnectReplicationServers'">
- [ clientHost, clientPath, [server1, server2] ]
+ [ clientHost, clientPath, [replServer1, replServer2] ]
</call>
<!-- Check conflict is resolved -->
@@ -1491,7 +1498,7 @@
<!-- Disconnect Replication Servers -->
<call function="'disconnectReplicationServers'">
- [ clientHost, clientPath, [server1, server2] ]
+ [ clientHost, clientPath, [replServer1, replServer2] ]
</call>
<iterate var="server"
@@ -1550,7 +1557,7 @@
<!-- Reconnect Replication Servers -->
<call function="'reconnectReplicationServers'">
- [ clientHost, clientPath, [server1, server2] ]
+ [ clientHost, clientPath, [replServer1, replServer2] ]
</call>
<!-- Check conflict is resolved -->
@@ -1669,7 +1676,7 @@
<!-- Disconnect Replication Servers -->
<call function="'disconnectReplicationServers'">
- [ clientHost, clientPath, [server1, server2] ]
+ [ clientHost, clientPath, [replServer1, replServer2] ]
</call>
<iterate var="server"
@@ -1741,7 +1748,7 @@
<!-- Reconnect Replication Servers -->
<call function="'reconnectReplicationServers'">
- [ clientHost, clientPath, [server1, server2] ]
+ [ clientHost, clientPath, [replServer1, replServer2] ]
</call>
<!-- Check conflict is resolved -->
@@ -1854,7 +1861,7 @@
<!-- Disconnect Replication Servers -->
<call function="'disconnectReplicationServers'">
- [ clientHost, clientPath, [server1, server2] ]
+ [ clientHost, clientPath, [replServer1, replServer2] ]
</call>
<iterate var="server"
@@ -1913,7 +1920,7 @@
<!-- Reconnect Replication Servers -->
<call function="'reconnectReplicationServers'">
- [ clientHost, clientPath, [server1, server2] ]
+ [ clientHost, clientPath, [replServer1, replServer2] ]
</call>
<!-- Check conflict is resolved -->
@@ -2026,7 +2033,7 @@
<!-- Disconnect Replication Servers -->
<call function="'disconnectReplicationServers'">
- [ clientHost, clientPath, [server1, server2] ]
+ [ clientHost, clientPath, [replServer1, replServer2] ]
</call>
<iterate var="server"
@@ -2085,7 +2092,7 @@
<!-- Reconnect Replication Servers -->
<call function="'reconnectReplicationServers'">
- [ clientHost, clientPath, [server1, server2] ]
+ [ clientHost, clientPath, [replServer1, replServer2] ]
</call>
<!-- Check conflict is resolved -->
@@ -2202,7 +2209,7 @@
<!-- Disconnect Replication Servers -->
<call function="'disconnectReplicationServers'">
- [ clientHost, clientPath, [server1, server2] ]
+ [ clientHost, clientPath, [replServer1, replServer2] ]
</call>
<iterate var="server"
@@ -2261,7 +2268,7 @@
<!-- Reconnect Replication Servers -->
<call function="'reconnectReplicationServers'">
- [ clientHost, clientPath, [server1, server2] ]
+ [ clientHost, clientPath, [replServer1, replServer2] ]
</call>
<!-- Check conflict is resolved -->
@@ -2377,7 +2384,7 @@
<!-- Disconnect Replication Servers -->
<call function="'disconnectReplicationServers'">
- [ clientHost, clientPath, [server1, server2] ]
+ [ clientHost, clientPath, [replServer1, replServer2] ]
</call>
<iterate var="server"
@@ -2436,7 +2443,7 @@
<!-- Reconnect Replication Servers -->
<call function="'reconnectReplicationServers'">
- [ clientHost, clientPath, [server1, server2] ]
+ [ clientHost, clientPath, [replServer1, replServer2] ]
</call>
<!-- Check conflict is resolved -->
@@ -2541,7 +2548,7 @@
<!-- Disconnect Replication Servers -->
<call function="'disconnectReplicationServers'">
- [ clientHost, clientPath, [server1, server2] ]
+ [ clientHost, clientPath, [replServer1, replServer2] ]
</call>
<!-- Add child entry on server2 -->
@@ -2632,7 +2639,7 @@
<!-- Reconnect Replication Servers -->
<call function="'reconnectReplicationServers'">
- [ clientHost, clientPath, [server1, server2] ]
+ [ clientHost, clientPath, [replServer1, replServer2] ]
</call>
<!-- Check conflict is resolved -->
@@ -2809,7 +2816,7 @@
<!-- Disconnect Replication Servers -->
<call function="'disconnectReplicationServers'">
- [ clientHost, clientPath, [server1, server2] ]
+ [ clientHost, clientPath, [replServer1, replServer2] ]
</call>
<!-- Delete parent entry on server1-->
@@ -2900,7 +2907,7 @@
<!-- Reconnect Replication Servers -->
<call function="'reconnectReplicationServers'">
- [ clientHost, clientPath, [server1, server2] ]
+ [ clientHost, clientPath, [replServer1, replServer2] ]
</call>
<!-- Check conflict is resolved -->
@@ -3067,7 +3074,7 @@
<!-- Disconnect Replication Servers -->
<call function="'disconnectReplicationServers'">
- [ clientHost, clientPath, [server1, server2] ]
+ [ clientHost, clientPath, [replServer1, replServer2] ]
</call>
<iterate var="server"
@@ -3153,7 +3160,7 @@
<!-- Reconnect Replication Servers -->
<call function="'reconnectReplicationServers'">
- [ clientHost, clientPath, [server1, server2] ]
+ [ clientHost, clientPath, [replServer1, replServer2] ]
</call>
<!-- Check conflict is resolved -->
@@ -3316,7 +3323,7 @@
<!-- Disconnect Replication Servers -->
<call function="'disconnectReplicationServers'">
- [ clientHost, clientPath, [server1, server2] ]
+ [ clientHost, clientPath, [replServer1, replServer2] ]
</call>
<iterate var="server"
@@ -3402,7 +3409,7 @@
<!-- Reconnect Replication Servers -->
<call function="'reconnectReplicationServers'">
- [ clientHost, clientPath, [server1, server2] ]
+ [ clientHost, clientPath, [replServer1, replServer2] ]
</call>
<!-- Delete entry on server1-->
diff --git a/opends/tests/staf-tests/functional-tests/testcases/replication/encryption/encryption.xml b/opends/tests/staf-tests/functional-tests/testcases/replication/encryption/encryption.xml
index 36fda48..fe1f84c 100644
--- a/opends/tests/staf-tests/functional-tests/testcases/replication/encryption/encryption.xml
+++ b/opends/tests/staf-tests/functional-tests/testcases/replication/encryption/encryption.xml
@@ -119,7 +119,7 @@
listAttr.append('givenname:Izen-%s' % i)
listAttr.append('sn:Abizen-%s' % i)
listAttr.append('cn:Izen-%s Abizen-%s' % (i, i))
- listAttr.append('l: ICNC')
+ listAttr.append('l:ICNC')
</script>
<call function="'addAnEntry'">
diff --git a/opends/tests/staf-tests/functional-tests/testcases/replication/failover/failover.xml b/opends/tests/staf-tests/functional-tests/testcases/replication/failover/failover.xml
index ad45beb..229efdb 100644
--- a/opends/tests/staf-tests/functional-tests/testcases/replication/failover/failover.xml
+++ b/opends/tests/staf-tests/functional-tests/testcases/replication/failover/failover.xml
@@ -160,6 +160,13 @@
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?) -->
@@ -172,6 +179,17 @@
'dsBindPwd' : server.getRootPwd()
}
</call>
+ <if expr="globalSplitServers">
+ <call function="'StopDsWithScript'">
+ { 'location' : replServer.getHostname(),
+ 'dsPath' : replServerPath,
+ 'dsHost' : replServer.getHostname(),
+ 'dsAdminPort' : replServer.getAdminPort(),
+ 'dsBindDN' : replServer.getRootDn(),
+ 'dsBindPwd' : replServer.getRootPwd()
+ }
+ </call>
+ </if>
<!-- Add entry to one of the other servers -->
<script>
@@ -186,13 +204,13 @@
</script>
<call function="'addAnEntry'">
- { 'location' : nextServer.getHostname(),
- 'dsPath' : nextServerPath,
- 'dsInstanceHost' : nextServer.getHostname(),
- 'dsInstancePort' : nextServer.getPort(),
- 'dsInstanceDn' : nextServer.getRootDn(),
- 'dsInstancePswd' : nextServer.getRootPwd(),
- 'DNToAdd' : userDn,
+ { 'location' : nextServer.getHostname(),
+ 'dsPath' : nextServerPath,
+ 'dsInstanceHost' : nextServer.getHostname(),
+ 'dsInstancePort' : nextServer.getPort(),
+ 'dsInstanceDn' : nextServer.getRootDn(),
+ 'dsInstancePswd' : nextServer.getRootPwd(),
+ 'DNToAdd' : userDn,
'listAttributes' : listAttr,
'expectedRC' : 0
}
@@ -203,7 +221,14 @@
{ 'location' : server.getHostname(),
'dsPath' : serverPath
}
- </call>
+ </call>
+ <if expr="globalSplitServers">
+ <call function="'StartDsWithScript'">
+ { 'location' : replServer.getHostname(),
+ 'dsPath' : replServerPath
+ }
+ </call>
+ </if>
</sequence>
</iterate>
@@ -236,10 +261,15 @@
'Replication: Failover: All but one servers down (stopped). Check replication when all but one servers are off-line'
</message>
- <!-- Start the "consumer" servers -->
+ <!-- Stop the "consumer" servers -->
<call function="'stopServers'">
[consumerList]
</call>
+ <if expr="globalSplitServers">
+ <call function="'stopServers'">
+ [_topologyReplServerList[1:]]
+ </call>
+ </if>
<!-- Add entry to master servers -->
@@ -257,14 +287,14 @@
</script>
<call function="'addAnEntry'">
- { 'location' : masterHost,
- 'dsPath' : masterPath,
- 'dsInstanceHost' : masterHost,
- 'dsInstancePort' : master.getPort(),
- 'dsInstanceDn' : master.getRootDn(),
- 'dsInstancePswd' : master.getRootPwd(),
- 'DNToAdd' : userDn,
- 'listAttributes' : listAttr,
+ { 'location' : masterHost,
+ 'dsPath' : masterPath,
+ 'dsInstanceHost' : masterHost,
+ 'dsInstancePort' : master.getPort(),
+ 'dsInstanceDn' : master.getRootDn(),
+ 'dsInstancePswd' : master.getRootPwd(),
+ 'DNToAdd' : userDn,
+ 'listAttributes' : listAttr,
'expectedRC' : 0
}
</call>
@@ -273,6 +303,11 @@
<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 -->
@@ -314,6 +349,13 @@
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?) -->
@@ -322,6 +364,13 @@
'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>
@@ -336,13 +385,13 @@
</script>
<call function="'addAnEntry'">
- { 'location' : nextServer.getHostname(),
- 'dsPath' : nextServerPath,
- 'dsInstanceHost' : nextServer.getHostname(),
- 'dsInstancePort' : nextServer.getPort(),
- 'dsInstanceDn' : nextServer.getRootDn(),
- 'dsInstancePswd' : nextServer.getRootPwd(),
- 'DNToAdd' : userDn,
+ { 'location' : nextServer.getHostname(),
+ 'dsPath' : nextServerPath,
+ 'dsInstanceHost' : nextServer.getHostname(),
+ 'dsInstancePort' : nextServer.getPort(),
+ 'dsInstanceDn' : nextServer.getRootDn(),
+ 'dsInstancePswd' : nextServer.getRootPwd(),
+ 'DNToAdd' : userDn,
'listAttributes' : listAttr,
'expectedRC' : 0
}
@@ -353,7 +402,15 @@
{ 'location' : server.getHostname(),
'dsPath' : serverPath
}
- </call>
+ </call>
+ <if expr="globalSplitServers">
+ <call function="'StartDsWithScript'">
+ { 'location' : replServer.getHostname(),
+ 'dsPath' : replServerPath
+ }
+ </call>
+ </if>
+
</sequence>
</iterate>
@@ -386,10 +443,17 @@
'Replication: Failover: All but one servers down (killed). Check replication when all but one servers fail'
</message>
- <paralleliterate var="server" in="consumerList">
+ <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?) -->
@@ -397,7 +461,14 @@
{ 'location' : server.getHostname(),
'dsPath' : serverPath
}
- </call>
+ </call>
+ <if expr="globalSplitServers">
+ <call function="'killDs'">
+ { 'location' : replServer.getHostname(),
+ 'dsPath' : replServerPath
+ }
+ </call>
+ </if>
</sequence>
</paralleliterate>
@@ -417,13 +488,13 @@
</script>
<call function="'addAnEntry'">
- { 'location' : masterHost,
- 'dsPath' : masterPath,
- 'dsInstanceHost' : masterHost,
- 'dsInstancePort' : master.getPort(),
- 'dsInstanceDn' : master.getRootDn(),
- 'dsInstancePswd' : master.getRootPwd(),
- 'DNToAdd' : userDn,
+ { 'location' : masterHost,
+ 'dsPath' : masterPath,
+ 'dsInstanceHost' : masterHost,
+ 'dsInstancePort' : master.getPort(),
+ 'dsInstanceDn' : master.getRootDn(),
+ 'dsInstancePswd' : master.getRootPwd(),
+ 'DNToAdd' : userDn,
'listAttributes' : listAttr,
'expectedRC' : 0
}
@@ -433,6 +504,11 @@
<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 -->
diff --git a/opends/tests/staf-tests/functional-tests/testcases/replication/replication.xml b/opends/tests/staf-tests/functional-tests/testcases/replication/replication.xml
index 0fe37cc..b64bac3 100644
--- a/opends/tests/staf-tests/functional-tests/testcases/replication/replication.xml
+++ b/opends/tests/staf-tests/functional-tests/testcases/replication/replication.xml
@@ -60,6 +60,11 @@
testList.append('conflict')
globalAssuredReplication = None
+
+ if (REPLICATION_SPLIT_SERVERS == 'true'):
+ globalSplitServers = True
+ else:
+ globalSplitServers = None
</script>
<iterate var="_test" in="testList" >
diff --git a/opends/tests/staf-tests/functional-tests/testcases/replication/replication_cleanup.xml b/opends/tests/staf-tests/functional-tests/testcases/replication/replication_cleanup.xml
index 7471a20..9c66cb6 100644
--- a/opends/tests/staf-tests/functional-tests/testcases/replication/replication_cleanup.xml
+++ b/opends/tests/staf-tests/functional-tests/testcases/replication/replication_cleanup.xml
@@ -48,12 +48,12 @@
<!-- Stop the servers in the topology -->
<call function="'stopServers'">
- [_topologyServerList]
+ [_splitServerList]
</call>
<!-- Copy the server logs to the controller machine -->
<if expr="suiteSuffix != None">
- <paralleliterate var="server" in="_topologyServerList" indexvar="i">
+ <paralleliterate var="server" in="_splitServerList" indexvar="i">
<sequence>
<script>
suffix = suiteSuffix + '_%s' % (i + 1)
diff --git a/opends/tests/staf-tests/functional-tests/testcases/replication/replication_setup.xml b/opends/tests/staf-tests/functional-tests/testcases/replication/replication_setup.xml
index e10118b..b3d93e8 100644
--- a/opends/tests/staf-tests/functional-tests/testcases/replication/replication_setup.xml
+++ b/opends/tests/staf-tests/functional-tests/testcases/replication/replication_setup.xml
@@ -89,8 +89,9 @@
</message>
<call function="'createTopology'">
- { 'topologyDescFile' : topologyFile,
- 'sharedDataFolder' : 'replication'
+ { 'topologyDescFile' : topologyFile,
+ 'sharedDataFolder' : 'replication',
+ 'splitReplicationServers' : globalSplitServers
}
</call>
@@ -156,11 +157,11 @@
<!-- Start the servers in the topology -->
<call function="'startServers'">
- [_topologyServerList]
+ [_splitServerList]
</call>
- <iterate var="server" in="consumerList">
+ <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
@@ -173,8 +174,23 @@
</message>
<script>
- replicationServer = server.getChangelogServer()
- replicatedSuffixList = server.getSynchronizedSuffixList()
+ 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())
@@ -184,26 +200,29 @@
'Enable replication for server:\nHost: %s\nLdap port: %s\n\
Replication port: %s\nReplicated DN list: %s' \
% (server.getHostname(), server.getPort(),
- replicationServer.getPort(), replicatedDnList)
+ serverReplPort, replicatedDnList)
</message>
<call function="'enableReplication'">
{ 'location' : clientHost,
'dsPath' : clientPath,
- 'dsInstanceHost' : server.getHostname(),
- 'dsInstanceAdminPort' : server.getAdminPort(),
- 'dsInstanceDn' : server.getRootDn(),
- 'dsInstancePswd' : server.getRootPwd(),
- 'dsReplicationPort' : replicationServer.getPort(),
- 'dsSecureReplication' : secureReplication,
'refInstanceHost' : masterHost,
'refInstanceAdminPort' : master.getAdminPort(),
'refInstanceDn' : master.getRootDn(),
'refInstancePswd' : master.getRootPwd(),
- 'refReplicationPort' : masterReplicationServer.getPort(),
+ 'refReplicationPort' : masterReplPort,
'refSecureReplication' : secureReplication,
- 'replicationDnList' : replicatedDnList,
- 'useSecondServerAsSchemaSource' : True
+ '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>
@@ -218,7 +237,7 @@
! Server.
! This is used by the Conflict testsuite, in order to be able
! to simulate conflict scenarios -->
- <paralleliterate var="server" in="_topologyServerList">
+ <paralleliterate var="server" in="_topologyServerList" indexvar="i">
<sequence>
<script>
ldapServer = '%s:%s' % (server.getHostname(),
@@ -252,9 +271,16 @@
</if>
<script>
- replicationServer = server.getChangelogServer()
- replServer = '%s:%s' % (server.getHostname(),
- replicationServer.getPort())
+ 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>
diff --git a/opends/tests/staf-tests/functional-tests/testcases/replication/resynchronization/resynchronization.xml b/opends/tests/staf-tests/functional-tests/testcases/replication/resynchronization/resynchronization.xml
index 33d2103..9ae4726 100644
--- a/opends/tests/staf-tests/functional-tests/testcases/replication/resynchronization/resynchronization.xml
+++ b/opends/tests/staf-tests/functional-tests/testcases/replication/resynchronization/resynchronization.xml
@@ -61,7 +61,6 @@
<script>
server3 = _topologyServerList[2]
- replicationServer3 = server3.getChangelogServer()
# Remove 3rd server from replicated servers list until replication
# is enabled on the 3rd one
@@ -363,16 +362,24 @@
Initialise newly added server using on-line backup/restore'
</message>
- <paralleliterate var="server" in="_topologyServerList">
+ <paralleliterate var="server"
+ in="_topologyServerList"
+ indexvar="i">
<sequence>
+ <script>
+ if globalSplitServers:
+ replServer = _topologyReplServerList[i]
+ else:
+ replServer = server
+ </script>
<!-- Search for entry add -->
<call function="'ldapSearchWithScript'">
{ 'location' : clientHost,
'dsPath' : clientPath,
- 'dsInstanceHost' : server.getHostname(),
- 'dsInstancePort' : server.getPort(),
- 'dsInstanceDn' : server.getRootDn(),
- 'dsInstancePswd' : server.getRootPwd(),
+ 'dsInstanceHost' : replServer.getHostname(),
+ 'dsInstancePort' : replServer.getPort(),
+ 'dsInstanceDn' : replServer.getRootDn(),
+ 'dsInstancePswd' : replServer.getRootPwd(),
'dsBaseDN' : 'dc=replicationChanges',
'dsFilter' : 'uid=*'
}
@@ -384,7 +391,7 @@
</script>
<message>
'==> REPLICATION CHANGES %s:%s : \n%s\n' % \
- (server.getHostname(), server.getPort(), searchResult)
+ (replServer.getHostname(), replServer.getPort(), searchResult)
</message>
</sequence>
</paralleliterate>
@@ -406,16 +413,24 @@
}
</call>
- <paralleliterate var="server" in="_topologyServerList">
+ <paralleliterate var="server"
+ in="_topologyServerList"
+ indexvar="i">
<sequence>
+ <script>
+ if globalSplitServers:
+ replServer = _topologyReplServerList[i]
+ else:
+ replServer = server
+ </script>
<!-- Search for entry add -->
<call function="'ldapSearchWithScript'">
{ 'location' : clientHost,
'dsPath' : clientPath,
- 'dsInstanceHost' : server.getHostname(),
- 'dsInstancePort' : server.getPort(),
- 'dsInstanceDn' : server.getRootDn(),
- 'dsInstancePswd' : server.getRootPwd(),
+ 'dsInstanceHost' : replServer.getHostname(),
+ 'dsInstancePort' : replServer.getPort(),
+ 'dsInstanceDn' : replServer.getRootDn(),
+ 'dsInstancePswd' : replServer.getRootPwd(),
'dsBaseDN' : 'dc=replicationChanges',
'dsFilter' : 'uid=*'
}
@@ -427,7 +442,7 @@
</script>
<message>
'==> REPLICATION CHANGES %s:%s : \n%s\n' % \
- (server.getHostname(), server.getPort(), searchResult)
+ (replServer.getHostname(), replServer.getPort(), searchResult)
</message>
</sequence>
</paralleliterate>
@@ -484,16 +499,24 @@
}
</call>
- <paralleliterate var="server" in="_topologyServerList">
+ <paralleliterate var="server"
+ in="_topologyServerList"
+ indexvar="i">
<sequence>
+ <script>
+ if globalSplitServers:
+ replServer = _topologyReplServerList[i]
+ else:
+ replServer = server
+ </script>
<!-- Search for entry add -->
<call function="'ldapSearchWithScript'">
{ 'location' : clientHost,
'dsPath' : clientPath,
- 'dsInstanceHost' : server.getHostname(),
- 'dsInstancePort' : server.getPort(),
- 'dsInstanceDn' : server.getRootDn(),
- 'dsInstancePswd' : server.getRootPwd(),
+ 'dsInstanceHost' : replServer.getHostname(),
+ 'dsInstancePort' : replServer.getPort(),
+ 'dsInstanceDn' : replServer.getRootDn(),
+ 'dsInstancePswd' : replServer.getRootPwd(),
'dsBaseDN' : 'dc=replicationChanges',
'dsFilter' : 'uid=*'
}
@@ -505,7 +528,7 @@
</script>
<message>
'==> REPLICATION CHANGES %s:%s : \n%s\n' % \
- (server.getHostname(), server.getPort(), searchResult)
+ (replServer.getHostname(), replServer.getPort(), searchResult)
</message>
</sequence>
</paralleliterate>
@@ -524,16 +547,24 @@
}
</call>
- <paralleliterate var="server" in="_topologyServerList">
+ <paralleliterate var="server"
+ in="_topologyServerList"
+ indexvar="i">
<sequence>
+ <script>
+ if globalSplitServers:
+ replServer = _topologyReplServerList[i]
+ else:
+ replServer = server
+ </script>
<!-- Search for entry add -->
<call function="'ldapSearchWithScript'">
{ 'location' : clientHost,
'dsPath' : clientPath,
- 'dsInstanceHost' : server.getHostname(),
- 'dsInstancePort' : server.getPort(),
- 'dsInstanceDn' : server.getRootDn(),
- 'dsInstancePswd' : server.getRootPwd(),
+ 'dsInstanceHost' : replServer.getHostname(),
+ 'dsInstancePort' : replServer.getPort(),
+ 'dsInstanceDn' : replServer.getRootDn(),
+ 'dsInstancePswd' : replServer.getRootPwd(),
'dsBaseDN' : 'dc=replicationChanges',
'dsFilter' : 'uid=*'
}
@@ -545,7 +576,7 @@
</script>
<message>
'==> REPLICATION CHANGES %s:%s : \n%s\n' % \
- (server.getHostname(), server.getPort(), searchResult)
+ (replServer.getHostname(), replServer.getPort(), searchResult)
</message>
</sequence>
</paralleliterate>
@@ -567,16 +598,24 @@
}
</call>
- <paralleliterate var="server" in="_topologyServerList">
+ <paralleliterate var="server"
+ in="_topologyServerList"
+ indexvar="i">
<sequence>
+ <script>
+ if globalSplitServers:
+ replServer = _topologyReplServerList[i]
+ else:
+ replServer = server
+ </script>
<!-- Search for entry add -->
<call function="'ldapSearchWithScript'">
{ 'location' : clientHost,
'dsPath' : clientPath,
- 'dsInstanceHost' : server.getHostname(),
- 'dsInstancePort' : server.getPort(),
- 'dsInstanceDn' : server.getRootDn(),
- 'dsInstancePswd' : server.getRootPwd(),
+ 'dsInstanceHost' : replServer.getHostname(),
+ 'dsInstancePort' : replServer.getPort(),
+ 'dsInstanceDn' : replServer.getRootDn(),
+ 'dsInstancePswd' : replServer.getRootPwd(),
'dsBaseDN' : 'dc=replicationChanges',
'dsFilter' : 'uid=*'
}
@@ -588,35 +627,54 @@
</script>
<message>
'==> REPLICATION CHANGES %s:%s : \n%s\n' % \
- (server.getHostname(), server.getPort(), searchResult)
+ (replServer.getHostname(), replServer.getPort(), searchResult)
</message>
</sequence>
</paralleliterate>
<!-- Add new server to topology -->
+ <script>
+ if master.isOnlyLdapServer():
+ masterReplPort = None
+ else:
+ masterReplPort = masterReplicationServer.getPort()
+
+ if server3.isOnlyLdapServer():
+ server3ReplPort = None
+ else:
+ replicationServer3 = server3.getChangelogServer()
+ server3ReplPort = replicationServer3.getPort()
+ </script>
+
<message>
'+++++ resynchronization add server: Enable replication for \
server:\nHost: %s\nLdap port: %s\nReplication port: %s\n\
Replicated DN list: %s' \
% (server3.getHostname(), server3.getPort(),
- replicationServer3.getPort(), [synchroSuffix])
+ server3ReplPort, [synchroSuffix])
</message>
+
<call function="'enableReplication'">
{ 'location' : clientHost,
'dsPath' : clientPath,
- 'dsInstanceHost' : server3.getHostname(),
- 'dsInstanceAdminPort' : server3.getAdminPort(),
- 'dsInstanceDn' : server3.getRootDn(),
- 'dsInstancePswd' : server3.getRootPwd(),
- 'dsReplicationPort' : replicationServer3.getPort(),
'refInstanceHost' : masterHost,
'refInstanceAdminPort' : master.getAdminPort(),
'refInstanceDn' : master.getRootDn(),
'refInstancePswd' : master.getRootPwd(),
- 'refReplicationPort' : masterReplicationServer.getPort(),
+ 'refReplicationPort' : masterReplPort,
+ 'refOnlyLdapServer' : master.isOnlyLdapServer(),
+ 'refOnlyReplServer' : master.isOnlyReplServer(),
+ 'dsInstanceHost' : server3.getHostname(),
+ 'dsInstanceAdminPort' : server3.getAdminPort(),
+ 'dsInstanceDn' : server3.getRootDn(),
+ 'dsInstancePswd' : server3.getRootPwd(),
+ 'dsReplicationPort' : server3ReplPort,
+ 'dsOnlyLdapServer' : server3.isOnlyLdapServer(),
+ 'dsOnlyReplServer' : server3.isOnlyReplServer(),
'replicationDnList' : [synchroSuffix]
}
- </call>
+ </call>
+
<script>
# Add 3rd server to replicated servers list now that replication
@@ -625,16 +683,24 @@
consumerList = consumerList + [server3]
</script>
- <paralleliterate var="server" in="_topologyServerList">
+ <paralleliterate var="server"
+ in="_topologyServerList"
+ indexvar="i">
<sequence>
+ <script>
+ if globalSplitServers:
+ replServer = _topologyReplServerList[i]
+ else:
+ replServer = server
+ </script>
<!-- Search for entry add -->
<call function="'ldapSearchWithScript'">
{ 'location' : clientHost,
'dsPath' : clientPath,
- 'dsInstanceHost' : server.getHostname(),
- 'dsInstancePort' : server.getPort(),
- 'dsInstanceDn' : server.getRootDn(),
- 'dsInstancePswd' : server.getRootPwd(),
+ 'dsInstanceHost' : replServer.getHostname(),
+ 'dsInstancePort' : replServer.getPort(),
+ 'dsInstanceDn' : replServer.getRootDn(),
+ 'dsInstancePswd' : replServer.getRootPwd(),
'dsBaseDN' : 'dc=replicationChanges',
'dsFilter' : 'uid=*'
}
@@ -646,7 +712,7 @@
</script>
<message>
'==> REPLICATION CHANGES %s:%s : \n%s\n' % \
- (server.getHostname(), server.getPort(), searchResult)
+ (replServer.getHostname(), replServer.getPort(), searchResult)
</message>
</sequence>
</paralleliterate>
@@ -680,16 +746,24 @@
}
</call>
- <paralleliterate var="server" in="_topologyServerList">
+ <paralleliterate var="server"
+ in="_topologyServerList"
+ indexvar="i">
<sequence>
+ <script>
+ if globalSplitServers:
+ replServer = _topologyReplServerList[i]
+ else:
+ replServer = server
+ </script>
<!-- Search for entry add -->
<call function="'ldapSearchWithScript'">
{ 'location' : clientHost,
'dsPath' : clientPath,
- 'dsInstanceHost' : server.getHostname(),
- 'dsInstancePort' : server.getPort(),
- 'dsInstanceDn' : server.getRootDn(),
- 'dsInstancePswd' : server.getRootPwd(),
+ 'dsInstanceHost' : replServer.getHostname(),
+ 'dsInstancePort' : replServer.getPort(),
+ 'dsInstanceDn' : replServer.getRootDn(),
+ 'dsInstancePswd' : replServer.getRootPwd(),
'dsBaseDN' : 'dc=replicationChanges',
'dsFilter' : 'uid=*'
}
@@ -701,7 +775,7 @@
</script>
<message>
'==> REPLICATION CHANGES %s:%s : \n%s\n' % \
- (server.getHostname(), server.getPort(), searchResult)
+ (replServer.getHostname(), replServer.getPort(), searchResult)
</message>
</sequence>
</paralleliterate>
diff --git a/opends/tests/staf-tests/functional-tests/testcases/replication/totalupdate/totalupdate.xml b/opends/tests/staf-tests/functional-tests/testcases/replication/totalupdate/totalupdate.xml
index a33f114..8a0af36 100644
--- a/opends/tests/staf-tests/functional-tests/testcases/replication/totalupdate/totalupdate.xml
+++ b/opends/tests/staf-tests/functional-tests/testcases/replication/totalupdate/totalupdate.xml
@@ -188,10 +188,10 @@
listAttr.append('objectclass:organizationalperson')
listAttr.append('objectclass:inetorgperson')
listAttr.append('objectclass:person')
- listAttr.append('givenname: Professor Moriarty')
- listAttr.append('sn: Moriarty')
- listAttr.append('cn: Professor Moriarty')
- listAttr.append('l: London')
+ listAttr.append('givenname:Professor Moriarty')
+ listAttr.append('sn:Moriarty')
+ listAttr.append('cn:Professor Moriarty')
+ listAttr.append('l:London')
</script>
<call function="'addAnEntry'">
@@ -315,19 +315,37 @@
<!-- Re-enable schema replication on "master" server, and
at the same time initialise the schema across the topology -->
+ <script>
+ if master.isOnlyLdapServer():
+ masterReplPort = None
+ else:
+ masterReplPort = masterReplicationServer.getPort()
+
+ if consumer.isOnlyLdapServer():
+ consumerReplPort = None
+ else:
+ replicationServer = consumer.getChangelogServer()
+ consumerReplPort = replicationServer.getPort()
+ </script>
<call function="'enableReplication'">
{ 'location' : clientHost,
'dsPath' : clientPath,
- 'dsInstanceHost' : masterHost,
- 'dsInstanceAdminPort' : master.getAdminPort(),
- 'dsInstanceDn' : master.getRootDn(),
- 'dsInstancePswd' : master.getRootPwd(),
- 'refInstanceHost' : consumer.getHostname(),
- 'refInstanceAdminPort' : consumer.getAdminPort(),
- 'refInstanceDn' : consumer.getRootDn(),
- 'refInstancePswd' : consumer.getRootPwd(),
+ 'refInstanceHost' : masterHost,
+ 'refInstanceAdminPort' : master.getAdminPort(),
+ 'refInstanceDn' : master.getRootDn(),
+ 'refInstancePswd' : master.getRootPwd(),
+ 'refReplicationPort' : masterReplPort,
+ 'refOnlyLdapServer' : master.isOnlyLdapServer(),
+ 'refOnlyReplServer' : master.isOnlyReplServer(),
+ 'dsInstanceHost' : consumer.getHostname(),
+ 'dsInstanceAdminPort' : consumer.getAdminPort(),
+ 'dsInstanceDn' : consumer.getRootDn(),
+ 'dsInstancePswd' : consumer.getRootPwd(),
+ 'dsReplicationPort' : consumerReplPort,
+ 'dsOnlyLdapServer' : consumer.isOnlyLdapServer(),
+ 'dsOnlyReplServer' : consumer.isOnlyReplServer(),
'replicationDnList' : ['cn=schema']
- }
+ }
</call>
<!-- Add entry to "consumer" server -->
@@ -493,10 +511,10 @@
listAttr.append('objectclass:organizationalperson')
listAttr.append('objectclass:inetorgperson')
listAttr.append('objectclass:person')
- listAttr.append('givenname: Professor Moriarty')
- listAttr.append('sn: Moriarty')
- listAttr.append('cn: Professor Moriarty')
- listAttr.append('l: London')
+ listAttr.append('givenname:Professor Moriarty')
+ listAttr.append('sn:Moriarty')
+ listAttr.append('cn:Professor Moriarty')
+ listAttr.append('l:London')
</script>
<call function="'addAnEntry'">
diff --git a/opends/tests/staf-tests/shared/ant/build.properties b/opends/tests/staf-tests/shared/ant/build.properties
index ff7c156..612737c 100644
--- a/opends/tests/staf-tests/shared/ant/build.properties
+++ b/opends/tests/staf-tests/shared/ant/build.properties
@@ -126,3 +126,4 @@
logs.uri=file://
tests.os.string=${os.name}
tests.jvm.string=${java.version}(${sun.arch.data.model} bits)
+replication.split=false
diff --git a/opends/tests/staf-tests/shared/functions/tools.xml b/opends/tests/staf-tests/shared/functions/tools.xml
index 826d226..835f2a5 100755
--- a/opends/tests/staf-tests/shared/functions/tools.xml
+++ b/opends/tests/staf-tests/shared/functions/tools.xml
@@ -475,6 +475,14 @@
</else>
</if>
</sequence>
+ <else>
+ <sequence>
+ <message log="1" level="'Error'">
+ 'LdifDiffWithScript: command run FAILED.'
+ </message>
+ <return> -1 </return>
+ </sequence>
+ </else>
</if>
<if expr="diffRC == 0">
diff --git a/opends/tests/staf-tests/shared/functions/topology.xml b/opends/tests/staf-tests/shared/functions/topology.xml
index 857c187..ffb009f 100755
--- a/opends/tests/staf-tests/shared/functions/topology.xml
+++ b/opends/tests/staf-tests/shared/functions/topology.xml
@@ -56,12 +56,25 @@
</function-arg-description>
<function-arg-property name="type" value="string"/>
</function-arg-def>
+ <function-arg-def name="splitReplicationServers"
+ type="optional"
+ default="False">
+ <function-arg-description>
+ Specifies whether the replication servers should be split from the
+ ldap servers and be configured on separate instances.
+ </function-arg-description>
+ <function-arg-property name="type" value="boolean"/>
+ </function-arg-def>
</function-map-args>
<sequence>
<script>
if not sharedDataFolder and CurrentTestPath.has_key('group'):
sharedDataFolder=CurrentTestPath['group']
+
+ _topologyServerList = []
+ _topologyReplServerList = []
+ _splitServerList = []
</script>
<call function="'prepareInstanceCreation'">
@@ -100,12 +113,34 @@
{ 'file' : topologyDescFile }
</call>
+ <if expr="splitReplicationServers">
+ <sequence>
+ <message>
+ 'Replication servers will be splitted from ldap servers.'
+ </message>
+ <iterate var="server" in="_topologyServerList" indexvar="i">
+ <sequence>
+ <script>
+ _topologyReplServerList.append(server.splitReplServer())
+ _splitServerList.append(server)
+ _splitServerList.append(_topologyReplServerList[i])
+ </script>
+ </sequence>
+ </iterate>
+ </sequence>
+ <else>
+ <script>
+ _splitServerList = _topologyServerList
+ </script>
+ </else>
+ </if>
+
<message>
'Number of server instances required by the deployment: %s' \
- % len(_topologyServerList)
+ % len(_splitServerList)
</message>
- <iterate var="server" in="_topologyServerList">
+ <iterate var="server" in="_splitServerList">
<sequence>
<!-- Create the instance-->
<call function="'createInstance'">
@@ -1031,8 +1066,26 @@
Encrypt communications over dsReplicationPort (secure replication)
</function-arg-description>
<function-arg-property name="type" value="boolean" />
- </function-arg-def>
-
+ </function-arg-def>
+
+ <function-arg-def name="dsOnlyLdapServer"
+ type="optional"
+ default="None">
+ <function-arg-description>
+ Server only to contain replicated data (no Repl server/changelog)
+ </function-arg-description>
+ <function-arg-property name="type" value="boolean" />
+ </function-arg-def>
+
+ <function-arg-def name="dsOnlyReplServer"
+ type="optional"
+ default="None">
+ <function-arg-description>
+ Server only to contain Repl server/changelog (no replicated data)
+ </function-arg-description>
+ <function-arg-property name="type" value="boolean" />
+ </function-arg-def>
+
<function-arg-def name="refInstanceHost"
type="optional"
default="STAF_REMOTE_HOSTNAME">
@@ -1079,7 +1132,26 @@
Encrypt communications over refReplicationPort (secure replication)
</function-arg-description>
<function-arg-property name="type" value="boolean" />
- </function-arg-def>
+ </function-arg-def>
+
+ <function-arg-def name="refOnlyLdapServer"
+ type="optional"
+ default="None">
+ <function-arg-description>
+ Server only to contain replicated data (no Repl server/changelog)
+ </function-arg-description>
+ <function-arg-property name="type" value="boolean" />
+ </function-arg-def>
+
+ <function-arg-def name="refOnlyReplServer"
+ type="optional"
+ default="None">
+ <function-arg-description>
+ Server only to contain Repl server/changelog (no replicated data)
+ </function-arg-description>
+ <function-arg-property name="type" value="boolean" />
+ </function-arg-def>
+
<function-arg-def name="replicationDnList" type="required">
<function-arg-description>
@@ -1089,8 +1161,8 @@
</function-arg-def>
<function-arg-def name="adminUID"
- type="optional"
- default="AdminUID">
+ type="optional"
+ default="AdminUID">
<function-arg-description>
Global Administrator UID
</function-arg-description>
@@ -1098,8 +1170,8 @@
</function-arg-def>
<function-arg-def name="adminPswd"
- type="optional"
- default="AdminPswd">
+ type="optional"
+ default="AdminPswd">
<function-arg-description>
Global Administrator password
</function-arg-description>
@@ -1148,41 +1220,53 @@
STAFCmdParamsList.append('-Q')
STAFCmdParamsList.append('-X')
- if dsInstanceHost:
- STAFCmdParamsList.append('--host1 %s' % dsInstanceHost)
-
- if dsInstanceAdminPort:
- STAFCmdParamsList.append('--port1 %s' % dsInstanceAdminPort)
-
- if dsInstanceDn:
- STAFCmdParamsList.append('--bindDN1 "%s"' % dsInstanceDn)
-
- if dsInstancePswd:
- STAFCmdParamsList.append('--bindPassword1 "%s"' % dsInstancePswd)
-
- if dsReplicationPort:
- STAFCmdParamsList.append('--replicationPort1 %s' % dsReplicationPort)
-
- if dsSecureReplication:
- STAFCmdParamsList.append('--secureReplication1')
-
if refInstanceHost:
- STAFCmdParamsList.append('--host2 %s' % refInstanceHost)
+ STAFCmdParamsList.append('--host1 %s' % refInstanceHost)
if refInstanceAdminPort:
- STAFCmdParamsList.append('--port2 %s' % refInstanceAdminPort)
+ STAFCmdParamsList.append('--port1 %s' % refInstanceAdminPort)
if refInstanceDn:
- STAFCmdParamsList.append('--bindDN2 "%s"' % refInstanceDn)
+ STAFCmdParamsList.append('--bindDN1 "%s"' % refInstanceDn)
if refInstancePswd:
- STAFCmdParamsList.append('--bindPassword2 "%s"' % refInstancePswd)
+ STAFCmdParamsList.append('--bindPassword1 "%s"' % refInstancePswd)
if refReplicationPort:
- STAFCmdParamsList.append('--replicationPort2 %s' % refReplicationPort)
+ STAFCmdParamsList.append('--replicationPort1 %s' % refReplicationPort)
if refSecureReplication:
- STAFCmdParamsList.append('--secureReplication2')
+ STAFCmdParamsList.append('--secureReplication1')
+
+ if refOnlyLdapServer:
+ STAFCmdParamsList.append('--noReplicationServer1')
+
+ if refOnlyReplServer:
+ STAFCmdParamsList.append('--onlyReplicationServer1')
+
+ if dsInstanceHost:
+ STAFCmdParamsList.append('--host2 %s' % dsInstanceHost)
+
+ if dsInstanceAdminPort:
+ STAFCmdParamsList.append('--port2 %s' % dsInstanceAdminPort)
+
+ if dsInstanceDn:
+ STAFCmdParamsList.append('--bindDN2 "%s"' % dsInstanceDn)
+
+ if dsInstancePswd:
+ STAFCmdParamsList.append('--bindPassword2 "%s"' % dsInstancePswd)
+
+ if dsReplicationPort:
+ STAFCmdParamsList.append('--replicationPort2 %s' % dsReplicationPort)
+
+ if dsSecureReplication:
+ STAFCmdParamsList.append('--secureReplication2')
+
+ if dsOnlyLdapServer:
+ STAFCmdParamsList.append('--noReplicationServer2')
+
+ if dsOnlyReplServer:
+ STAFCmdParamsList.append('--onlyReplicationServer2')
if replicationDnList:
for dn in replicationDnList:
@@ -1723,7 +1807,7 @@
<else>
<!-- MULTIPLE instance deployment: parameters read from
topologyDescFile -->
- <iterate var="server" in="_topologyServerList">
+ <iterate var="server" in="_splitServerList">
<call function="'removeInstance'">
{ 'dsHost' : server.getHostname(),
'dsDir' : server.getDir()
diff --git a/opends/tests/staf-tests/shared/python/replication.py b/opends/tests/staf-tests/shared/python/replication.py
index 66531a6..2117455 100644
--- a/opends/tests/staf-tests/shared/python/replication.py
+++ b/opends/tests/staf-tests/shared/python/replication.py
@@ -90,7 +90,7 @@
self.synchronizedSuffixList = []
def __repr__(self):
- return "Server: hostname=%s, directory=%s" % (self.hostanme, self.dir)
+ return "Server: hostname=%s, directory=%s" % (self.hostname, self.dir)
def addChangelogServer(self, changelogServer):
self.changelogServer = changelogServer
@@ -132,7 +132,32 @@
return self.synchronizedSuffixList
def requiresSynchronization(self):
- return (self.changelogServer is not None) or (len(self.synchronizedSuffixList) > 0)
+ return (self.changelogServer is not None) or (len(self.synchronizedSuffixList) > 0)
+
+ def isOnlyLdapServer(self):
+ return (self.changelogServer is None) and (len(self.synchronizedSuffixList) > 0)
+
+ def isOnlyReplServer(self):
+ return (self.changelogServer is not None) and (len(self.synchronizedSuffixList) == 0)
+
+ def splitReplServer(self):
+ new_hostname = self.hostname
+ new_dir = '%s-repl-server' % self.dir
+ new_port = str( int(self.port) + 1 )
+ new_adminPort = str( int(self.adminPort) + 1 )
+ new_sslPort = str( int(self.sslPort) + 1 )
+ new_jmxPort = str( int(self.jmxPort) + 1 )
+ new_rootDn = self.rootDn
+ new_rootPwd = self.rootPwd
+ new_baseDn = self.baseDn
+ new_changelogServer = self.changelogServer
+ self.changelogServer = None
+
+ replServer = Server(new_hostname, new_dir, new_port, new_adminPort, new_sslPort,
+ new_jmxPort, new_rootDn, new_rootPwd, new_baseDn)
+ replServer.addChangelogServer(new_changelogServer)
+
+ return replServer
diff --git a/opends/tests/staf-tests/shared/tests/config.py.stubs b/opends/tests/staf-tests/shared/tests/config.py.stubs
index 6ea01d2..f768bde 100644
--- a/opends/tests/staf-tests/shared/tests/config.py.stubs
+++ b/opends/tests/staf-tests/shared/tests/config.py.stubs
@@ -52,6 +52,7 @@
DIRECTORY_INSTANCE_SFX = 'dc=com'
DIRECTORY_INSTANCE_BE = 'userRoot'
REPLICATION_CONFIG_DIR = '${tests.run.dir}/${tests.run.time}/config'
+REPLICATION_SPLIT_SERVERS = '${replication.split}'
JAVA_HOME = '${remote.javahome}'
LOCAL_JAVA_HOME = '${local.javahome}'
LOGS_ROOT = '${tests.run.dir}/${tests.run.time}'
--
Gitblit v1.10.0