Search in sources :

Example 21 with CoreTopology

use of org.neo4j.causalclustering.discovery.CoreTopology in project neo4j by neo4j.

the class GetServersProcedureV1Test method shouldReturnTheCoreLeaderForWriteAndReadReplicasAndCoresForReads.

@Test
public void shouldReturnTheCoreLeaderForWriteAndReadReplicasAndCoresForReads() throws Exception {
    // given
    final CoreTopologyService topologyService = mock(CoreTopologyService.class);
    Map<MemberId, CoreServerInfo> coreMembers = new HashMap<>();
    MemberId theLeader = member(0);
    coreMembers.put(theLeader, adressesForCore(0));
    when(topologyService.coreServers()).thenReturn(new CoreTopology(clusterId, false, coreMembers));
    when(topologyService.readReplicas()).thenReturn(new ReadReplicaTopology(readReplicaInfoMap(1)));
    LeaderLocator leaderLocator = mock(LeaderLocator.class);
    when(leaderLocator.getLeader()).thenReturn(theLeader);
    LegacyGetServersProcedure procedure = new LegacyGetServersProcedure(topologyService, leaderLocator, config, getInstance());
    // when
    ClusterView clusterView = run(procedure);
    // then
    ClusterView.Builder builder = new ClusterView.Builder();
    builder.writeAddress(adressesForCore(0).connectors().boltAddress());
    if (expectFollowersAsReadEndPoints) {
        builder.readAddress(adressesForCore(0).connectors().boltAddress());
    }
    builder.readAddress(addressesForReadReplica(1).connectors().boltAddress());
    builder.routeAddress(adressesForCore(0).connectors().boltAddress());
    assertEquals(builder.build(), clusterView);
}
Also used : MemberId(org.neo4j.causalclustering.identity.MemberId) LeaderLocator(org.neo4j.causalclustering.core.consensus.LeaderLocator) CoreTopologyService(org.neo4j.causalclustering.discovery.CoreTopologyService) HashMap(java.util.HashMap) CoreServerInfo(org.neo4j.causalclustering.discovery.CoreServerInfo) ReadReplicaTopology(org.neo4j.causalclustering.discovery.ReadReplicaTopology) CoreTopology(org.neo4j.causalclustering.discovery.CoreTopology) Test(org.junit.Test)

Example 22 with CoreTopology

use of org.neo4j.causalclustering.discovery.CoreTopology in project neo4j by neo4j.

the class GetServersProcedureV1Test method shouldReturnCoreMemberAsReadServerIfNoReadReplicasAvailable.

@Test
public void shouldReturnCoreMemberAsReadServerIfNoReadReplicasAvailable() throws Exception {
    // given
    final CoreTopologyService topologyService = mock(CoreTopologyService.class);
    Map<MemberId, CoreServerInfo> coreMembers = new HashMap<>();
    MemberId theLeader = member(0);
    coreMembers.put(theLeader, adressesForCore(0));
    when(topologyService.coreServers()).thenReturn(new CoreTopology(clusterId, false, coreMembers));
    when(topologyService.readReplicas()).thenReturn(new ReadReplicaTopology(emptyMap()));
    LeaderLocator leaderLocator = mock(LeaderLocator.class);
    when(leaderLocator.getLeader()).thenReturn(theLeader);
    LegacyGetServersProcedure procedure = new LegacyGetServersProcedure(topologyService, leaderLocator, config, getInstance());
    // when
    ClusterView clusterView = run(procedure);
    // then
    ClusterView.Builder builder = new ClusterView.Builder();
    builder.writeAddress(adressesForCore(0).connectors().boltAddress());
    builder.readAddress(adressesForCore(0).connectors().boltAddress());
    builder.routeAddress(adressesForCore(0).connectors().boltAddress());
    assertEquals(builder.build(), clusterView);
}
Also used : MemberId(org.neo4j.causalclustering.identity.MemberId) LeaderLocator(org.neo4j.causalclustering.core.consensus.LeaderLocator) CoreTopologyService(org.neo4j.causalclustering.discovery.CoreTopologyService) HashMap(java.util.HashMap) CoreServerInfo(org.neo4j.causalclustering.discovery.CoreServerInfo) ReadReplicaTopology(org.neo4j.causalclustering.discovery.ReadReplicaTopology) CoreTopology(org.neo4j.causalclustering.discovery.CoreTopology) Test(org.junit.Test)

Aggregations

CoreTopology (org.neo4j.causalclustering.discovery.CoreTopology)22 MemberId (org.neo4j.causalclustering.identity.MemberId)16 Test (org.junit.Test)15 CoreServerInfo (org.neo4j.causalclustering.discovery.CoreServerInfo)15 CoreTopologyService (org.neo4j.causalclustering.discovery.CoreTopologyService)13 LeaderLocator (org.neo4j.causalclustering.core.consensus.LeaderLocator)12 ReadReplicaTopology (org.neo4j.causalclustering.discovery.ReadReplicaTopology)12 HashMap (java.util.HashMap)10 TopologyService (org.neo4j.causalclustering.discovery.TopologyService)4 Optional (java.util.Optional)3 Set (java.util.Set)3 NoLeaderFoundException (org.neo4j.causalclustering.core.consensus.NoLeaderFoundException)3 ClusterId (org.neo4j.causalclustering.identity.ClusterId)3 List (java.util.List)2 Map (java.util.Map)2 TimeoutException (java.util.concurrent.TimeoutException)2 Collectors (java.util.stream.Collectors)2 CausalClusteringSettings (org.neo4j.causalclustering.core.CausalClusteringSettings)2 CoreSnapshot (org.neo4j.causalclustering.core.state.snapshot.CoreSnapshot)2 ClientConnectorAddresses (org.neo4j.causalclustering.discovery.ClientConnectorAddresses)2