From 803715dde2f0abbf2da38909a15443429dc547b4 Mon Sep 17 00:00:00 2001
From: ugaston <ugaston@localhost>
Date: Mon, 19 Nov 2007 14:59:57 +0000
Subject: [PATCH] Replication testsuite maintenance changes
---
opendj-sdk/opends/tests/functional-tests/testcases/replication/replication_setup.xml | 37 -----
opendj-sdk/opends/tests/functional-tests/testcases/replication/schema/schema.xml | 79 +++++++---
opendj-sdk/opends/tests/functional-tests/testcases/replication/totalupdate/totalupdate.xml | 77 ++++++++--
opendj-sdk/opends/tests/shared/functions/topology.xml | 201 +++++++++++++++++++++++++++-
4 files changed, 305 insertions(+), 89 deletions(-)
diff --git a/opendj-sdk/opends/tests/functional-tests/testcases/replication/replication_setup.xml b/opendj-sdk/opends/tests/functional-tests/testcases/replication/replication_setup.xml
index d2727fe..f15ec03 100644
--- a/opendj-sdk/opends/tests/functional-tests/testcases/replication/replication_setup.xml
+++ b/opendj-sdk/opends/tests/functional-tests/testcases/replication/replication_setup.xml
@@ -91,40 +91,6 @@
[_topologyServerList]
</call>
- <!-- Special setup for testcase: Replication: Total Update: Schema total update
- Modify schema in one server before replication is enabled. -->
- <if expr="CurrentTestPath['suite'] == 'main.replication.total-update'">
- <sequence>
- <script>
- newObjectclass = '( testobjectclass1-oid NAME \'testobjectclass-1\' SUP person MAY ( street $ testattribute-1 $ c ) X-ORIGIN \'user defined\' )'
- newAttributetype = '( testattribute1-oid NAME \'testattribute-1\' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN \'user defined\' )'
- </script>
-
- <!-- Modify schema in "master" server -->
- <call function="'modifyAnAttribute'">
- { 'dsPath' : masterPath,
- 'dsInstanceHost' : masterHost ,
- 'dsInstancePort' : master.getPort(),
- 'dsInstanceDn' : master.getRootDn(),
- 'dsInstancePswd' : master.getRootPwd(),
- 'DNToModify' : 'cn=schema',
- 'attributeName' : 'attributeTypes',
- 'newAttributeValue' : newAttributetype,
- 'changetype' : 'add' }
- </call>
- <call function="'modifyAnAttribute'">
- { 'dsPath' : masterPath,
- 'dsInstanceHost' : masterHost ,
- 'dsInstancePort' : master.getPort(),
- 'dsInstanceDn' : master.getRootDn(),
- 'dsInstancePswd' : master.getRootPwd(),
- 'DNToModify' : 'cn=schema',
- 'attributeName' : 'objectClasses',
- 'newAttributeValue' : newObjectclass,
- 'changetype' : 'add' }
- </call>
- </sequence>
- </if>
<iterate var="server" in="consumerList">
<sequence>
@@ -162,7 +128,8 @@
'refInstanceDn' : master.getRootDn(),
'refInstancePswd' : master.getRootPwd(),
'refReplicationPort' : masterReplicationServer.getPort(),
- 'replicationDnList' : replicatedDnList }
+ 'replicationDnList' : replicatedDnList,
+ 'useSecondServerAsSchemaSource' : True }
</call>
</sequence>
</if>
diff --git a/opendj-sdk/opends/tests/functional-tests/testcases/replication/schema/schema.xml b/opendj-sdk/opends/tests/functional-tests/testcases/replication/schema/schema.xml
index bcf4a29..5d73341 100644
--- a/opendj-sdk/opends/tests/functional-tests/testcases/replication/schema/schema.xml
+++ b/opendj-sdk/opends/tests/functional-tests/testcases/replication/schema/schema.xml
@@ -64,7 +64,10 @@
synchroSuffix = master.getSynchronizedSuffixList()[0].getSuffixDn()
currentSchemaFile = '%s/config/schema/99-user.ldif' % masterPath
- provSchemaFile = '%s/../last-99-user.ldif' % masterPath
+ provSchemaFile = '%s/../last-99-user.ldif' % masterPath
+
+ consumer = consumerList[0]
+ consumerHost = consumer.getHostname()
</script>
@@ -113,14 +116,14 @@
'changetype' : 'add' }
</call>
- <!-- Add entry to "master" server -->
+ <!-- Add entry to "consumer" server -->
<call function="'addEntry'">
{ 'location' : clientHost,
'dsPath' : clientPath,
- 'dsInstanceHost' : masterHost,
- 'dsInstancePort' : master.getPort(),
- 'dsInstanceDn' : master.getRootDn(),
- 'dsInstancePswd' : master.getRootPwd(),
+ 'dsInstanceHost' : consumerHost,
+ 'dsInstancePort' : consumer.getPort(),
+ 'dsInstanceDn' : consumer.getRootDn(),
+ 'dsInstancePswd' : consumer.getRootPwd(),
'entryToBeAdded' : '%s/replication/testuser-0.ldif' % clientDataDir }
</call>
@@ -133,6 +136,10 @@
<call function="'verifyTrees'">
[ clientHost, clientPath, master, consumerList, synchroSuffix ]
</call>
+
+ <script>
+ knownIssue(2599)
+ </script>
<call function="'testCase_Postamble'"/>
</sequence>
@@ -187,14 +194,14 @@
'changetype' : 'add' }
</call>
- <!-- Add entry to "master" server -->
+ <!-- Add entry to "consumer" server -->
<call function="'addEntry'">
{ 'location' : clientHost,
'dsPath' : clientPath,
- 'dsInstanceHost' : masterHost,
- 'dsInstancePort' : master.getPort(),
- 'dsInstanceDn' : master.getRootDn(),
- 'dsInstancePswd' : master.getRootPwd(),
+ 'dsInstanceHost' : consumerHost,
+ 'dsInstancePort' : consumer.getPort(),
+ 'dsInstanceDn' : consumer.getRootDn(),
+ 'dsInstancePswd' : consumer.getRootPwd(),
'entryToBeAdded' : '%s/replication/testuser-1.ldif' % clientDataDir }
</call>
@@ -207,7 +214,11 @@
<call function="'verifyTrees'">
[ clientHost, clientPath, master, consumerList, synchroSuffix ]
</call>
-
+
+ <script>
+ knownIssue(2599)
+ </script>
+
<call function="'testCase_Postamble'"/>
</sequence>
</testcase>
@@ -283,7 +294,11 @@
<call function="'verifyTrees'">
[ clientHost, clientPath, master, consumerList, synchroSuffix ]
</call>
-
+
+ <script>
+ knownIssue(2599)
+ </script>
+
<call function="'testCase_Postamble'"/>
</sequence>
</testcase>
@@ -359,7 +374,11 @@
<call function="'verifyTrees'">
[ clientHost, clientPath, master, consumerList, synchroSuffix ]
</call>
-
+
+ <script>
+ knownIssue(2599)
+ </script>
+
<call function="'testCase_Postamble'"/>
</sequence>
</testcase>
@@ -412,14 +431,14 @@
'sleepForMilliSeconds' : 1000 }
</call>
- <!-- Add entry to "master" server -->
+ <!-- Add entry to "consumer" server -->
<call function="'addEntry'">
{ 'location' : clientHost,
'dsPath' : clientPath,
- 'dsInstanceHost' : masterHost,
- 'dsInstancePort' : master.getPort(),
- 'dsInstanceDn' : master.getRootDn(),
- 'dsInstancePswd' : master.getRootPwd(),
+ 'dsInstanceHost' : consumerHost,
+ 'dsInstancePort' : consumer.getPort(),
+ 'dsInstanceDn' : consumer.getRootDn(),
+ 'dsInstancePswd' : consumer.getRootPwd(),
'entryToBeAdded' : '%s/replication/newtestuser-0.ldif' % clientDataDir }
</call>
@@ -432,7 +451,11 @@
<call function="'verifyTrees'">
[ clientHost, clientPath, master, consumerList, synchroSuffix ]
</call>
-
+
+ <script>
+ knownIssue(2599)
+ </script>
+
<call function="'testCase_Postamble'"/>
</sequence>
</testcase>
@@ -486,14 +509,14 @@
'sleepForMilliSeconds' : 1000 }
</call>
- <!-- Add entry to "master" server -->
+ <!-- Add entry to "consumer" server -->
<call function="'addEntry'">
{ 'location' : clientHost,
'dsPath' : clientPath,
- 'dsInstanceHost' : masterHost,
- 'dsInstancePort' : master.getPort(),
- 'dsInstanceDn' : master.getRootDn(),
- 'dsInstancePswd' : master.getRootPwd(),
+ 'dsInstanceHost' : consumerHost,
+ 'dsInstancePort' : consumer.getPort(),
+ 'dsInstanceDn' : consumer.getRootDn(),
+ 'dsInstancePswd' : consumer.getRootPwd(),
'entryToBeAdded' : '%s/replication/newtestuser-1.ldif' % clientDataDir }
</call>
@@ -506,7 +529,11 @@
<call function="'verifyTrees'">
[ clientHost, clientPath, master, consumerList, synchroSuffix ]
</call>
-
+
+ <script>
+ knownIssue(2599)
+ </script>
+
<call function="'testCase_Postamble'"/>
</sequence>
</testcase>
diff --git a/opendj-sdk/opends/tests/functional-tests/testcases/replication/totalupdate/totalupdate.xml b/opendj-sdk/opends/tests/functional-tests/testcases/replication/totalupdate/totalupdate.xml
index ace8e16..c308ec7 100644
--- a/opendj-sdk/opends/tests/functional-tests/testcases/replication/totalupdate/totalupdate.xml
+++ b/opendj-sdk/opends/tests/functional-tests/testcases/replication/totalupdate/totalupdate.xml
@@ -188,7 +188,7 @@
<script>
consumer = consumerList[0]
</script>
-
+
<!-- Try to add entry belonging to new schema (see replication setup)
to "consumer" server; should be rejected with error 65 (objectclass violation) -->
<call function="'addEntry'">
@@ -202,21 +202,60 @@
'expectedRC' : 65 }
</call>
- <!-- Perform the total update on every server -->
- <iterate var="server" in="consumerList">
- <sequence>
- <call function="'initializeReplication'">
- { 'location' : clientHost,
- 'dsPath' : clientPath,
- 'dsInstanceHost' : server.getHostname(),
- 'dsInstancePort' : server.getPort(),
- 'sourceInstanceHost' : masterHost,
- 'sourceInstancePort' : master.getPort(),
- 'replicationDnList' : ['cn=schema']
- }
- </call>
- </sequence>
- </iterate>
+
+ <!-- Disable schema replication on "master" server -->
+ <call function="'disableReplication'">
+ { 'location' : clientHost,
+ 'dsPath' : clientPath,
+ 'dsInstanceHost' : masterHost,
+ 'dsInstancePort' : master.getPort(),
+ 'replicationDnList' : ['cn=schema'] }
+ </call>
+
+ <script>
+ newObjectclass = '( testobjectclass1-oid NAME \'testobjectclass-1\' SUP person MAY ( street $ testattribute-1 $ c ) X-ORIGIN \'user defined\' )'
+ newAttributetype = '( testattribute1-oid NAME \'testattribute-1\' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN \'user defined\' )'
+ </script>
+
+ <!-- Modify schema in "master" server -->
+ <call function="'modifyAnAttribute'">
+ { 'dsPath' : masterPath,
+ 'dsInstanceHost' : masterHost ,
+ 'dsInstancePort' : master.getPort(),
+ 'dsInstanceDn' : master.getRootDn(),
+ 'dsInstancePswd' : master.getRootPwd(),
+ 'DNToModify' : 'cn=schema',
+ 'attributeName' : 'attributeTypes',
+ 'newAttributeValue' : newAttributetype,
+ 'changetype' : 'add' }
+ </call>
+ <call function="'modifyAnAttribute'">
+ { 'dsPath' : masterPath,
+ 'dsInstanceHost' : masterHost ,
+ 'dsInstancePort' : master.getPort(),
+ 'dsInstanceDn' : master.getRootDn(),
+ 'dsInstancePswd' : master.getRootPwd(),
+ 'DNToModify' : 'cn=schema',
+ 'attributeName' : 'objectClasses',
+ 'newAttributeValue' : newObjectclass,
+ 'changetype' : 'add' }
+ </call>
+
+ <!-- Re-enable schema replication on "master" server, and
+ at the same time initialise the schema across the topology -->
+ <call function="'enableReplication'">
+ { 'location' : clientHost,
+ 'dsPath' : clientPath,
+ 'dsInstanceHost' : masterHost,
+ 'dsInstancePort' : master.getPort(),
+ 'dsInstanceDn' : master.getRootDn(),
+ 'dsInstancePswd' : master.getRootPwd(),
+ 'refInstanceHost' : consumer.getHostname(),
+ 'refInstancePort' : consumer.getPort(),
+ 'refInstanceDn' : consumer.getRootDn(),
+ 'refInstancePswd' : consumer.getRootPwd(),
+ 'replicationDnList' : ['cn=schema'] }
+ </call>
<!-- Add entry to "consumer" server -->
<call function="'addEntry'">
@@ -240,7 +279,7 @@
</call>
<script>
- knownIssue(2263)
+ knownIssue(2587)
</script>
<call function="'testCase_Postamble'"/>
@@ -359,11 +398,11 @@
<call function="'verifyTrees'">
[ clientHost, clientPath, master, consumerList, 'o=example' ]
</call>
-
+<!--
<script>
knownIssue(2425)
</script>
-
+-->
<call function="'testCase_Postamble'"/>
</sequence>
</testcase>
diff --git a/opendj-sdk/opends/tests/shared/functions/topology.xml b/opendj-sdk/opends/tests/shared/functions/topology.xml
index b489909..3697e65 100755
--- a/opendj-sdk/opends/tests/shared/functions/topology.xml
+++ b/opendj-sdk/opends/tests/shared/functions/topology.xml
@@ -758,12 +758,23 @@
<function-arg-property name="type" value="string" />
</function-arg-def>
- <function-arg-def name="dsReplicationPort" type="required">
+ <function-arg-def name="dsReplicationPort"
+ type="optional"
+ default="None">
<function-arg-description>
Replication port number
</function-arg-description>
<function-arg-property name="type" value="Port number" />
</function-arg-def>
+
+ <function-arg-def name="dsSecureReplication"
+ type="optional"
+ default="None">
+ <function-arg-description>
+ Encrypt communications over dsReplicationPort (secure replication)
+ </function-arg-description>
+ <function-arg-property name="type" value="boolean" />
+ </function-arg-def>
<function-arg-def name="refInstanceHost"
type="optional"
@@ -795,12 +806,23 @@
<function-arg-property name="type" value="string" />
</function-arg-def>
- <function-arg-def name="refReplicationPort" type="required">
+ <function-arg-def name="refReplicationPort"
+ type="optional"
+ default="None">
<function-arg-description>
Reference server Replication port number
</function-arg-description>
<function-arg-property name="type" value="Port number" />
</function-arg-def>
+
+ <function-arg-def name="refSecureReplication"
+ type="optional"
+ default="None">
+ <function-arg-description>
+ Encrypt communications over refReplicationPort (secure replication)
+ </function-arg-description>
+ <function-arg-property name="type" value="boolean" />
+ </function-arg-def>
<function-arg-def name="replicationDnList" type="required">
<function-arg-description>
@@ -826,7 +848,25 @@
</function-arg-description>
<function-arg-property name="type" value="string" />
</function-arg-def>
-
+
+ <function-arg-def name="noSchemaReplication"
+ type="optional"
+ default="None">
+ <function-arg-description>
+ Do not enable schema replication
+ </function-arg-description>
+ <function-arg-property name="type" value="boolean" />
+ </function-arg-def>
+
+ <function-arg-def name="useSecondServerAsSchemaSource"
+ type="optional"
+ default="None">
+ <function-arg-description>
+ Take the refInstanceHost as the source for the schema initialisation
+ </function-arg-description>
+ <function-arg-property name="type" value="boolean" />
+ </function-arg-def>
+
<function-arg-def name="expectedRC" type="optional" default="0">
<function-arg-description>
Expected return code value. Default value is 0
@@ -851,22 +891,25 @@
STAFCmdParamsList.append('-Q')
if dsInstanceHost:
- STAFCmdParamsList.append('-h %s' % dsInstanceHost)
+ STAFCmdParamsList.append('--host1 %s' % dsInstanceHost)
if dsInstancePort:
- STAFCmdParamsList.append('-p %s' % dsInstancePort)
+ STAFCmdParamsList.append('--port1 %s' % dsInstancePort)
if dsInstanceDn:
- STAFCmdParamsList.append('-D "%s"' % dsInstanceDn)
+ STAFCmdParamsList.append('--bindDN1 "%s"' % dsInstanceDn)
if dsInstancePswd:
STAFCmdParamsList.append('--bindPassword1 "%s"' % dsInstancePswd)
if dsReplicationPort:
- STAFCmdParamsList.append('-r %s' % dsReplicationPort)
+ STAFCmdParamsList.append('--replicationPort1 %s' % dsReplicationPort)
+
+ if dsSecureReplication:
+ STAFCmdParamsList.append('--secureReplication1')
if refInstanceHost:
- STAFCmdParamsList.append('-O %s' % refInstanceHost)
+ STAFCmdParamsList.append('--host2 %s' % refInstanceHost)
if refInstancePort:
STAFCmdParamsList.append('--port2 %s' % refInstancePort)
@@ -878,7 +921,10 @@
STAFCmdParamsList.append('--bindPassword2 "%s"' % refInstancePswd)
if refReplicationPort:
- STAFCmdParamsList.append('-R %s' % refReplicationPort)
+ STAFCmdParamsList.append('--replicationPort2 %s' % refReplicationPort)
+
+ if refSecureReplication:
+ STAFCmdParamsList.append('--secureReplication2')
if replicationDnList:
for dn in replicationDnList:
@@ -889,6 +935,12 @@
if adminPswd:
STAFCmdParamsList.append('-w "%s"' % adminPswd)
+
+ if noSchemaReplication:
+ STAFCmdParamsList.append('--noSchemaReplication')
+
+ if useSecondServerAsSchemaSource:
+ STAFCmdParamsList.append('--useSecondServerAsSchemaSource')
STAFCmdParams=' '.join(STAFCmdParamsList)
</script>
@@ -1076,6 +1128,137 @@
</function>
+
+ <!-- Disable replication for given baseDN on server using dsreplication -->
+ <function name="disableReplication">
+ <function-prolog>
+ This function disables replication for a given baseDN on a server using dsreplication.
+ </function-prolog>
+ <function-map-args>
+ <function-arg-def name="location"
+ type="optional"
+ default="STAF_REMOTE_HOSTNAME">
+ <function-arg-description>
+ Location of target host
+ </function-arg-description>
+ <function-arg-property name="type" value="hostname" />
+ </function-arg-def>
+
+ <function-arg-def name="dsPath"
+ type="optional"
+ default="'%s/%s' % (DIRECTORY_INSTANCE_DIR,OPENDSNAME)">
+ <function-arg-description>
+ Pathname to installation root
+ </function-arg-description>
+ <function-arg-property name="type" value="filepath" />
+ </function-arg-def>
+
+ <function-arg-def name="dsInstanceHost"
+ type="optional"
+ default="STAF_REMOTE_HOSTNAME">
+ <function-arg-description>
+ Directory server hostname or IP address
+ </function-arg-description>
+ <function-arg-property name="type" value="hostname" />
+ </function-arg-def>
+
+ <function-arg-def name="dsInstancePort" type="required">
+ <function-arg-description>
+ Directory server port number
+ </function-arg-description>
+ <function-arg-property name="type" value="Port number" />
+ </function-arg-def>
+
+ <function-arg-def name="replicationDnList" type="required">
+ <function-arg-description>
+ DN of the replicated suffix
+ </function-arg-description>
+ <function-arg-property name="type" value="DN list" />
+ </function-arg-def>
+
+ <function-arg-def name="adminUID"
+ type="optional"
+ default="AdminUID">
+ <function-arg-description>
+ Global Administrator UID
+ </function-arg-description>
+ <function-arg-property name="type" value="UID" />
+ </function-arg-def>
+
+ <function-arg-def name="adminPswd"
+ type="optional"
+ default="AdminPswd">
+ <function-arg-description>
+ Global Administrator password
+ </function-arg-description>
+ <function-arg-property name="type" value="string" />
+ </function-arg-def>
+
+ <function-arg-def name="expectedRC" type="optional" default="0">
+ <function-arg-description>
+ Expected return code value. Default value is 0
+ </function-arg-description>
+ <function-arg-property name="type" value="string" />
+ </function-arg-def>
+ </function-map-args>
+ <sequence>
+ <!-- Local variables -->
+ <script>
+ mylocation=location
+ STAFCmdParams=''
+ STAFCmd=''
+
+ if dsPath:
+ dsBinPath='%s/%s' % (dsPath,fileFolder)
+ STAFCmd='%s/%s%s' % (dsBinPath,DSREPLICATION,fileExt)
+
+ STAFCmdParamsList=[]
+ STAFCmdParamsList.append('disable')
+ STAFCmdParamsList.append('-n')
+ STAFCmdParamsList.append('-Q')
+
+ if dsInstanceHost:
+ STAFCmdParamsList.append('-h %s' % dsInstanceHost)
+
+ if dsInstancePort:
+ STAFCmdParamsList.append('-p %s' % dsInstancePort)
+
+ if replicationDnList:
+ for dn in replicationDnList:
+ STAFCmdParamsList.append('-b "%s"' % dn)
+
+ if adminUID:
+ STAFCmdParamsList.append('-I "%s"' % adminUID)
+
+ if adminPswd:
+ STAFCmdParamsList.append('-w "%s"' % adminPswd)
+
+ STAFCmdParams=' '.join(STAFCmdParamsList)
+ </script>
+ <call function="'runCommand'">
+ { 'name' : 'Disable Replication',
+ 'location' : location,
+ 'command' : STAFCmd,
+ 'arguments' : STAFCmdParams
+ }
+ </call>
+ <script>
+ STAXCode=RC
+ STAXReason=STAXResult
+ </script>
+ <call function="'checktestRC'">
+ { 'returncode' : STAXCode,
+ 'result' : STAXReason,
+ 'expected' : expectedRC
+ }
+ </call>
+ <return>
+ STAXReason
+ </return>
+ </sequence>
+ </function>
+
+
<function name="readTopology">
--
Gitblit v1.10.0