summaryrefslogtreecommitdiff
path: root/qpid/java/bdbstore/src/test
diff options
context:
space:
mode:
authorAlex Rudyy <orudyy@apache.org>2014-08-27 12:55:50 +0000
committerAlex Rudyy <orudyy@apache.org>2014-08-27 12:55:50 +0000
commit27d0b2eef38c2f14dd190f8be266e798b4b95b82 (patch)
tree43e83bcdde7f130a6ad0a8183748b793644eec9b /qpid/java/bdbstore/src/test
parent6c044b5802bc92d3a3738fb1cac9950c14fc2d83 (diff)
downloadqpid-python-27d0b2eef38c2f14dd190f8be266e798b4b95b82.tar.gz
QPID-6048: Move permitted nodes attribute into BDB HA VH in order to be able to identify the intruder node on node start-up
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1620882 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/bdbstore/src/test')
-rw-r--r--qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBHAVirtualHostNodeTest.java4
-rw-r--r--qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacadeTest.java43
-rw-r--r--qpid/java/bdbstore/src/test/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeOperationalLoggingTest.java1
-rw-r--r--qpid/java/bdbstore/src/test/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeTestHelper.java28
4 files changed, 24 insertions, 52 deletions
diff --git a/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBHAVirtualHostNodeTest.java b/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBHAVirtualHostNodeTest.java
index e69000ecd1..7b03539625 100644
--- a/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBHAVirtualHostNodeTest.java
+++ b/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBHAVirtualHostNodeTest.java
@@ -401,11 +401,9 @@ public class BDBHAVirtualHostNodeTest extends QpidTestCase
};
node1.addChangeListener(listener);
- BDBHAVirtualHost<?> host = (BDBHAVirtualHost<?>)node1.getVirtualHost();
-
List<String> permittedNodes = new ArrayList<String>();
permittedNodes.add(helperAddress);
- host.setAttributes(Collections.<String, Object>singletonMap(BDBHAVirtualHost.PERMITTED_NODES, permittedNodes));
+ node1.setAttributes(Collections.<String, Object>singletonMap(BDBHAVirtualHostNode.PERMITTED_NODES, permittedNodes));
assertTrue("Intruder protection was not triggered during expected timeout", stopLatch.await(10, TimeUnit.SECONDS));
diff --git a/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacadeTest.java b/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacadeTest.java
index 5ed533f1e5..fcc8842619 100644
--- a/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacadeTest.java
+++ b/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacadeTest.java
@@ -32,7 +32,6 @@ import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference;
import org.apache.log4j.Logger;
-import org.apache.qpid.server.configuration.IllegalConfigurationException;
import org.apache.qpid.server.store.berkeleydb.EnvironmentFacade;
import org.apache.qpid.test.utils.QpidTestCase;
import org.apache.qpid.test.utils.TestFileUtils;
@@ -694,9 +693,10 @@ public class ReplicatedEnvironmentFacadeTest extends QpidTestCase
ReplicationGroupListener listener = new NoopReplicationGroupListener()
{
@Override
- public void onIntruderNode(ReplicationNode node)
+ public boolean onIntruderNode(ReplicationNode node)
{
intruderLatch.countDown();
+ return true;
}
};
ReplicatedEnvironmentFacade firstNode = createMaster(listener);
@@ -713,42 +713,6 @@ public class ReplicatedEnvironmentFacadeTest extends QpidTestCase
assertTrue("Intruder node was not detected", intruderLatch.await(10, TimeUnit.SECONDS));
}
- public void testIntruderNodeDetectionOnMasterAndReplicaNodes() throws Exception
- {
- final CountDownLatch intruderLatch = new CountDownLatch(2);
- ReplicationGroupListener listener = new NoopReplicationGroupListener()
- {
- @Override
- public void onIntruderNode(ReplicationNode node)
- {
- intruderLatch.countDown();
- }
- };
-
- ReplicatedEnvironmentFacade firstNode = createMaster(listener);
- int replica1Port = getNextAvailable(TEST_NODE_PORT + 1);
- String node2NodeHostPort = "localhost:" + replica1Port;
- String nodeName2 = TEST_NODE_NAME + "_1";
- ReplicatedEnvironmentFacade secondNode = createReplica(nodeName2, node2NodeHostPort, listener);
-
- Set<String> permittedNodes = new HashSet<String>();
- permittedNodes.add("localhost:" + TEST_NODE_PORT);
- permittedNodes.add(nodeName2);
- firstNode.setPermittedNodes(permittedNodes);
-
- int counter = 0;
- while(secondNode.getPermittedNodes().isEmpty() && counter < 100)
- {
- counter++;
- Thread.sleep(50);
- }
- assertEquals("Permitted nodes are not set on a replica", permittedNodes, secondNode.getPermittedNodes());
-
- int intruderPort = getNextAvailable(replica1Port+ 1);
- createIntruder("intruder", "localhost:" + intruderPort);
- assertTrue("Intruder node was not detected", intruderLatch.await(10, TimeUnit.SECONDS));
- }
-
private void createIntruder(String nodeName, String node1NodeHostPort)
{
File environmentPathFile = new File(_storePath, nodeName);
@@ -872,9 +836,10 @@ public class ReplicatedEnvironmentFacadeTest extends QpidTestCase
}
@Override
- public void onIntruderNode(ReplicationNode node)
+ public boolean onIntruderNode(ReplicationNode node)
{
LOGGER.warn("Intruder node " + node);
+ return true;
}
@Override
diff --git a/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeOperationalLoggingTest.java b/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeOperationalLoggingTest.java
index ea7d74090d..1937eefc0b 100644
--- a/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeOperationalLoggingTest.java
+++ b/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeOperationalLoggingTest.java
@@ -300,6 +300,7 @@ public class BDBHAVirtualHostNodeOperationalLoggingTest extends QpidTestCase
reset(_eventLogger);
+ node2Attributes.put(BDBHAVirtualHostNode.PERMITTED_NODES, node1Attributes.get(BDBHAVirtualHostNode.PERMITTED_NODES));
node2 = (BDBHAVirtualHostNodeImpl)_helper.recoverHaVHN(node2.getId(), node2Attributes);
_helper.assertNodeRole(node2, "REPLICA", "MASTER");
waitForNodeDetachedField(remoteNode, false);
diff --git a/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeTestHelper.java b/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeTestHelper.java
index 41c6c9a71c..6f18878a1d 100644
--- a/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeTestHelper.java
+++ b/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeTestHelper.java
@@ -54,7 +54,6 @@ import org.apache.qpid.server.model.VirtualHostNode;
import org.apache.qpid.server.store.ConfiguredObjectRecordImpl;
import org.apache.qpid.server.store.UnresolvedConfiguredObject;
import org.apache.qpid.server.util.BrokerTestHelper;
-import org.apache.qpid.server.virtualhost.berkeleydb.BDBHAVirtualHost;
import org.apache.qpid.server.virtualhost.berkeleydb.BDBHAVirtualHostImpl;
import org.apache.qpid.server.virtualhostnode.AbstractVirtualHostNode;
import org.apache.qpid.test.utils.QpidTestCase;
@@ -240,7 +239,8 @@ public class BDBHAVirtualHostNodeTestHelper
iterationCounter++;
}
while(!inRole && iterationCounter<100);
- assertTrue("Node " + node.getName() + " did not transit into role " + Arrays.toString(roleName), inRole);
+ assertTrue("Node " + node.getName() + " did not transit into role " + Arrays.toString(roleName)
+ + " Node role is " + node.getRole(), inRole);
}
public BDBHAVirtualHostNode<?> createAndStartHaVHN(Map<String, Object> attributes) throws InterruptedException
@@ -280,6 +280,10 @@ public class BDBHAVirtualHostNodeTestHelper
node1Attributes.put(BDBHAVirtualHostNode.HELPER_ADDRESS, helperAddress);
node1Attributes.put(BDBHAVirtualHostNode.STORE_PATH, getMessageStorePath() + File.separator + nodeName);
node1Attributes.put(BDBHAVirtualHostNode.HELPER_NODE_NAME, helperNodeNode);
+ if (address.equals(helperAddress))
+ {
+ node1Attributes.put(BDBHAVirtualHostNode.PERMITTED_NODES, getPermittedNodes(ports));
+ }
Map<String, String> context = new HashMap<String, String>();
context.put(ReplicationConfig.REPLICA_ACK_TIMEOUT, "2 s");
@@ -287,7 +291,7 @@ public class BDBHAVirtualHostNodeTestHelper
if (ports != null)
{
- String bluePrint = getBlueprint(ports);
+ String bluePrint = getBlueprint();
node1Attributes.put(AbstractVirtualHostNode.VIRTUALHOST_INITIAL_CONFIGURATION, bluePrint);
}
@@ -296,16 +300,10 @@ public class BDBHAVirtualHostNodeTestHelper
return node1Attributes;
}
- public static String getBlueprint(int... ports) throws Exception
+ public static String getBlueprint() throws Exception
{
- List<String> permittedNodes = new ArrayList<String>();
- for (int port:ports)
- {
- permittedNodes.add("localhost:" + port);
- }
Map<String,Object> bluePrint = new HashMap<>();
bluePrint.put(VirtualHost.TYPE, BDBHAVirtualHostImpl.VIRTUAL_HOST_TYPE);
- bluePrint.put(BDBHAVirtualHost.PERMITTED_NODES, permittedNodes);
StringWriter writer = new StringWriter();
ObjectMapper mapper = new ObjectMapper();
@@ -314,6 +312,16 @@ public class BDBHAVirtualHostNodeTestHelper
return writer.toString();
}
+ public static List<String> getPermittedNodes(int[] ports)
+ {
+ List<String> permittedNodes = new ArrayList<String>();
+ for (int port:ports)
+ {
+ permittedNodes.add("localhost:" + port);
+ }
+ return permittedNodes;
+ }
+
public void awaitForVirtualhost(final VirtualHostNode<?> node, final int wait)
{
long endTime = System.currentTimeMillis() + wait;