summaryrefslogtreecommitdiff
path: root/qpid/java/bdbstore/systests
diff options
context:
space:
mode:
authorAlex Rudyy <orudyy@apache.org>2014-05-20 14:44:19 +0000
committerAlex Rudyy <orudyy@apache.org>2014-05-20 14:44:19 +0000
commit7371feb185388d4bedda4ac10ee7c78a17023a7e (patch)
treee766336a1e3f668a4c9ea1bb25a1d035d2a874da /qpid/java/bdbstore/systests
parentb8ea492a1651b86fde5ae93d4e40c3987b9eaa4a (diff)
downloadqpid-python-7371feb185388d4bedda4ac10ee7c78a17023a7e.tar.gz
QPID-5715: On BDB HA virtual host node deletion invoke ReplicationGroupAdmin#removeMember to remove node from the group
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1596273 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/bdbstore/systests')
-rw-r--r--qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBHAVirtualHostNodeRestTest.java66
1 files changed, 66 insertions, 0 deletions
diff --git a/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBHAVirtualHostNodeRestTest.java b/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBHAVirtualHostNodeRestTest.java
index 06e01aadc9..507ff07ee5 100644
--- a/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBHAVirtualHostNodeRestTest.java
+++ b/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBHAVirtualHostNodeRestTest.java
@@ -24,6 +24,7 @@ import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -107,6 +108,71 @@ public class BDBHAVirtualHostNodeRestTest extends QpidRestTestCase
assertRemoteNodes(NODE1, NODE2, NODE3);
}
+ public void testDeleteReplicaNode() throws Exception
+ {
+ createHANode(NODE1, _node1HaPort, _node1HaPort);
+ createHANode(NODE2, _node2HaPort, _node1HaPort);
+ createHANode(NODE3, _node3HaPort, _node1HaPort);
+
+ assertRemoteNodes(NODE1, NODE2, NODE3);
+
+ List<Map<String,Object>> data = getRestTestHelper().getJsonAsList("replicationnode/" + NODE1);
+ assertEquals("Unexpected number of remote nodes on " + NODE1, 2, data.size());
+
+ int responseCode = getRestTestHelper().submitRequest(_baseNodeRestUrl + NODE2, "DELETE");
+ assertEquals("Unexpected response code on deletion of virtual host node " + NODE2, 200, responseCode);
+
+ int counter = 0;
+ while (data.size() != 1 && counter<50)
+ {
+ data = getRestTestHelper().getJsonAsList("replicationnode/" + NODE1);
+ if (data.size() != 1)
+ {
+ Thread.sleep(100l);
+ }
+ }
+ assertEquals("Unexpected number of remote nodes on " + NODE1, 1, data.size());
+ }
+
+ public void testDeleteMasterNode() throws Exception
+ {
+ createHANode(NODE1, _node1HaPort, _node1HaPort);
+ createHANode(NODE2, _node2HaPort, _node1HaPort);
+ createHANode(NODE3, _node3HaPort, _node1HaPort);
+
+ assertNode(NODE1, _node1HaPort, _node1HaPort, NODE1);
+ assertRemoteNodes(NODE1, NODE2, NODE3);
+
+ // change priority to make Node2 a master
+ int responseCode = getRestTestHelper().submitRequest(_baseNodeRestUrl + NODE2, "PUT", Collections.<String,Object>singletonMap(BDBHAVirtualHostNode.PRIORITY, 100));
+ assertEquals("Unexpected response code on priority update of virtual host node " + NODE2, 200, responseCode);
+
+ List<Map<String,Object>> data = getRestTestHelper().getJsonAsList("replicationnode/" + NODE2);
+ assertEquals("Unexpected number of remote nodes on " + NODE2, 2, data.size());
+
+ // delete master
+ responseCode = getRestTestHelper().submitRequest(_baseNodeRestUrl + NODE1, "DELETE");
+ assertEquals("Unexpected response code on deletion of virtual host node " + NODE1, 200, responseCode);
+
+ // wait for new master
+ waitForAttributeChanged(_baseNodeRestUrl + NODE2 + "?depth=0", BDBHAVirtualHostNode.ROLE, "MASTER");
+
+ // delete remote node
+ responseCode = getRestTestHelper().submitRequest("replicationnode/" + NODE2 + "/" + NODE1, "DELETE");
+ assertEquals("Unexpected response code on deletion of remote node " + NODE1, 200, responseCode);
+
+ int counter = 0;
+ while (data.size() != 1 && counter<50)
+ {
+ data = getRestTestHelper().getJsonAsList("replicationnode/" + NODE2);
+ if (data.size() != 1)
+ {
+ Thread.sleep(100l);
+ }
+ }
+ assertEquals("Unexpected number of remote nodes on " + NODE2, 1, data.size());
+ }
+
private void createHANode(String nodeName, int nodePort, int helperPort) throws IOException, JsonGenerationException, JsonMappingException
{
Map<String, Object> nodeData = new HashMap<String, Object>();