From 6401e69f22f9b5044c53bbdb4051851cb0f4cd7a Mon Sep 17 00:00:00 2001
From: pgamba <pgamba@localhost>
Date: Tue, 10 Nov 2009 08:52:03 +0000
Subject: [PATCH] Fix#4262 ECL One should be able to disable ECL for each domain
---
opends/tests/unit-tests-testng/src/server/org/opends/server/replication/GenerationIdTest.java | 88 ++++++++++++++++++++++++++++++++++++-------
1 files changed, 73 insertions(+), 15 deletions(-)
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/GenerationIdTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/GenerationIdTest.java
index 7dd2c41..db67da0 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/GenerationIdTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/GenerationIdTest.java
@@ -26,6 +26,8 @@
*/
package org.opends.server.replication;
+import static org.opends.server.TestCaseUtils.TEST_BACKEND_ID;
+import static org.opends.server.TestCaseUtils.TEST_ROOT_DN_STRING;
import static org.opends.server.loggers.ErrorLogger.logError;
import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
import static org.opends.server.loggers.debug.DebugLogger.getTracer;
@@ -54,7 +56,6 @@
import org.opends.server.core.DirectoryServer;
import org.opends.server.loggers.debug.DebugTracer;
import org.opends.server.protocols.internal.InternalSearchOperation;
-import org.opends.server.replication.service.ReplicationBroker;
import org.opends.server.replication.common.ChangeNumberGenerator;
import org.opends.server.replication.common.ServerStatus;
import org.opends.server.replication.plugin.LDAPReplicationDomain;
@@ -69,10 +70,12 @@
import org.opends.server.replication.server.ReplServerFakeConfiguration;
import org.opends.server.replication.server.ReplicationBackend;
import org.opends.server.replication.server.ReplicationServer;
+import org.opends.server.replication.service.ReplicationBroker;
import org.opends.server.tasks.LdifFileWriter;
import org.opends.server.types.Attribute;
import org.opends.server.types.AttributeType;
import org.opends.server.types.DN;
+import org.opends.server.types.DirectoryException;
import org.opends.server.types.Entry;
import org.opends.server.types.LDIFImportConfig;
import org.opends.server.types.ResultCode;
@@ -81,7 +84,6 @@
import org.opends.server.types.SearchScope;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
-import static org.opends.server.TestCaseUtils.*;
/**
* Tests contained here:
@@ -117,7 +119,6 @@
private ReplicationServer replServer2 = null;
private ReplicationServer replServer3 = null;
private boolean emptyOldChanges = true;
- LDAPReplicationDomain replDomain = null;
private Entry taskInitRemoteS2;
SocketSession ssSession = null;
boolean ssShutdownRequested = false;
@@ -440,12 +441,21 @@
"Unable to add the synchronized server");
configEntryList.add(synchroServerEntry.getDN());
- replDomain = LDAPReplicationDomain.retrievesReplicationDomain(baseDn);
-
-
- if (replDomain != null)
+ int waitCo=0;
+ LDAPReplicationDomain doToco=null;
+ while(waitCo<30)
{
- debugInfo("ReplicationDomain: Import/Export is running ? " + replDomain.ieRunning());
+ doToco =
+ LDAPReplicationDomain.retrievesReplicationDomain(baseDn);
+ if ((doToco!=null) && (doToco.isConnected()))
+ break;
+ Thread.sleep(200);
+ waitCo++;
+ }
+ assertTrue(doToco.isConnected(), "not connected after #attempt="+waitCo);
+ if (doToco != null)
+ {
+ debugInfo("ReplicationDomain: Import/Export is running ? " + doToco.ieRunning());
}
}
catch(Exception e)
@@ -469,6 +479,14 @@
assertTrue(synchroServerEntry != null);
DN synchroServerDN = DN.decode(synchroServerStringDN);
+
+ Entry ecle;
+ ecle = DirectoryServer.getConfigHandler().getEntry(
+ DN.decode("cn=external changelog," + synchroServerStringDN));
+ if (ecle!=null)
+ {
+ DirectoryServer.getConfigHandler().deleteEntry(ecle.getDN(), null);
+ }
DirectoryServer.getConfigHandler().deleteEntry(synchroServerDN, null);
assertTrue(DirectoryServer.getConfigEntry(synchroServerEntry.getDN()) ==
null,
@@ -477,6 +495,23 @@
configEntryList.remove(configEntryList.indexOf(synchroServerDN));
+ LDAPReplicationDomain replDomainToDis = null;
+ try
+ {
+ int waitCo=0;
+ while(waitCo<30)
+ {
+ replDomainToDis =
+ LDAPReplicationDomain.retrievesReplicationDomain(baseDn);
+ Thread.sleep(200);
+ waitCo++;
+ }
+ assert(replDomainToDis==null);
+ }
+ catch (DirectoryException e)
+ {
+ // success
+ }
}
catch(Exception e)
{
@@ -703,7 +738,6 @@
// To search the replication server db later in these tests, we need
// to attach the search backend to the replication server just created.
- Thread.sleep(500);
ReplicationBackend b =
(ReplicationBackend)DirectoryServer.getBackend("replicationChanges");
b.setServer(replServer1);
@@ -829,7 +863,6 @@
// To search the replication server db later in these tests, we need
// to attach the search backend to the replication server just created.
- Thread.sleep(500);
b = (ReplicationBackend)DirectoryServer.getBackend("replicationChanges");
b.setServer(replServer1);
@@ -1012,7 +1045,6 @@
addTask(taskReset, ResultCode.SUCCESS, null);
waitTaskState(taskReset, TaskState.COMPLETED_SUCCESSFULLY, null);
- Thread.sleep(200);
debugInfo("Verify that RS1 has still the right genID");
assertEquals(replServer1.getGenerationId(baseDn.toNormalizedString()), rgenId);
@@ -1126,9 +1158,18 @@
debugInfo("Connecting DS to replServer1");
connectServer1ToChangelog(changelog1ID);
- Thread.sleep(1500);
debugInfo("Expect genId are set in all replServers.");
+ int waitRes=0;
+ while(waitRes<100)
+ {
+ if ((replServer1.getGenerationId(baseDn.toNormalizedString())==EMPTY_DN_GENID)
+ && (replServer2.getGenerationId(baseDn.toNormalizedString())==EMPTY_DN_GENID)
+ && (replServer3.getGenerationId(baseDn.toNormalizedString())==EMPTY_DN_GENID))
+ break;
+ waitRes++;
+ Thread.sleep(100);
+ }
assertEquals(replServer1.getGenerationId(baseDn.toNormalizedString()), EMPTY_DN_GENID,
" in replServer1");
assertEquals(replServer2.getGenerationId(baseDn.toNormalizedString()), EMPTY_DN_GENID,
@@ -1138,8 +1179,17 @@
debugInfo("Disconnect DS from replServer1.");
disconnectFromReplServer(changelog1ID);
- Thread.sleep(3000);
+ waitRes=0;
+ while(waitRes<100)
+ {
+ if ((replServer1.getGenerationId(baseDn.toNormalizedString())==-1)
+ && (replServer2.getGenerationId(baseDn.toNormalizedString())==-1)
+ && (replServer3.getGenerationId(baseDn.toNormalizedString())==-1))
+ break;
+ waitRes++;
+ Thread.sleep(100);
+ }
debugInfo(
"Expect genIds to be resetted in all servers to -1 as no more DS in topo");
assertEquals(replServer1.getGenerationId(baseDn.toNormalizedString()), -1);
@@ -1151,12 +1201,21 @@
debugInfo("Connecting DS to replServer2");
connectServer1ToChangelog(changelog2ID);
- Thread.sleep(3000);
debugInfo(
"Expect genIds to be set in all servers based on the added entries.");
genId = readGenIdFromSuffixRootEntry();
assertTrue(genId != -1);
+ waitRes=0;
+ while(waitRes<100)
+ {
+ if ((replServer1.getGenerationId(baseDn.toNormalizedString())==genId)
+ && (replServer2.getGenerationId(baseDn.toNormalizedString())==genId)
+ && (replServer3.getGenerationId(baseDn.toNormalizedString())==genId))
+ break;
+ waitRes++;
+ Thread.sleep(100);
+ }
assertEquals(replServer1.getGenerationId(baseDn.toNormalizedString()), genId);
assertEquals(replServer2.getGenerationId(baseDn.toNormalizedString()), genId);
assertEquals(replServer3.getGenerationId(baseDn.toNormalizedString()), genId);
@@ -1347,7 +1406,6 @@
// Read generationId - should be not retrievable since no entry
debugInfo(testCase + " Connecting DS1 to replServer1(" + changelog1ID + ")");
connectServer1ToChangelog(changelog1ID);
- Thread.sleep(1000);
debugInfo(testCase + " Expect genId attribute to be not retrievable");
genId = readGenIdFromSuffixRootEntry();
--
Gitblit v1.10.0