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> opendj-sdk/opends/tests/functional-tests/testcases/replication/schema/schema.xml
@@ -65,6 +65,9 @@ currentSchemaFile = '%s/config/schema/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> @@ -134,6 +137,10 @@ [ clientHost, clientPath, master, consumerList, synchroSuffix ] </call> <script> knownIssue(2599) </script> <call function="'testCase_Postamble'"/> </sequence> </testcase> @@ -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> @@ -208,6 +215,10 @@ [ clientHost, clientPath, master, consumerList, synchroSuffix ] </call> <script> knownIssue(2599) </script> <call function="'testCase_Postamble'"/> </sequence> </testcase> @@ -284,6 +295,10 @@ [ clientHost, clientPath, master, consumerList, synchroSuffix ] </call> <script> knownIssue(2599) </script> <call function="'testCase_Postamble'"/> </sequence> </testcase> @@ -360,6 +375,10 @@ [ 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> @@ -433,6 +452,10 @@ [ 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> @@ -507,6 +530,10 @@ [ clientHost, clientPath, master, consumerList, synchroSuffix ] </call> <script> knownIssue(2599) </script> <call function="'testCase_Postamble'"/> </sequence> </testcase> opendj-sdk/opends/tests/functional-tests/testcases/replication/totalupdate/totalupdate.xml
@@ -202,21 +202,60 @@ 'expectedRC' : 65 } </call> <!-- Perform the total update on every server --> <iterate var="server" in="consumerList"> <sequence> <call function="'initializeReplication'"> <!-- Disable schema replication on "master" server --> <call function="'disableReplication'"> { 'location' : clientHost, 'dsPath' : clientPath, 'dsInstanceHost' : server.getHostname(), 'dsInstancePort' : server.getPort(), 'sourceInstanceHost' : masterHost, 'sourceInstancePort' : master.getPort(), 'replicationDnList' : ['cn=schema'] } 'dsInstanceHost' : masterHost, 'dsInstancePort' : master.getPort(), 'replicationDnList' : ['cn=schema'] } </call> </sequence> </iterate> <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> opendj-sdk/opends/tests/shared/functions/topology.xml
@@ -758,13 +758,24 @@ <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" default="STAF_REMOTE_HOSTNAME"> @@ -795,13 +806,24 @@ <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> DN of the replicated suffix @@ -827,6 +849,24 @@ <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: @@ -890,6 +936,12 @@ if adminPswd: STAFCmdParamsList.append('-w "%s"' % adminPswd) if noSchemaReplication: STAFCmdParamsList.append('--noSchemaReplication') if useSecondServerAsSchemaSource: STAFCmdParamsList.append('--useSecondServerAsSchemaSource') STAFCmdParams=' '.join(STAFCmdParamsList) </script> <call function="'runCommand'"> @@ -1077,6 +1129,137 @@ <!-- 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"> <function-prolog>