This is an automated email from the ASF dual-hosted git repository.

sdanilov pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/main by this push:
     new c5ea2032db IGNITE-18276 Return topology version in 
CMGManager.logicalTopology (#1388)
c5ea2032db is described below

commit c5ea2032db9da7db3c60c174b45c0992df36a5c1
Author: Roman Puchkovskiy <[email protected]>
AuthorDate: Wed Nov 30 10:40:21 2022 +0400

    IGNITE-18276 Return topology version in CMGManager.logicalTopology (#1388)
---
 .../cluster/management/ItClusterManagerTest.java   | 20 ++++++++---------
 .../internal/cluster/management/MockNode.java      |  6 +++++
 .../management/raft/ItCmgRaftServiceTest.java      | 24 ++++++++++++--------
 .../management/ClusterManagementGroupManager.java  |  9 ++++----
 .../cluster/management/raft/CmgRaftService.java    |  8 +++----
 .../raft/responses/LogicalTopologyResponse.java    |  9 ++++----
 .../management/rest/TopologyController.java        |  4 ++++
 .../management/topology/LogicalTopology.java       |  5 ++---
 .../management/topology/LogicalTopologyImpl.java   |  5 ++---
 .../topology/LogicalTopologyImplTest.java          | 26 +++++++++++-----------
 10 files changed, 65 insertions(+), 51 deletions(-)

diff --git 
a/modules/cluster-management/src/integrationTest/java/org/apache/ignite/internal/cluster/management/ItClusterManagerTest.java
 
b/modules/cluster-management/src/integrationTest/java/org/apache/ignite/internal/cluster/management/ItClusterManagerTest.java
index b1db5cf8f2..731a514fd0 100644
--- 
a/modules/cluster-management/src/integrationTest/java/org/apache/ignite/internal/cluster/management/ItClusterManagerTest.java
+++ 
b/modules/cluster-management/src/integrationTest/java/org/apache/ignite/internal/cluster/management/ItClusterManagerTest.java
@@ -124,8 +124,8 @@ public class ItClusterManagerTest {
 
         ClusterNode[] expectedTopology = currentPhysicalTopology();
 
-        assertThat(cluster.get(0).clusterManager().logicalTopology(), 
will(containsInAnyOrder(expectedTopology)));
-        assertThat(cluster.get(1).clusterManager().logicalTopology(), 
will(containsInAnyOrder(expectedTopology)));
+        assertThat(cluster.get(0).logicalTopologyNodes(), 
will(containsInAnyOrder(expectedTopology)));
+        assertThat(cluster.get(1).logicalTopologyNodes(), 
will(containsInAnyOrder(expectedTopology)));
     }
 
     /**
@@ -171,7 +171,7 @@ public class ItClusterManagerTest {
 
         assertThat(cluster.get(0).clusterManager().metaStorageNodes(), 
will(containsInAnyOrder(aliveNodes)));
 
-        assertThat(cluster.get(0).clusterManager().logicalTopology(), 
will(containsInAnyOrder(currentPhysicalTopology())));
+        assertThat(cluster.get(0).logicalTopologyNodes(), 
will(containsInAnyOrder(currentPhysicalTopology())));
     }
 
     /**
@@ -198,8 +198,8 @@ public class ItClusterManagerTest {
 
         ClusterNode[] expectedTopology = currentPhysicalTopology();
 
-        assertThat(cluster.get(0).clusterManager().logicalTopology(), 
will(containsInAnyOrder(expectedTopology)));
-        assertThat(cluster.get(1).clusterManager().logicalTopology(), 
will(containsInAnyOrder(expectedTopology)));
+        assertThat(cluster.get(0).logicalTopologyNodes(), 
will(containsInAnyOrder(expectedTopology)));
+        assertThat(cluster.get(1).logicalTopologyNodes(), 
will(containsInAnyOrder(expectedTopology)));
     }
 
     /**
@@ -261,7 +261,7 @@ public class ItClusterManagerTest {
             assertThat(node.startFuture(), willCompleteSuccessfully());
         }
 
-        assertThat(cluster.get(0).clusterManager().logicalTopology(), 
will(containsInAnyOrder(currentPhysicalTopology())));
+        assertThat(cluster.get(0).logicalTopologyNodes(), 
will(containsInAnyOrder(currentPhysicalTopology())));
     }
 
     /**
@@ -282,7 +282,7 @@ public class ItClusterManagerTest {
 
         assertThat(node.startFuture(), willCompleteSuccessfully());
 
-        assertThat(node.clusterManager().logicalTopology(), 
will(containsInAnyOrder(currentPhysicalTopology())));
+        assertThat(node.logicalTopologyNodes(), 
will(containsInAnyOrder(currentPhysicalTopology())));
     }
 
     /**
@@ -296,7 +296,7 @@ public class ItClusterManagerTest {
 
         initCluster(cmgNodes, cmgNodes);
 
-        assertThat(cluster.get(0).clusterManager().logicalTopology(), 
will(containsInAnyOrder(currentPhysicalTopology())));
+        assertThat(cluster.get(0).logicalTopologyNodes(), 
will(containsInAnyOrder(currentPhysicalTopology())));
 
         MockNode nodeToStop = cluster.remove(1);
 
@@ -305,7 +305,7 @@ public class ItClusterManagerTest {
 
         waitForLogicalTopology();
 
-        assertThat(cluster.get(0).clusterManager().logicalTopology(), 
will(containsInAnyOrder(currentPhysicalTopology())));
+        assertThat(cluster.get(0).logicalTopologyNodes(), 
will(containsInAnyOrder(currentPhysicalTopology())));
     }
 
     /**
@@ -439,7 +439,7 @@ public class ItClusterManagerTest {
 
     private void waitForLogicalTopology() throws InterruptedException {
         assertTrue(waitForCondition(() -> {
-            CompletableFuture<Collection<ClusterNode>> logicalTopology = 
cluster.get(0).clusterManager().logicalTopology();
+            CompletableFuture<Collection<ClusterNode>> logicalTopology = 
cluster.get(0).logicalTopologyNodes();
 
             assertThat(logicalTopology, willCompleteSuccessfully());
 
diff --git 
a/modules/cluster-management/src/integrationTest/java/org/apache/ignite/internal/cluster/management/MockNode.java
 
b/modules/cluster-management/src/integrationTest/java/org/apache/ignite/internal/cluster/management/MockNode.java
index 25af432e75..358811a51c 100644
--- 
a/modules/cluster-management/src/integrationTest/java/org/apache/ignite/internal/cluster/management/MockNode.java
+++ 
b/modules/cluster-management/src/integrationTest/java/org/apache/ignite/internal/cluster/management/MockNode.java
@@ -22,10 +22,12 @@ import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.List;
 import java.util.concurrent.CompletableFuture;
 import 
org.apache.ignite.internal.cluster.management.raft.RocksDbClusterStateStorage;
 import 
org.apache.ignite.internal.cluster.management.topology.LogicalTopologyImpl;
+import 
org.apache.ignite.internal.cluster.management.topology.LogicalTopologySnapshot;
 import org.apache.ignite.internal.hlc.HybridClockImpl;
 import org.apache.ignite.internal.manager.IgniteComponent;
 import org.apache.ignite.internal.raft.Loza;
@@ -171,4 +173,8 @@ public class MockNode {
     public ClusterService clusterService() {
         return clusterService;
     }
+
+    CompletableFuture<Collection<ClusterNode>> logicalTopologyNodes() {
+        return 
clusterManager().logicalTopology().thenApply(LogicalTopologySnapshot::nodes);
+    }
 }
diff --git 
a/modules/cluster-management/src/integrationTest/java/org/apache/ignite/internal/cluster/management/raft/ItCmgRaftServiceTest.java
 
b/modules/cluster-management/src/integrationTest/java/org/apache/ignite/internal/cluster/management/raft/ItCmgRaftServiceTest.java
index 4341908c52..9a9eee27c5 100644
--- 
a/modules/cluster-management/src/integrationTest/java/org/apache/ignite/internal/cluster/management/raft/ItCmgRaftServiceTest.java
+++ 
b/modules/cluster-management/src/integrationTest/java/org/apache/ignite/internal/cluster/management/raft/ItCmgRaftServiceTest.java
@@ -35,6 +35,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import java.nio.file.Path;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.List;
 import java.util.Set;
 import java.util.concurrent.CompletableFuture;
@@ -46,6 +47,7 @@ import 
org.apache.ignite.internal.cluster.management.network.messages.CmgMessage
 import 
org.apache.ignite.internal.cluster.management.raft.commands.JoinReadyCommand;
 import 
org.apache.ignite.internal.cluster.management.raft.commands.JoinRequestCommand;
 import 
org.apache.ignite.internal.cluster.management.topology.LogicalTopologyImpl;
+import 
org.apache.ignite.internal.cluster.management.topology.LogicalTopologySnapshot;
 import 
org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
 import 
org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
 import org.apache.ignite.internal.hlc.HybridClockImpl;
@@ -150,6 +152,10 @@ public class ItCmgRaftServiceTest {
         ClusterNode localMember() {
             return clusterService.topologyService().localMember();
         }
+
+        private CompletableFuture<Collection<ClusterNode>> 
logicalTopologyNodes() {
+            return 
raftService.logicalTopology().thenApply(LogicalTopologySnapshot::nodes);
+        }
     }
 
     private final List<Node> cluster = new ArrayList<>();
@@ -195,23 +201,23 @@ public class ItCmgRaftServiceTest {
 
         assertThat(node1.raftService.initClusterState(clusterState), 
willCompleteSuccessfully());
 
-        assertThat(node1.raftService.logicalTopology(), willBe(empty()));
+        assertThat(node1.logicalTopologyNodes(), willBe(empty()));
 
         assertThat(joinCluster(node1, clusterState.clusterTag()), 
willCompleteSuccessfully());
 
-        assertThat(node1.raftService.logicalTopology(), 
will(contains(clusterNode1)));
+        assertThat(node1.logicalTopologyNodes(), will(contains(clusterNode1)));
 
         assertThat(joinCluster(node2, clusterState.clusterTag()), 
willCompleteSuccessfully());
 
-        assertThat(node1.raftService.logicalTopology(), 
will(containsInAnyOrder(clusterNode1, clusterNode2)));
+        assertThat(node1.logicalTopologyNodes(), 
will(containsInAnyOrder(clusterNode1, clusterNode2)));
 
         assertThat(node1.raftService.removeFromCluster(Set.of(clusterNode1)), 
willCompleteSuccessfully());
 
-        assertThat(node1.raftService.logicalTopology(), 
will(contains(clusterNode2)));
+        assertThat(node1.logicalTopologyNodes(), will(contains(clusterNode2)));
 
         assertThat(node1.raftService.removeFromCluster(Set.of(clusterNode2)), 
willCompleteSuccessfully());
 
-        assertThat(node1.raftService.logicalTopology(), willBe(empty()));
+        assertThat(node1.logicalTopologyNodes(), willBe(empty()));
     }
 
     private static CompletableFuture<Void> joinCluster(Node node, ClusterTag 
clusterTag) {
@@ -247,21 +253,21 @@ public class ItCmgRaftServiceTest {
         assertThat(joinFuture1, willCompleteSuccessfully());
         assertThat(joinFuture2, willCompleteSuccessfully());
 
-        assertThat(node1.raftService.logicalTopology(), 
will(containsInAnyOrder(clusterNode1, clusterNode2)));
+        assertThat(node1.logicalTopologyNodes(), 
will(containsInAnyOrder(clusterNode1, clusterNode2)));
 
         joinFuture1 = joinCluster(node1, clusterState.clusterTag());
 
         assertThat(joinFuture1, willCompleteSuccessfully());
 
-        assertThat(node1.raftService.logicalTopology(), 
will(containsInAnyOrder(clusterNode1, clusterNode2)));
+        assertThat(node1.logicalTopologyNodes(), 
will(containsInAnyOrder(clusterNode1, clusterNode2)));
 
         assertThat(node1.raftService.removeFromCluster(Set.of(clusterNode1, 
clusterNode2)), willCompleteSuccessfully());
 
-        assertThat(node2.raftService.logicalTopology(), willBe(empty()));
+        assertThat(node2.logicalTopologyNodes(), willBe(empty()));
 
         assertThat(node1.raftService.removeFromCluster(Set.of(clusterNode1, 
clusterNode2)), willCompleteSuccessfully());
 
-        assertThat(node2.raftService.logicalTopology(), willBe(empty()));
+        assertThat(node2.logicalTopologyNodes(), willBe(empty()));
     }
 
     /**
diff --git 
a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/ClusterManagementGroupManager.java
 
b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/ClusterManagementGroupManager.java
index b91a688405..6a9479c4f5 100644
--- 
a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/ClusterManagementGroupManager.java
+++ 
b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/ClusterManagementGroupManager.java
@@ -49,6 +49,7 @@ import 
org.apache.ignite.internal.cluster.management.raft.IllegalInitArgumentExc
 import org.apache.ignite.internal.cluster.management.raft.JoinDeniedException;
 import 
org.apache.ignite.internal.cluster.management.raft.commands.JoinReadyCommand;
 import org.apache.ignite.internal.cluster.management.topology.LogicalTopology;
+import 
org.apache.ignite.internal.cluster.management.topology.LogicalTopologySnapshot;
 import org.apache.ignite.internal.logger.IgniteLogger;
 import org.apache.ignite.internal.logger.Loggers;
 import org.apache.ignite.internal.manager.IgniteComponent;
@@ -358,7 +359,7 @@ public class ClusterManagementGroupManager implements 
IgniteComponent {
                             .map(ClusterNode::id)
                             .collect(toSet());
 
-                    Set<ClusterNode> nodesToRemove = logicalTopology.stream()
+                    Set<ClusterNode> nodesToRemove = 
logicalTopology.nodes().stream()
                             .filter(node -> 
!physicalTopologyIds.contains(node.id()))
                             .collect(toUnmodifiableSet());
 
@@ -652,11 +653,11 @@ public class ClusterManagementGroupManager implements 
IgniteComponent {
     }
 
     /**
-     * Returns a future that, when complete, resolves into a list of nodes 
that comprise the logical topology.
+     * Returns a future that, when complete, resolves into a logical topology 
snapshot.
      *
-     * @return Future that, when complete, resolves into a list of nodes that 
comprise the logical topology.
+     * @return Future that, when complete, resolves into a logical topology 
snapshot.
      */
-    public CompletableFuture<Collection<ClusterNode>> logicalTopology() {
+    public CompletableFuture<LogicalTopologySnapshot> logicalTopology() {
         if (!busyLock.enterBusy()) {
             return failedFuture(new NodeStoppingException());
         }
diff --git 
a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/raft/CmgRaftService.java
 
b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/raft/CmgRaftService.java
index fe7b8f7b65..795047cae6 100644
--- 
a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/raft/CmgRaftService.java
+++ 
b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/raft/CmgRaftService.java
@@ -17,7 +17,6 @@
 
 package org.apache.ignite.internal.cluster.management.raft;
 
-import java.util.Collection;
 import java.util.List;
 import java.util.Set;
 import java.util.concurrent.CompletableFuture;
@@ -32,6 +31,7 @@ import 
org.apache.ignite.internal.cluster.management.raft.commands.JoinRequestCo
 import 
org.apache.ignite.internal.cluster.management.raft.commands.NodesLeaveCommand;
 import 
org.apache.ignite.internal.cluster.management.raft.responses.LogicalTopologyResponse;
 import 
org.apache.ignite.internal.cluster.management.raft.responses.ValidationErrorResponse;
+import 
org.apache.ignite.internal.cluster.management.topology.LogicalTopologySnapshot;
 import org.apache.ignite.internal.logger.IgniteLogger;
 import org.apache.ignite.internal.logger.Loggers;
 import org.apache.ignite.internal.properties.IgniteProductVersion;
@@ -173,11 +173,11 @@ public class CmgRaftService {
     }
 
     /**
-     * Retrieves the logical topology.
+     * Retrieves the logical topology snapshot.
      *
-     * @return Logical topology.
+     * @return Logical topology snapshot.
      */
-    public CompletableFuture<Collection<ClusterNode>> logicalTopology() {
+    public CompletableFuture<LogicalTopologySnapshot> logicalTopology() {
         return raftService.run(msgFactory.readLogicalTopologyCommand().build())
                 .thenApply(LogicalTopologyResponse.class::cast)
                 .thenApply(LogicalTopologyResponse::logicalTopology);
diff --git 
a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/raft/responses/LogicalTopologyResponse.java
 
b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/raft/responses/LogicalTopologyResponse.java
index 12af699491..a5251bc558 100644
--- 
a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/raft/responses/LogicalTopologyResponse.java
+++ 
b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/raft/responses/LogicalTopologyResponse.java
@@ -18,21 +18,20 @@
 package org.apache.ignite.internal.cluster.management.raft.responses;
 
 import java.io.Serializable;
-import java.util.Collection;
-import org.apache.ignite.network.ClusterNode;
+import 
org.apache.ignite.internal.cluster.management.topology.LogicalTopologySnapshot;
 
 /**
  * Response containing the current logical topology.
  */
 public class LogicalTopologyResponse implements Serializable {
-    private final Collection<ClusterNode> topology;
+    private final LogicalTopologySnapshot topology;
 
     /**
      * Creates a new response.
      *
      * @param topology Logical topology.
      */
-    public LogicalTopologyResponse(Collection<ClusterNode> topology) {
+    public LogicalTopologyResponse(LogicalTopologySnapshot topology) {
         this.topology = topology;
     }
 
@@ -41,7 +40,7 @@ public class LogicalTopologyResponse implements Serializable {
      *
      * @return Logical topology.
      */
-    public Collection<ClusterNode> logicalTopology() {
+    public LogicalTopologySnapshot logicalTopology() {
         return topology;
     }
 }
diff --git 
a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/rest/TopologyController.java
 
b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/rest/TopologyController.java
index 83190908f4..773496fdaf 100644
--- 
a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/rest/TopologyController.java
+++ 
b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/rest/TopologyController.java
@@ -24,6 +24,7 @@ import java.util.Collection;
 import java.util.List;
 import java.util.concurrent.CompletableFuture;
 import 
org.apache.ignite.internal.cluster.management.ClusterManagementGroupManager;
+import 
org.apache.ignite.internal.cluster.management.topology.LogicalTopologySnapshot;
 import org.apache.ignite.internal.rest.api.cluster.ClusterNodeDto;
 import org.apache.ignite.internal.rest.api.cluster.NetworkAddressDto;
 import org.apache.ignite.internal.rest.api.cluster.NodeMetadataDto;
@@ -57,6 +58,8 @@ public class TopologyController implements TopologyApi {
     /** {@inheritDoc} */
     @Override
     public CompletableFuture<Collection<ClusterNodeDto>> logicalTopology() {
+        // TODO: IGNITE-18277 - return an object containing both nodes and 
topology version.
+
         return cmgManager.clusterState()
                 .thenCompose(state -> {
                     if (state == null) {
@@ -65,6 +68,7 @@ public class TopologyController implements TopologyApi {
 
                     return cmgManager.logicalTopology();
                 })
+                .thenApply(LogicalTopologySnapshot::nodes)
                 .thenApply(TopologyController::toClusterNodeDtos);
     }
 
diff --git 
a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/topology/LogicalTopology.java
 
b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/topology/LogicalTopology.java
index 09d9ed6a8f..f77eb84f00 100644
--- 
a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/topology/LogicalTopology.java
+++ 
b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/topology/LogicalTopology.java
@@ -17,7 +17,6 @@
 
 package org.apache.ignite.internal.cluster.management.topology;
 
-import java.util.Collection;
 import java.util.Set;
 import org.apache.ignite.network.ClusterNode;
 
@@ -27,9 +26,9 @@ import org.apache.ignite.network.ClusterNode;
  */
 public interface LogicalTopology {
     /**
-     * Retrieves the current logical topology.
+     * Retrieves the current logical topology snapshot.
      */
-    Collection<ClusterNode> getLogicalTopology();
+    LogicalTopologySnapshot getLogicalTopology();
 
     /**
      * Puts a given node as a part of the logical topology.
diff --git 
a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/topology/LogicalTopologyImpl.java
 
b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/topology/LogicalTopologyImpl.java
index 5e44afb068..54dd8003e2 100644
--- 
a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/topology/LogicalTopologyImpl.java
+++ 
b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/topology/LogicalTopologyImpl.java
@@ -21,7 +21,6 @@ import static java.nio.charset.StandardCharsets.UTF_8;
 import static org.apache.ignite.internal.util.ByteUtils.fromBytes;
 import static org.apache.ignite.internal.util.ByteUtils.toBytes;
 
-import java.util.Collection;
 import java.util.Set;
 import org.apache.ignite.internal.cluster.management.raft.ClusterStateStorage;
 import org.apache.ignite.network.ClusterNode;
@@ -40,8 +39,8 @@ public class LogicalTopologyImpl implements LogicalTopology {
     }
 
     @Override
-    public Collection<ClusterNode> getLogicalTopology() {
-        return readLogicalTopology().nodes();
+    public LogicalTopologySnapshot getLogicalTopology() {
+        return readLogicalTopology();
     }
 
     private LogicalTopologySnapshot readLogicalTopology() {
diff --git 
a/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/topology/LogicalTopologyImplTest.java
 
b/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/topology/LogicalTopologyImplTest.java
index 5365e55e15..8cd59dcbf3 100644
--- 
a/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/topology/LogicalTopologyImplTest.java
+++ 
b/modules/cluster-management/src/test/java/org/apache/ignite/internal/cluster/management/topology/LogicalTopologyImplTest.java
@@ -70,33 +70,33 @@ class LogicalTopologyImplTest {
      */
     @Test
     void testLogicalTopology() {
-        assertThat(topologyService.getLogicalTopology(), is(empty()));
+        assertThat(topologyService.getLogicalTopology().nodes(), is(empty()));
 
         var node1 = new ClusterNode("foo", "bar", new 
NetworkAddress("localhost", 123));
 
         topologyService.putLogicalTopologyNode(node1);
 
-        assertThat(topologyService.getLogicalTopology(), contains(node1));
+        assertThat(topologyService.getLogicalTopology().nodes(), 
contains(node1));
 
         var node2 = new ClusterNode("baz", "quux", new 
NetworkAddress("localhost", 123));
 
         topologyService.putLogicalTopologyNode(node2);
 
-        assertThat(topologyService.getLogicalTopology(), 
containsInAnyOrder(node1, node2));
+        assertThat(topologyService.getLogicalTopology().nodes(), 
containsInAnyOrder(node1, node2));
 
         var node3 = new ClusterNode("lol", "boop", new 
NetworkAddress("localhost", 123));
 
         topologyService.putLogicalTopologyNode(node3);
 
-        assertThat(topologyService.getLogicalTopology(), 
containsInAnyOrder(node1, node2, node3));
+        assertThat(topologyService.getLogicalTopology().nodes(), 
containsInAnyOrder(node1, node2, node3));
 
         topologyService.removeLogicalTopologyNodes(Set.of(node1, node2));
 
-        assertThat(topologyService.getLogicalTopology(), contains(node3));
+        assertThat(topologyService.getLogicalTopology().nodes(), 
contains(node3));
 
         topologyService.removeLogicalTopologyNodes(Set.of(node3));
 
-        assertThat(topologyService.getLogicalTopology(), is(empty()));
+        assertThat(topologyService.getLogicalTopology().nodes(), is(empty()));
     }
 
     /**
@@ -109,12 +109,12 @@ class LogicalTopologyImplTest {
         topologyService.putLogicalTopologyNode(node);
         topologyService.putLogicalTopologyNode(node);
 
-        assertThat(topologyService.getLogicalTopology(), contains(node));
+        assertThat(topologyService.getLogicalTopology().nodes(), 
contains(node));
 
         topologyService.removeLogicalTopologyNodes(Set.of(node));
         topologyService.removeLogicalTopologyNodes(Set.of(node));
 
-        assertThat(topologyService.getLogicalTopology(), is(empty()));
+        assertThat(topologyService.getLogicalTopology().nodes(), is(empty()));
     }
 
     @Test
@@ -123,7 +123,7 @@ class LogicalTopologyImplTest {
 
         topologyService.putLogicalTopologyNode(new ClusterNode("id2", "node", 
new NetworkAddress("host", 1000)));
 
-        Collection<ClusterNode> topology = 
topologyService.getLogicalTopology();
+        Collection<ClusterNode> topology = 
topologyService.getLogicalTopology().nodes();
 
         assertThat(topology, hasSize(1));
 
@@ -136,12 +136,12 @@ class LogicalTopologyImplTest {
 
         topologyService.removeLogicalTopologyNodes(Set.of(new 
ClusterNode("id2", "node", new NetworkAddress("host", 1000))));
 
-        assertThat(topologyService.getLogicalTopology(), hasSize(1));
-        
assertThat(topologyService.getLogicalTopology().iterator().next().id(), 
is("id1"));
+        assertThat(topologyService.getLogicalTopology().nodes(), hasSize(1));
+        
assertThat((topologyService.getLogicalTopology().nodes()).iterator().next().id(),
 is("id1"));
 
         topologyService.removeLogicalTopologyNodes(Set.of(new 
ClusterNode("id1", "another-name", new NetworkAddress("host", 1000))));
 
-        assertThat(topologyService.getLogicalTopology(), is(empty()));
+        assertThat(topologyService.getLogicalTopology().nodes(), is(empty()));
     }
 
     @Test
@@ -165,7 +165,7 @@ class LogicalTopologyImplTest {
 
         storage.restoreSnapshot(snapshotDir);
 
-        List<String> namesInTopology = 
topologyService.getLogicalTopology().stream()
+        List<String> namesInTopology = 
topologyService.getLogicalTopology().nodes().stream()
                 .map(ClusterNode::name)
                 .collect(toList());
         assertThat(namesInTopology, contains("node"));

Reply via email to