Search in sources :

Example 26 with CPMember

use of com.hazelcast.cp.CPMember in project hazelcast by hazelcast.

the class RestCPSubsystemTest method test_getDefaultCPGroupByName.

@Test
public void test_getDefaultCPGroupByName() throws IOException {
    final HazelcastInstance instance1 = Hazelcast.newHazelcastInstance(config);
    final HazelcastInstance instance2 = Hazelcast.newHazelcastInstance(config);
    final HazelcastInstance instance3 = Hazelcast.newHazelcastInstance(config);
    waitUntilCPDiscoveryCompleted(instance1, instance2, instance3);
    instance1.getCPSubsystem().getAtomicLong("long1").set(5);
    HTTPCommunicator communicator = new HTTPCommunicator(instance1);
    ConnectionResponse response = communicator.getCPGroupByName(DEFAULT_GROUP_NAME);
    assertEquals(200, response.responseCode);
    CPMember cpMember1 = instance1.getCPSubsystem().getLocalCPMember();
    CPMember cpMember2 = instance2.getCPSubsystem().getLocalCPMember();
    CPMember cpMember3 = instance3.getCPSubsystem().getLocalCPMember();
    boolean cpMember1Found = false;
    boolean cpMember2Found = false;
    boolean cpMember3Found = false;
    JsonObject json = (JsonObject) Json.parse(response.response);
    assertEquals(DEFAULT_GROUP_NAME, ((JsonObject) json.get("id")).getString("name", ""));
    assertEquals(CPGroupStatus.ACTIVE.name(), json.getString("status", ""));
    for (JsonValue val : (JsonArray) json.get("members")) {
        JsonObject mem = (JsonObject) val;
        cpMember1Found |= cpMember1.getUuid().equals(UUID.fromString(mem.getString("uuid", "")));
        cpMember2Found |= cpMember2.getUuid().equals(UUID.fromString(mem.getString("uuid", "")));
        cpMember3Found |= cpMember3.getUuid().equals(UUID.fromString(mem.getString("uuid", "")));
    }
    assertTrue(cpMember1Found);
    assertTrue(cpMember2Found);
    assertTrue(cpMember3Found);
}
Also used : JsonArray(com.hazelcast.internal.json.JsonArray) HazelcastInstance(com.hazelcast.core.HazelcastInstance) JsonValue(com.hazelcast.internal.json.JsonValue) JsonObject(com.hazelcast.internal.json.JsonObject) ConnectionResponse(com.hazelcast.internal.ascii.HTTPCommunicator.ConnectionResponse) CPMember(com.hazelcast.cp.CPMember) Test(org.junit.Test) SlowTest(com.hazelcast.test.annotation.SlowTest)

Example 27 with CPMember

use of com.hazelcast.cp.CPMember in project hazelcast by hazelcast.

the class RestCPSubsystemTest method test_getLocalCPMember.

@Test
public void test_getLocalCPMember() throws IOException {
    final HazelcastInstance instance1 = Hazelcast.newHazelcastInstance(config);
    final HazelcastInstance instance2 = Hazelcast.newHazelcastInstance(config);
    final HazelcastInstance instance3 = Hazelcast.newHazelcastInstance(config);
    HazelcastInstance instance4 = Hazelcast.newHazelcastInstance(config);
    waitUntilCPDiscoveryCompleted(instance1, instance2, instance3, instance4);
    ConnectionResponse response1 = new HTTPCommunicator(instance1).getLocalCPMember();
    ConnectionResponse response2 = new HTTPCommunicator(instance2).getLocalCPMember();
    ConnectionResponse response3 = new HTTPCommunicator(instance3).getLocalCPMember();
    ConnectionResponse response4 = new HTTPCommunicator(instance4).getLocalCPMember();
    assertEquals(200, response1.responseCode);
    assertEquals(200, response2.responseCode);
    assertEquals(200, response3.responseCode);
    assertEquals(404, response4.responseCode);
    CPMember cpMember1 = instance1.getCPSubsystem().getLocalCPMember();
    CPMember cpMember2 = instance2.getCPSubsystem().getLocalCPMember();
    CPMember cpMember3 = instance3.getCPSubsystem().getLocalCPMember();
    assertEquals(cpMember1.getUuid(), UUID.fromString(((JsonObject) Json.parse(response1.response)).getString("uuid", "")));
    assertEquals(cpMember2.getUuid(), UUID.fromString(((JsonObject) Json.parse(response2.response)).getString("uuid", "")));
    assertEquals(cpMember3.getUuid(), UUID.fromString(((JsonObject) Json.parse(response3.response)).getString("uuid", "")));
}
Also used : HazelcastInstance(com.hazelcast.core.HazelcastInstance) JsonObject(com.hazelcast.internal.json.JsonObject) ConnectionResponse(com.hazelcast.internal.ascii.HTTPCommunicator.ConnectionResponse) CPMember(com.hazelcast.cp.CPMember) Test(org.junit.Test) SlowTest(com.hazelcast.test.annotation.SlowTest)

Example 28 with CPMember

use of com.hazelcast.cp.CPMember in project hazelcast by hazelcast.

the class RestCPSubsystemTest method test_removeCPMember.

@Test
public void test_removeCPMember() throws IOException {
    final HazelcastInstance instance1 = Hazelcast.newHazelcastInstance(config);
    final HazelcastInstance instance2 = Hazelcast.newHazelcastInstance(config);
    final HazelcastInstance instance3 = Hazelcast.newHazelcastInstance(config);
    waitUntilCPDiscoveryCompleted(instance1, instance2, instance3);
    CPMember crashedCPMember = instance3.getCPSubsystem().getLocalCPMember();
    instance3.getLifecycleService().terminate();
    assertClusterSizeEventually(2, instance1, instance2);
    ConnectionResponse response = new HTTPCommunicator(instance1).removeCPMember(crashedCPMember.getUuid(), clusterName, null);
    assertEquals(200, response.responseCode);
}
Also used : HazelcastInstance(com.hazelcast.core.HazelcastInstance) ConnectionResponse(com.hazelcast.internal.ascii.HTTPCommunicator.ConnectionResponse) CPMember(com.hazelcast.cp.CPMember) Test(org.junit.Test) SlowTest(com.hazelcast.test.annotation.SlowTest)

Example 29 with CPMember

use of com.hazelcast.cp.CPMember in project hazelcast by hazelcast.

the class ClientCPMembershipListenerTest method whenMultipleListenersRegistered_thenAllReceiveEvents.

@Test
public void whenMultipleListenersRegistered_thenAllReceiveEvents() {
    HazelcastInstance[] instances = newInstances(3);
    HazelcastInstance client = factory.newHazelcastClient();
    CountingDownCPMembershipListener listener1 = new CountingDownCPMembershipListener(0, 1);
    CountingDownCPMembershipListener listener2 = new CountingDownCPMembershipListener(0, 1);
    client.getCPSubsystem().addMembershipListener(listener1);
    client.getCPSubsystem().addMembershipListener(listener2);
    HazelcastInstance instance = instances[instances.length - 1];
    CPMember member = instance.getCPSubsystem().getLocalCPMember();
    instance.shutdown();
    assertOpenEventually(listener1.removedLatch);
    assertOpenEventually(listener2.removedLatch);
    assertEquals(member, listener1.removedMembers.get(0));
    assertEquals(member, listener2.removedMembers.get(0));
}
Also used : HazelcastInstance(com.hazelcast.core.HazelcastInstance) CountingDownCPMembershipListener(com.hazelcast.cp.CPMembershipListenerTest.CountingDownCPMembershipListener) CPMember(com.hazelcast.cp.CPMember) ParallelJVMTest(com.hazelcast.test.annotation.ParallelJVMTest) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test)

Example 30 with CPMember

use of com.hazelcast.cp.CPMember in project hazelcast by hazelcast.

the class ClientCPMembershipListenerTest method whenMemberShutdown_thenReceiveMemberRemovedEvent.

@Test
public void whenMemberShutdown_thenReceiveMemberRemovedEvent() {
    HazelcastInstance[] instances = newInstances(3);
    HazelcastInstance client = factory.newHazelcastClient();
    CountingDownCPMembershipListener listener = new CountingDownCPMembershipListener(0, 1);
    client.getCPSubsystem().addMembershipListener(listener);
    HazelcastInstance instance = instances[instances.length - 1];
    CPMember member = instance.getCPSubsystem().getLocalCPMember();
    instance.shutdown();
    assertOpenEventually(listener.removedLatch);
    assertEquals(member, listener.removedMembers.get(0));
}
Also used : HazelcastInstance(com.hazelcast.core.HazelcastInstance) CountingDownCPMembershipListener(com.hazelcast.cp.CPMembershipListenerTest.CountingDownCPMembershipListener) CPMember(com.hazelcast.cp.CPMember) ParallelJVMTest(com.hazelcast.test.annotation.ParallelJVMTest) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test)

Aggregations

CPMember (com.hazelcast.cp.CPMember)57 HazelcastInstance (com.hazelcast.core.HazelcastInstance)40 Test (org.junit.Test)38 ParallelJVMTest (com.hazelcast.test.annotation.ParallelJVMTest)27 SlowTest (com.hazelcast.test.annotation.SlowTest)27 CPGroup (com.hazelcast.cp.CPGroup)17 HazelcastInstanceFactory.newHazelcastInstance (com.hazelcast.instance.impl.HazelcastInstanceFactory.newHazelcastInstance)16 CPGroupId (com.hazelcast.cp.CPGroupId)14 ConnectionResponse (com.hazelcast.internal.ascii.HTTPCommunicator.ConnectionResponse)11 QuickTest (com.hazelcast.test.annotation.QuickTest)11 ArrayList (java.util.ArrayList)11 Config (com.hazelcast.config.Config)10 RaftNodeImpl (com.hazelcast.cp.internal.raft.impl.RaftNodeImpl)10 RaftEndpoint (com.hazelcast.cp.internal.raft.impl.RaftEndpoint)7 GetActiveCPMembersOp (com.hazelcast.cp.internal.raftop.metadata.GetActiveCPMembersOp)6 JsonArray (com.hazelcast.internal.json.JsonArray)6 JsonObject (com.hazelcast.internal.json.JsonObject)6 TestHazelcastInstanceFactory.initOrCreateConfig (com.hazelcast.test.TestHazelcastInstanceFactory.initOrCreateConfig)6 CPSubsystemManagementService (com.hazelcast.cp.CPSubsystemManagementService)4 JsonValue (com.hazelcast.internal.json.JsonValue)4