This is an automated email from the ASF dual-hosted git repository.
sanpwc 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 7058acde50 IGNITE-20359 Expose storage profiles as a node attribute
(#2711)
7058acde50 is described below
commit 7058acde509b58584e04b3ef96f9b055206f8161
Author: Mirza Aliev <[email protected]>
AuthorDate: Mon Oct 23 18:44:22 2023 +0400
IGNITE-20359 Expose storage profiles as a node attribute (#2711)
---
.../repl/executor/ItIgnitePicocliCommandsTest.java | 11 ++++-
.../cluster/management/NodeAttributes.java | 11 +++--
.../management/NodeAttributesCollector.java | 21 +++++++++-
.../ClusterManagementConfigurationModule.java | 2 +-
...java => StorageProfileConfigurationSchema.java} | 29 ++++++-------
...ava => StorageProfilesConfigurationSchema.java} | 27 +++++--------
.../management/raft/CmgRaftGroupListener.java | 17 ++++++--
.../cluster/management/raft/CmgRaftService.java | 3 +-
.../raft/commands/ClusterNodeMessage.java | 5 ++-
.../management/topology/api/LogicalNode.java | 47 ++++++++++++++++------
.../management/BaseItClusterManagementTest.java | 12 ++++--
.../internal/cluster/management/MockNode.java | 6 ++-
.../distributionzones/DistributionZonesUtil.java | 2 +-
.../DistributionZonesTestUtil.java | 4 +-
.../ItMetaStorageMultipleNodesAbstractTest.java | 6 ++-
.../metastorage/impl/ItMetaStorageWatchTest.java | 6 ++-
.../internal/compute/ItLogicalTopologyTest.java | 29 ++++++++-----
.../ItDistributedConfigurationPropertiesTest.java | 6 ++-
.../ItDistributedConfigurationStorageTest.java | 6 ++-
...niteDistributionZoneManagerNodeRestartTest.java | 2 +-
.../rebalance/ItRebalanceDistributedTest.java | 6 ++-
.../runner/app/ItIgniteNodeRestartTest.java | 6 ++-
.../org/apache/ignite/internal/app/IgniteImpl.java | 6 ++-
.../internal/systemview/SystemViewManagerTest.java | 2 +-
24 files changed, 187 insertions(+), 85 deletions(-)
diff --git
a/modules/cli/src/integrationTest/java/org/apache/ignite/internal/cli/core/repl/executor/ItIgnitePicocliCommandsTest.java
b/modules/cli/src/integrationTest/java/org/apache/ignite/internal/cli/core/repl/executor/ItIgnitePicocliCommandsTest.java
index 70ab657df8..0549a0d7c8 100644
---
a/modules/cli/src/integrationTest/java/org/apache/ignite/internal/cli/core/repl/executor/ItIgnitePicocliCommandsTest.java
+++
b/modules/cli/src/integrationTest/java/org/apache/ignite/internal/cli/core/repl/executor/ItIgnitePicocliCommandsTest.java
@@ -266,7 +266,16 @@ public class ItIgnitePicocliCommandsTest extends
CliCommandTestInitializedIntegr
await("For given parsed words: " + givenParsedLine.words()).until(
() -> complete(givenParsedLine),
containsInAnyOrder(
- "rest", "clientConnector", "network", "cluster",
"deployment", "nodeAttributes", "aimem", "aipersist", "rocksDb"
+ "rest",
+ "clientConnector",
+ "network",
+ "cluster",
+ "deployment",
+ "nodeAttributes",
+ "aimem",
+ "aipersist",
+ "rocksDb",
+ "storageProfiles"
)
);
}
diff --git
a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/NodeAttributes.java
b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/NodeAttributes.java
index 6073a4e34a..71e556d2d2 100644
---
a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/NodeAttributes.java
+++
b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/NodeAttributes.java
@@ -24,17 +24,22 @@ import
org.apache.ignite.internal.cluster.management.topology.api.LogicalNode;
* Contains local attributes that are collected during node startup and become
visible
* to all cluster nodes after the local node is added to the logical topology.
*
- * @see LogicalNode#attributes()
+ * @see LogicalNode#userAttributes()
* @see LogicalNode#systemAttributes()
*/
public interface NodeAttributes {
/**
- * Returns configuration defined attributes.
+ * Returns user defined attributes from a node's configuration.
*/
- Map<String, String> configAttributes();
+ Map<String, String> userAttributes();
/**
* Returns internal attributes provided by system components.
*/
Map<String, String> systemAttributes();
+
+ /**
+ * TODO: add java doc https://issues.apache.org/jira/browse/IGNITE-20564
+ */
+ Map<String, String> storageProfiles();
}
diff --git
a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/NodeAttributesCollector.java
b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/NodeAttributesCollector.java
index e7be60baf9..8cdf0d8647 100644
---
a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/NodeAttributesCollector.java
+++
b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/NodeAttributesCollector.java
@@ -25,6 +25,8 @@ import java.util.stream.Collectors;
import org.apache.ignite.configuration.NamedListView;
import
org.apache.ignite.internal.cluster.management.configuration.NodeAttributeView;
import
org.apache.ignite.internal.cluster.management.configuration.NodeAttributesConfiguration;
+import
org.apache.ignite.internal.cluster.management.configuration.StorageProfileView;
+import
org.apache.ignite.internal.cluster.management.configuration.StorageProfilesConfiguration;
/**
* This class is responsible for retrieving local node attributes
@@ -35,8 +37,14 @@ public class NodeAttributesCollector implements
NodeAttributes {
private final NodeAttributesConfiguration nodeAttributesConfiguration;
- public NodeAttributesCollector(NodeAttributesConfiguration
nodeAttributesConfiguration) {
+ private final StorageProfilesConfiguration storageProfilesConfiguration;
+
+ public NodeAttributesCollector(
+ NodeAttributesConfiguration nodeAttributesConfiguration,
+ StorageProfilesConfiguration storageProfilesConfiguration
+ ) {
this.nodeAttributesConfiguration = nodeAttributesConfiguration;
+ this.storageProfilesConfiguration = storageProfilesConfiguration;
}
/**
@@ -48,13 +56,22 @@ public class NodeAttributesCollector implements
NodeAttributes {
/** {@inheritDoc} */
@Override
- public Map<String, String> configAttributes() {
+ public Map<String, String> userAttributes() {
NamedListView<NodeAttributeView> attributes =
nodeAttributesConfiguration.nodeAttributes().value();
return attributes.stream()
.collect(Collectors.toUnmodifiableMap(NodeAttributeView::name,
NodeAttributeView::attribute));
}
+ /** {@inheritDoc} */
+ @Override
+ public Map<String, String> storageProfiles() {
+ NamedListView<StorageProfileView> storageProfiles =
storageProfilesConfiguration.storageProfiles().value();
+
+ return storageProfiles.stream()
+
.collect(Collectors.toUnmodifiableMap(StorageProfileView::name,
StorageProfileView::engine));
+ }
+
/** {@inheritDoc} */
@Override
public Map<String, String> systemAttributes() {
diff --git
a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/configuration/ClusterManagementConfigurationModule.java
b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/configuration/ClusterManagementConfigurationModule.java
index 03abb39af8..a2eb334271 100644
---
a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/configuration/ClusterManagementConfigurationModule.java
+++
b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/configuration/ClusterManagementConfigurationModule.java
@@ -36,6 +36,6 @@ public class ClusterManagementConfigurationModule implements
ConfigurationModule
@Override
public Collection<RootKey<?, ?>> rootKeys() {
- return List.of(ClusterManagementConfiguration.KEY,
NodeAttributesConfiguration.KEY);
+ return List.of(ClusterManagementConfiguration.KEY,
NodeAttributesConfiguration.KEY, StorageProfilesConfiguration.KEY);
}
}
diff --git
a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/configuration/ClusterManagementConfigurationModule.java
b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/configuration/StorageProfileConfigurationSchema.java
similarity index 55%
copy from
modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/configuration/ClusterManagementConfigurationModule.java
copy to
modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/configuration/StorageProfileConfigurationSchema.java
index 03abb39af8..af01ab2a6b 100644
---
a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/configuration/ClusterManagementConfigurationModule.java
+++
b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/configuration/StorageProfileConfigurationSchema.java
@@ -17,25 +17,20 @@
package org.apache.ignite.internal.cluster.management.configuration;
-import com.google.auto.service.AutoService;
-import java.util.Collection;
-import java.util.List;
-import org.apache.ignite.configuration.ConfigurationModule;
-import org.apache.ignite.configuration.RootKey;
-import org.apache.ignite.configuration.annotation.ConfigurationType;
+import org.apache.ignite.configuration.annotation.Config;
+import org.apache.ignite.configuration.annotation.InjectedName;
+import org.apache.ignite.configuration.annotation.Value;
/**
- * Configuration module for Cluster Management configs.
+ * TODO: add java doc https://issues.apache.org/jira/browse/IGNITE-20564.
*/
-@AutoService(ConfigurationModule.class)
-public class ClusterManagementConfigurationModule implements
ConfigurationModule {
- @Override
- public ConfigurationType type() {
- return ConfigurationType.LOCAL;
- }
+@Config
+public class StorageProfileConfigurationSchema {
+ /** TODO: add java doc https://issues.apache.org/jira/browse/IGNITE-20564.
*/
+ @InjectedName
+ public String name;
- @Override
- public Collection<RootKey<?, ?>> rootKeys() {
- return List.of(ClusterManagementConfiguration.KEY,
NodeAttributesConfiguration.KEY);
- }
+ /** TODO: add java doc https://issues.apache.org/jira/browse/IGNITE-20564.
*/
+ @Value(hasDefault = true)
+ public String engine = "";
}
diff --git
a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/configuration/ClusterManagementConfigurationModule.java
b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/configuration/StorageProfilesConfigurationSchema.java
similarity index 59%
copy from
modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/configuration/ClusterManagementConfigurationModule.java
copy to
modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/configuration/StorageProfilesConfigurationSchema.java
index 03abb39af8..0dea143ed0 100644
---
a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/configuration/ClusterManagementConfigurationModule.java
+++
b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/configuration/StorageProfilesConfigurationSchema.java
@@ -17,25 +17,18 @@
package org.apache.ignite.internal.cluster.management.configuration;
-import com.google.auto.service.AutoService;
-import java.util.Collection;
-import java.util.List;
-import org.apache.ignite.configuration.ConfigurationModule;
-import org.apache.ignite.configuration.RootKey;
+import org.apache.ignite.configuration.annotation.ConfigurationRoot;
import org.apache.ignite.configuration.annotation.ConfigurationType;
+import org.apache.ignite.configuration.annotation.NamedConfigValue;
/**
- * Configuration module for Cluster Management configs.
+ * TODO: add java doc https://issues.apache.org/jira/browse/IGNITE-20564.
*/
-@AutoService(ConfigurationModule.class)
-public class ClusterManagementConfigurationModule implements
ConfigurationModule {
- @Override
- public ConfigurationType type() {
- return ConfigurationType.LOCAL;
- }
-
- @Override
- public Collection<RootKey<?, ?>> rootKeys() {
- return List.of(ClusterManagementConfiguration.KEY,
NodeAttributesConfiguration.KEY);
- }
+@ConfigurationRoot(rootName = "storageProfiles", type =
ConfigurationType.LOCAL)
+public class StorageProfilesConfigurationSchema {
+ /**
+ * TODO: add java doc https://issues.apache.org/jira/browse/IGNITE-20564.
+ */
+ @NamedConfigValue
+ public StorageProfileConfigurationSchema storageProfiles;
}
diff --git
a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/raft/CmgRaftGroupListener.java
b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/raft/CmgRaftGroupListener.java
index 48d8320557..7ee6868cfe 100644
---
a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/raft/CmgRaftGroupListener.java
+++
b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/raft/CmgRaftGroupListener.java
@@ -192,7 +192,12 @@ public class CmgRaftGroupListener implements
RaftGroupListener {
}
}
- LogicalNode logicalNode = new LogicalNode(node,
command.node().attributes(), command.node().systemAttributes());
+ LogicalNode logicalNode = new LogicalNode(
+ node,
+ command.node().userAttributes(),
+ command.node().systemAttributes(),
+ command.node().storageProfiles()
+ );
return validationManager.validateNode(storage.getClusterState(),
logicalNode, command.igniteVersion(), command.clusterTag());
}
@@ -201,7 +206,12 @@ public class CmgRaftGroupListener implements
RaftGroupListener {
private Serializable completeValidation(JoinReadyCommand command) {
ClusterNode node = command.node().asClusterNode();
- LogicalNode logicalNode = new LogicalNode(node,
command.node().attributes(), command.node().systemAttributes());
+ LogicalNode logicalNode = new LogicalNode(
+ node,
+ command.node().userAttributes(),
+ command.node().systemAttributes(),
+ command.node().storageProfiles()
+ );
if (validationManager.isNodeValidated(logicalNode)) {
validationManager.completeValidation(logicalNode);
@@ -219,7 +229,8 @@ public class CmgRaftGroupListener implements
RaftGroupListener {
// Nodes will be removed from a topology, so it is safe to set
nodeAttributes to the default value
Set<LogicalNode> logicalNodes = nodes.stream()
- .map(n -> new LogicalNode(n, Collections.emptyMap(),
Collections.emptyMap())).collect(Collectors.toSet());
+ .map(n -> new LogicalNode(n, Collections.emptyMap(),
Collections.emptyMap(), Collections.emptyMap()))
+ .collect(Collectors.toSet());
logicalTopology.removeNodes(logicalNodes);
validationManager.removeValidatedNodes(logicalNodes);
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 a8dbf2dbbe..7b9a62adc2 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
@@ -268,8 +268,9 @@ public class CmgRaftService implements ManuallyCloseable {
.name(node.name())
.host(node.address().host())
.port(node.address().port())
- .attributes(attributes == null ? null :
attributes.configAttributes())
+ .userAttributes(attributes == null ? null :
attributes.userAttributes())
.systemAttributes(attributes == null ? null :
attributes.systemAttributes())
+ .storageProfiles(attributes == null ? null :
attributes.storageProfiles())
.build();
}
diff --git
a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/raft/commands/ClusterNodeMessage.java
b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/raft/commands/ClusterNodeMessage.java
index b999cdd06c..bc257dfde4 100644
---
a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/raft/commands/ClusterNodeMessage.java
+++
b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/raft/commands/ClusterNodeMessage.java
@@ -45,8 +45,11 @@ public interface ClusterNodeMessage extends NetworkMessage,
Serializable {
}
@Nullable
- Map<String, String> attributes();
+ Map<String, String> userAttributes();
@Nullable
Map<String, String> systemAttributes();
+
+ @Nullable
+ Map<String, String> storageProfiles();
}
diff --git
a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/topology/api/LogicalNode.java
b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/topology/api/LogicalNode.java
index a6953e770e..530e71e5a2 100644
---
a/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/topology/api/LogicalNode.java
+++
b/modules/cluster-management/src/main/java/org/apache/ignite/internal/cluster/management/topology/api/LogicalNode.java
@@ -36,11 +36,15 @@ public class LogicalNode extends ClusterNodeImpl {
* documentation</a>
*/
@IgniteToStringInclude
- private final Map<String, String> attributes;
+ private final Map<String, String> userAttributes;
@IgniteToStringInclude
private final Map<String, String> systemAttributes;
+ // TODO: add javadoc https://issues.apache.org/jira/browse/IGNITE-20564
+ @IgniteToStringInclude
+ private final Map<String, String> storageProfiles;
+
/**
* Constructor.
*
@@ -55,32 +59,40 @@ public class LogicalNode extends ClusterNodeImpl {
) {
super(id, name, address);
- this.attributes = Collections.emptyMap();
+ this.userAttributes = Collections.emptyMap();
this.systemAttributes = Collections.emptyMap();
+ this.storageProfiles = Collections.emptyMap();
}
/**
* Constructor.
*
* @param clusterNode Represents a node in a cluster.
- * @param attributes Node attributes defined in configuration.
+ * @param userAttributes Node attributes defined in configuration.
*/
- public LogicalNode(ClusterNode clusterNode, Map<String, String>
attributes) {
- this(clusterNode, attributes, Collections.emptyMap());
+ public LogicalNode(ClusterNode clusterNode, Map<String, String>
userAttributes) {
+ this(clusterNode, userAttributes, Collections.emptyMap(),
Collections.emptyMap());
}
/**
* Constructor.
*
* @param clusterNode Represents a node in a cluster.
- * @param attributes Node attributes defined in configuration.
+ * @param userAttributes Node attributes defined in configuration.
* @param systemAttributes Internal node attributes provided by system
components at startup.
+ * @param storageProfiles TODO: add javadoc
https://issues.apache.org/jira/browse/IGNITE-20564
*/
- public LogicalNode(ClusterNode clusterNode, Map<String, String>
attributes, Map<String, String> systemAttributes) {
+ public LogicalNode(
+ ClusterNode clusterNode,
+ Map<String, String> userAttributes,
+ Map<String, String> systemAttributes,
+ Map<String, String> storageProfiles
+ ) {
super(clusterNode.id(), clusterNode.name(), clusterNode.address(),
clusterNode.nodeMetadata());
- this.attributes = attributes == null ? Collections.emptyMap() :
attributes;
+ this.userAttributes = userAttributes == null ? Collections.emptyMap()
: userAttributes;
this.systemAttributes = systemAttributes == null ?
Collections.emptyMap() : systemAttributes;
+ this.storageProfiles = storageProfiles == null ?
Collections.emptyMap() : storageProfiles;
}
/**
@@ -89,16 +101,16 @@ public class LogicalNode extends ClusterNodeImpl {
* @param clusterNode Represents a node in a cluster.
*/
public LogicalNode(ClusterNode clusterNode) {
- this(clusterNode, Collections.emptyMap(), Collections.emptyMap());
+ this(clusterNode, Collections.emptyMap(), Collections.emptyMap(),
Collections.emptyMap());
}
/**
- * Returns node's attributes defined in node's configuration.
+ * Returns node's attributes provided by user using node's configuration.
*
- * @return Node's attributes defined in node's configuration.
+ * @return Node's attributes provided by user using node's configuration.
*/
- public Map<String, String> attributes() {
- return attributes;
+ public Map<String, String> userAttributes() {
+ return userAttributes;
}
/**
@@ -110,6 +122,15 @@ public class LogicalNode extends ClusterNodeImpl {
return systemAttributes;
}
+ /**
+ * TODO: add java doc https://issues.apache.org/jira/browse/IGNITE-20564.
+ *
+ * @return add java doc https://issues.apache.org/jira/browse/IGNITE-20564.
+ */
+ public Map<String, String> storageProfiles() {
+ return storageProfiles;
+ }
+
/** {@inheritDoc} */
@Override
public String toString() {
diff --git
a/modules/cluster-management/src/testFixtures/java/org/apache/ignite/internal/cluster/management/BaseItClusterManagementTest.java
b/modules/cluster-management/src/testFixtures/java/org/apache/ignite/internal/cluster/management/BaseItClusterManagementTest.java
index 8a4306ab60..f8d622a4d5 100644
---
a/modules/cluster-management/src/testFixtures/java/org/apache/ignite/internal/cluster/management/BaseItClusterManagementTest.java
+++
b/modules/cluster-management/src/testFixtures/java/org/apache/ignite/internal/cluster/management/BaseItClusterManagementTest.java
@@ -28,6 +28,7 @@ import java.util.stream.IntStream;
import java.util.stream.Stream;
import
org.apache.ignite.internal.cluster.management.configuration.ClusterManagementConfiguration;
import
org.apache.ignite.internal.cluster.management.configuration.NodeAttributesConfiguration;
+import
org.apache.ignite.internal.cluster.management.configuration.StorageProfilesConfiguration;
import
org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import
org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import org.apache.ignite.internal.raft.configuration.RaftConfiguration;
@@ -52,7 +53,10 @@ public abstract class BaseItClusterManagementTest extends
BaseIgniteAbstractTest
private static RaftConfiguration raftConfiguration;
@InjectConfiguration
- private static NodeAttributesConfiguration nodeAttributes;
+ private static NodeAttributesConfiguration userNodeAttributes;
+
+ @InjectConfiguration
+ private static StorageProfilesConfiguration storageProfilesConfiguration;
protected static List<MockNode> createNodes(int numNodes, TestInfo
testInfo, Path workDir) {
StaticNodeFinder nodeFinder = createNodeFinder(numNodes);
@@ -65,7 +69,8 @@ public abstract class BaseItClusterManagementTest extends
BaseIgniteAbstractTest
workDir.resolve("node" + i),
raftConfiguration,
cmgConfiguration,
- nodeAttributes
+ userNodeAttributes,
+ storageProfilesConfiguration
))
.collect(toList());
@@ -79,7 +84,8 @@ public abstract class BaseItClusterManagementTest extends
BaseIgniteAbstractTest
workDir.resolve("node" + cluster.size()),
raftConfiguration,
cmgConfiguration,
- nodeAttributes
+ userNodeAttributes,
+ storageProfilesConfiguration
);
cluster.add(node);
diff --git
a/modules/cluster-management/src/testFixtures/java/org/apache/ignite/internal/cluster/management/MockNode.java
b/modules/cluster-management/src/testFixtures/java/org/apache/ignite/internal/cluster/management/MockNode.java
index d4967b3444..fb30286d21 100644
---
a/modules/cluster-management/src/testFixtures/java/org/apache/ignite/internal/cluster/management/MockNode.java
+++
b/modules/cluster-management/src/testFixtures/java/org/apache/ignite/internal/cluster/management/MockNode.java
@@ -29,6 +29,7 @@ import java.util.Set;
import java.util.concurrent.CompletableFuture;
import
org.apache.ignite.internal.cluster.management.configuration.ClusterManagementConfiguration;
import
org.apache.ignite.internal.cluster.management.configuration.NodeAttributesConfiguration;
+import
org.apache.ignite.internal.cluster.management.configuration.StorageProfilesConfiguration;
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.api.LogicalNode;
@@ -84,14 +85,15 @@ public class MockNode {
Path workDir,
RaftConfiguration raftConfiguration,
ClusterManagementConfiguration cmgConfiguration,
- NodeAttributesConfiguration nodeAttributes
+ NodeAttributesConfiguration nodeAttributes,
+ StorageProfilesConfiguration storageProfilesConfiguration
) {
this.testInfo = testInfo;
this.nodeFinder = nodeFinder;
this.workDir = workDir;
this.raftConfiguration = raftConfiguration;
this.cmgConfiguration = cmgConfiguration;
- this.nodeAttributes = new NodeAttributesCollector(nodeAttributes);
+ this.nodeAttributes = new NodeAttributesCollector(nodeAttributes,
storageProfilesConfiguration);
try {
init(addr.port());
diff --git
a/modules/distribution-zones/src/main/java/org/apache/ignite/internal/distributionzones/DistributionZonesUtil.java
b/modules/distribution-zones/src/main/java/org/apache/ignite/internal/distributionzones/DistributionZonesUtil.java
index 764f44c24a..1ea89d2085 100644
---
a/modules/distribution-zones/src/main/java/org/apache/ignite/internal/distributionzones/DistributionZonesUtil.java
+++
b/modules/distribution-zones/src/main/java/org/apache/ignite/internal/distributionzones/DistributionZonesUtil.java
@@ -381,7 +381,7 @@ public class DistributionZonesUtil {
*/
public static Update updateLogicalTopologyAndVersion(Set<LogicalNode>
logicalTopology, long topologyVersion) {
Set<NodeWithAttributes> topologyFromCmg = logicalTopology.stream()
- .map(n -> new NodeWithAttributes(n.name(), n.id(),
n.attributes()))
+ .map(n -> new NodeWithAttributes(n.name(), n.id(),
n.userAttributes()))
.collect(toSet());
return ops(
diff --git
a/modules/distribution-zones/src/testFixtures/java/org/apache/ignite/internal/distributionzones/DistributionZonesTestUtil.java
b/modules/distribution-zones/src/testFixtures/java/org/apache/ignite/internal/distributionzones/DistributionZonesTestUtil.java
index 4e1bfa81b4..e766b7d6fa 100644
---
a/modules/distribution-zones/src/testFixtures/java/org/apache/ignite/internal/distributionzones/DistributionZonesTestUtil.java
+++
b/modules/distribution-zones/src/testFixtures/java/org/apache/ignite/internal/distributionzones/DistributionZonesTestUtil.java
@@ -312,7 +312,7 @@ public class DistributionZonesTestUtil {
) throws InterruptedException {
Set<NodeWithAttributes> nodes = clusterNodes == null
? null
- : clusterNodes.stream().map(n -> new
NodeWithAttributes(n.name(), n.id(), n.attributes())).collect(toSet());
+ : clusterNodes.stream().map(n -> new
NodeWithAttributes(n.name(), n.id(), n.userAttributes())).collect(toSet());
assertValueInStorage(
keyValueStorage,
@@ -348,7 +348,7 @@ public class DistributionZonesTestUtil {
*/
public static void mockVaultZonesLogicalTopologyKey(Set<LogicalNode>
nodes, VaultManager vaultMgr, long appliedRevision) {
Set<NodeWithAttributes> nodesWithAttributes = nodes.stream()
- .map(n -> new NodeWithAttributes(n.name(), n.id(),
n.attributes()))
+ .map(n -> new NodeWithAttributes(n.name(), n.id(),
n.userAttributes()))
.collect(toSet());
byte[] newLogicalTopology = toBytes(nodesWithAttributes);
diff --git
a/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageMultipleNodesAbstractTest.java
b/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageMultipleNodesAbstractTest.java
index 10c46c66f5..0a292395f8 100644
---
a/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageMultipleNodesAbstractTest.java
+++
b/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageMultipleNodesAbstractTest.java
@@ -48,6 +48,7 @@ import
org.apache.ignite.internal.cluster.management.ClusterManagementGroupManag
import org.apache.ignite.internal.cluster.management.NodeAttributesCollector;
import
org.apache.ignite.internal.cluster.management.configuration.ClusterManagementConfiguration;
import
org.apache.ignite.internal.cluster.management.configuration.NodeAttributesConfiguration;
+import
org.apache.ignite.internal.cluster.management.configuration.StorageProfilesConfiguration;
import org.apache.ignite.internal.cluster.management.raft.ClusterStateStorage;
import
org.apache.ignite.internal.cluster.management.raft.TestClusterStateStorage;
import
org.apache.ignite.internal.cluster.management.topology.LogicalTopologyImpl;
@@ -105,6 +106,9 @@ public abstract class
ItMetaStorageMultipleNodesAbstractTest extends IgniteAbstr
@InjectConfiguration
private static NodeAttributesConfiguration nodeAttributes;
+ @InjectConfiguration
+ private static StorageProfilesConfiguration storageProfilesConfiguration;
+
/**
* Large interval to effectively disable idle safe time propagation.
*/
@@ -164,7 +168,7 @@ public abstract class
ItMetaStorageMultipleNodesAbstractTest extends IgniteAbstr
clusterStateStorage,
logicalTopology,
cmgConfiguration,
- new NodeAttributesCollector(nodeAttributes)
+ new NodeAttributesCollector(nodeAttributes,
storageProfilesConfiguration)
);
var logicalTopologyService = new
LogicalTopologyServiceImpl(logicalTopology, cmgManager);
diff --git
a/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageWatchTest.java
b/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageWatchTest.java
index 6c96cd58df..df7017cef2 100644
---
a/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageWatchTest.java
+++
b/modules/metastorage/src/integrationTest/java/org/apache/ignite/internal/metastorage/impl/ItMetaStorageWatchTest.java
@@ -43,6 +43,7 @@ import
org.apache.ignite.internal.cluster.management.ClusterManagementGroupManag
import org.apache.ignite.internal.cluster.management.NodeAttributesCollector;
import
org.apache.ignite.internal.cluster.management.configuration.ClusterManagementConfiguration;
import
org.apache.ignite.internal.cluster.management.configuration.NodeAttributesConfiguration;
+import
org.apache.ignite.internal.cluster.management.configuration.StorageProfilesConfiguration;
import
org.apache.ignite.internal.cluster.management.raft.TestClusterStateStorage;
import
org.apache.ignite.internal.cluster.management.topology.LogicalTopologyImpl;
import
org.apache.ignite.internal.cluster.management.topology.LogicalTopologyServiceImpl;
@@ -88,6 +89,9 @@ public class ItMetaStorageWatchTest extends
IgniteAbstractTest {
@InjectConfiguration
private static NodeAttributesConfiguration nodeAttributes;
+ @InjectConfiguration
+ private static StorageProfilesConfiguration storageProfilesConfiguration;
+
@InjectConfiguration
private static MetaStorageConfiguration metaStorageConfiguration;
@@ -145,7 +149,7 @@ public class ItMetaStorageWatchTest extends
IgniteAbstractTest {
clusterStateStorage,
logicalTopology,
cmgConfiguration,
- new NodeAttributesCollector(nodeAttributes)
+ new NodeAttributesCollector(nodeAttributes,
storageProfilesConfiguration)
);
components.add(cmgManager);
diff --git
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/compute/ItLogicalTopologyTest.java
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/compute/ItLogicalTopologyTest.java
index bc665b234c..41da3d4cd0 100644
---
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/compute/ItLogicalTopologyTest.java
+++
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/compute/ItLogicalTopologyTest.java
@@ -58,19 +58,26 @@ class ItLogicalTopologyTest extends
ClusterPerTestIntegrationTest {
private static final String NODE_ATTRIBUTES =
"{region:{attribute:\"US\"},storage:{attribute:\"SSD\"}}";
+ private static final String STORAGE_PROFILES =
"{lru_rocks:{engine:\"rocksDb\"},segmented_aipersist:{engine:\"aipersist\"}}";
+
private static final Map<String, String> NODE_ATTRIBUTES_MAP =
Map.of("region", "US", "storage", "SSD");
+ private static final Map<String, String> STORAGE_PROFILES_MAP =
Map.of("lru_rocks", "rocksDb", "segmented_aipersist", "aipersist");
+
@Language("JSON")
- private static final String
NODE_BOOTSTRAP_CFG_TEMPLATE_WITH_NODE_ATTRIBUTES = "{\n"
+ private static final String
NODE_BOOTSTRAP_CFG_TEMPLATE_WITH_NODE_ATTRIBUTES_AND_STORAGE_PROFILES = "{\n"
+ " network: {\n"
+ " port: {},\n"
+ " nodeFinder: {\n"
+ " netClusterNodes: [ {} ]\n"
+ " }\n"
- + " },"
+ + " },\n"
+ " nodeAttributes: {\n"
+ " nodeAttributes: " + NODE_ATTRIBUTES
+ " },\n"
+ + " storageProfiles: {\n"
+ + " storageProfiles: " + STORAGE_PROFILES
+ + " },\n"
+ " clientConnector: { port:{} },\n"
+ " rest.port: {}\n"
+ "}";
@@ -148,7 +155,7 @@ class ItLogicalTopologyTest extends
ClusterPerTestIntegrationTest {
}
@Test
- void receivesLogicalTopologyEventsWithNodeAttributes() throws Exception {
+ void receivesLogicalTopologyEventsWithAttributes() throws Exception {
cluster.startAndInit(1);
IgniteImpl entryNode = node(0);
@@ -156,14 +163,15 @@ class ItLogicalTopologyTest extends
ClusterPerTestIntegrationTest {
entryNode.logicalTopologyService().addEventListener(listener);
// Checking that onAppeared() is received.
- Ignite secondIgnite = startNode(1,
NODE_BOOTSTRAP_CFG_TEMPLATE_WITH_NODE_ATTRIBUTES);
+ Ignite secondIgnite = startNode(1,
NODE_BOOTSTRAP_CFG_TEMPLATE_WITH_NODE_ATTRIBUTES_AND_STORAGE_PROFILES);
Event event = events.poll(10, TimeUnit.SECONDS);
assertThat(event, is(notNullValue()));
assertThat(event.eventType, is(EventType.VALIDATED));
assertThat(event.node.name(), is(secondIgnite.name()));
- assertThat(event.node.attributes(), is(NODE_ATTRIBUTES_MAP));
+ assertThat(event.node.userAttributes(), is(NODE_ATTRIBUTES_MAP));
+ assertThat(event.node.storageProfiles(), is(STORAGE_PROFILES_MAP));
event = events.poll(10, TimeUnit.SECONDS);
@@ -171,7 +179,8 @@ class ItLogicalTopologyTest extends
ClusterPerTestIntegrationTest {
assertThat(event.eventType, is(EventType.JOINED));
assertThat(event.node.name(), is(secondIgnite.name()));
assertThat(event.topologyVersion, is(2L));
- assertThat(event.node.attributes(), is(NODE_ATTRIBUTES_MAP));
+ assertThat(event.node.userAttributes(), is(NODE_ATTRIBUTES_MAP));
+ assertThat(event.node.storageProfiles(), is(STORAGE_PROFILES_MAP));
assertThat(events, is(empty()));
@@ -184,7 +193,8 @@ class ItLogicalTopologyTest extends
ClusterPerTestIntegrationTest {
assertThat(event.eventType, is(EventType.LEFT));
assertThat(event.node.name(), is(secondIgnite.name()));
assertThat(event.topologyVersion, is(3L));
- assertThat(event.node.attributes(), is(Collections.emptyMap()));
+ assertThat(event.node.userAttributes(), is(Collections.emptyMap()));
+ assertThat(event.node.storageProfiles(), is(Collections.emptyMap()));
assertThat(events, is(empty()));
}
@@ -195,7 +205,7 @@ class ItLogicalTopologyTest extends
ClusterPerTestIntegrationTest {
IgniteImpl entryNode = node(0);
- IgniteImpl secondIgnite = startNode(1,
NODE_BOOTSTRAP_CFG_TEMPLATE_WITH_NODE_ATTRIBUTES);
+ IgniteImpl secondIgnite = startNode(1,
NODE_BOOTSTRAP_CFG_TEMPLATE_WITH_NODE_ATTRIBUTES_AND_STORAGE_PROFILES);
List<LogicalNode> logicalTopologyFromLeader = new ArrayList<>(
entryNode.logicalTopologyService().logicalTopologyOnLeader().get(5,
TimeUnit.SECONDS).nodes()
@@ -207,7 +217,8 @@ class ItLogicalTopologyTest extends
ClusterPerTestIntegrationTest {
assertTrue(secondNode.isPresent());
- assertThat(secondNode.get().attributes(), is(NODE_ATTRIBUTES_MAP));
+ assertThat(secondNode.get().userAttributes(), is(NODE_ATTRIBUTES_MAP));
+ assertThat(secondNode.get().storageProfiles(),
is(STORAGE_PROFILES_MAP));
}
@Test
diff --git
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/ItDistributedConfigurationPropertiesTest.java
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/ItDistributedConfigurationPropertiesTest.java
index 9ee1b2a6c8..305c8b2213 100644
---
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/ItDistributedConfigurationPropertiesTest.java
+++
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/ItDistributedConfigurationPropertiesTest.java
@@ -42,6 +42,7 @@ import
org.apache.ignite.internal.cluster.management.ClusterManagementGroupManag
import org.apache.ignite.internal.cluster.management.NodeAttributesCollector;
import
org.apache.ignite.internal.cluster.management.configuration.ClusterManagementConfiguration;
import
org.apache.ignite.internal.cluster.management.configuration.NodeAttributesConfiguration;
+import
org.apache.ignite.internal.cluster.management.configuration.StorageProfilesConfiguration;
import
org.apache.ignite.internal.cluster.management.raft.TestClusterStateStorage;
import
org.apache.ignite.internal.cluster.management.topology.LogicalTopologyImpl;
import
org.apache.ignite.internal.cluster.management.topology.LogicalTopologyServiceImpl;
@@ -99,6 +100,9 @@ public class ItDistributedConfigurationPropertiesTest
extends BaseIgniteAbstract
@InjectConfiguration
private static NodeAttributesConfiguration nodeAttributes;
+ @InjectConfiguration
+ private static StorageProfilesConfiguration storageProfilesConfiguration;
+
@InjectConfiguration
private static MetaStorageConfiguration metaStorageConfiguration;
@@ -167,7 +171,7 @@ public class ItDistributedConfigurationPropertiesTest
extends BaseIgniteAbstract
clusterStateStorage,
logicalTopology,
clusterManagementConfiguration,
- new NodeAttributesCollector(nodeAttributes)
+ new NodeAttributesCollector(nodeAttributes,
storageProfilesConfiguration)
);
var logicalTopologyService = new
LogicalTopologyServiceImpl(logicalTopology, cmgManager);
diff --git
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/storage/ItDistributedConfigurationStorageTest.java
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/storage/ItDistributedConfigurationStorageTest.java
index 60398fdb59..6f8b8358ce 100644
---
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/storage/ItDistributedConfigurationStorageTest.java
+++
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/configuration/storage/ItDistributedConfigurationStorageTest.java
@@ -37,6 +37,7 @@ import
org.apache.ignite.internal.cluster.management.ClusterManagementGroupManag
import org.apache.ignite.internal.cluster.management.NodeAttributesCollector;
import
org.apache.ignite.internal.cluster.management.configuration.ClusterManagementConfiguration;
import
org.apache.ignite.internal.cluster.management.configuration.NodeAttributesConfiguration;
+import
org.apache.ignite.internal.cluster.management.configuration.StorageProfilesConfiguration;
import
org.apache.ignite.internal.cluster.management.raft.TestClusterStateStorage;
import
org.apache.ignite.internal.cluster.management.topology.LogicalTopologyImpl;
import
org.apache.ignite.internal.cluster.management.topology.LogicalTopologyServiceImpl;
@@ -82,6 +83,9 @@ public class ItDistributedConfigurationStorageTest extends
BaseIgniteAbstractTes
@InjectConfiguration
private static NodeAttributesConfiguration nodeAttributes;
+ @InjectConfiguration
+ private static StorageProfilesConfiguration storageProfilesConfiguration;
+
@InjectConfiguration
private static MetaStorageConfiguration metaStorageConfiguration;
@@ -141,7 +145,7 @@ public class ItDistributedConfigurationStorageTest extends
BaseIgniteAbstractTes
clusterStateStorage,
logicalTopology,
clusterManagementConfiguration,
- new NodeAttributesCollector(nodeAttributes)
+ new NodeAttributesCollector(nodeAttributes,
storageProfilesConfiguration)
);
var logicalTopologyService = new
LogicalTopologyServiceImpl(logicalTopology, cmgManager);
diff --git
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/distribution/zones/ItIgniteDistributionZoneManagerNodeRestartTest.java
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/distribution/zones/ItIgniteDistributionZoneManagerNodeRestartTest.java
index 145667b31a..c63edadf05 100644
---
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/distribution/zones/ItIgniteDistributionZoneManagerNodeRestartTest.java
+++
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/distribution/zones/ItIgniteDistributionZoneManagerNodeRestartTest.java
@@ -329,7 +329,7 @@ public class ItIgniteDistributionZoneManagerNodeRestartTest
extends BaseIgniteRe
node.logicalTopology().putNode(C);
Set<NodeWithAttributes> logicalTopology = Stream.of(A, B, C)
- .map(n -> new NodeWithAttributes(n.name(), n.id(),
n.attributes()))
+ .map(n -> new NodeWithAttributes(n.name(), n.id(),
n.userAttributes()))
.collect(toSet());
DistributionZoneManager distributionZoneManager =
getDistributionZoneManager(node);
diff --git
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/rebalance/ItRebalanceDistributedTest.java
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/rebalance/ItRebalanceDistributedTest.java
index 5f46a14ceb..a8b1c52b21 100644
---
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/rebalance/ItRebalanceDistributedTest.java
+++
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/rebalance/ItRebalanceDistributedTest.java
@@ -94,6 +94,7 @@ import
org.apache.ignite.internal.cluster.management.ClusterManagementGroupManag
import org.apache.ignite.internal.cluster.management.NodeAttributesCollector;
import
org.apache.ignite.internal.cluster.management.configuration.ClusterManagementConfiguration;
import
org.apache.ignite.internal.cluster.management.configuration.NodeAttributesConfiguration;
+import
org.apache.ignite.internal.cluster.management.configuration.StorageProfilesConfiguration;
import
org.apache.ignite.internal.cluster.management.raft.TestClusterStateStorage;
import
org.apache.ignite.internal.cluster.management.topology.LogicalTopologyImpl;
import
org.apache.ignite.internal.cluster.management.topology.LogicalTopologyServiceImpl;
@@ -221,6 +222,9 @@ public class ItRebalanceDistributedTest extends
BaseIgniteAbstractTest {
@InjectConfiguration
private static NodeAttributesConfiguration nodeAttributes;
+ @InjectConfiguration
+ private static StorageProfilesConfiguration storageProfilesConfiguration;
+
@InjectConfiguration
private static MetaStorageConfiguration metaStorageConfiguration;
@@ -826,7 +830,7 @@ public class ItRebalanceDistributedTest extends
BaseIgniteAbstractTest {
clusterStateStorage,
logicalTopology,
clusterManagementConfiguration,
- new NodeAttributesCollector(nodeAttributes)
+ new NodeAttributesCollector(nodeAttributes,
storageProfilesConfiguration)
);
LongSupplier partitionIdleSafeTimePropagationPeriodMsSupplier = ()
-> 10L;
diff --git
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItIgniteNodeRestartTest.java
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItIgniteNodeRestartTest.java
index 2b61381301..154f0ca57a 100644
---
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItIgniteNodeRestartTest.java
+++
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ItIgniteNodeRestartTest.java
@@ -70,6 +70,7 @@ import
org.apache.ignite.internal.cluster.management.ClusterManagementGroupManag
import org.apache.ignite.internal.cluster.management.NodeAttributesCollector;
import
org.apache.ignite.internal.cluster.management.configuration.ClusterManagementConfiguration;
import
org.apache.ignite.internal.cluster.management.configuration.NodeAttributesConfiguration;
+import
org.apache.ignite.internal.cluster.management.configuration.StorageProfilesConfiguration;
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.LogicalTopologyServiceImpl;
@@ -176,6 +177,9 @@ public class ItIgniteNodeRestartTest extends
BaseIgniteRestartTest {
@InjectConfiguration
private static NodeAttributesConfiguration nodeAttributes;
+ @InjectConfiguration
+ private static StorageProfilesConfiguration storageProfilesConfiguration;
+
@InjectConfiguration
private static MetaStorageConfiguration metaStorageConfiguration;
@@ -272,7 +276,7 @@ public class ItIgniteNodeRestartTest extends
BaseIgniteRestartTest {
clusterStateStorage,
logicalTopology,
clusterManagementConfiguration,
- new NodeAttributesCollector(nodeAttributes)
+ new NodeAttributesCollector(nodeAttributes,
storageProfilesConfiguration)
);
LongSupplier partitionIdleSafeTimePropagationPeriodMsSupplier = () ->
10L;
diff --git
a/modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java
b/modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java
index 289dd9ec1b..28dafd2961 100644
---
a/modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java
+++
b/modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java
@@ -50,6 +50,7 @@ import
org.apache.ignite.internal.cluster.management.ClusterManagementGroupManag
import org.apache.ignite.internal.cluster.management.NodeAttributesCollector;
import
org.apache.ignite.internal.cluster.management.configuration.ClusterManagementConfiguration;
import
org.apache.ignite.internal.cluster.management.configuration.NodeAttributesConfiguration;
+import
org.apache.ignite.internal.cluster.management.configuration.StorageProfilesConfiguration;
import org.apache.ignite.internal.cluster.management.raft.ClusterStateStorage;
import
org.apache.ignite.internal.cluster.management.raft.RocksDbClusterStateStorage;
import
org.apache.ignite.internal.cluster.management.topology.LogicalTopologyImpl;
@@ -410,7 +411,10 @@ public class IgniteImpl implements Ignite {
ConfigurationValidatorImpl.withDefaultValidators(distributedConfigurationGenerator,
modules.distributed().validators());
NodeAttributesCollector nodeAttributesCollector =
- new
NodeAttributesCollector(nodeConfigRegistry.getConfiguration(NodeAttributesConfiguration.KEY));
+ new NodeAttributesCollector(
+
nodeConfigRegistry.getConfiguration(NodeAttributesConfiguration.KEY),
+
nodeConfigRegistry.getConfiguration(StorageProfilesConfiguration.KEY)
+ );
clusterConfigurationDefaultsSetter =
diff --git
a/modules/system-view/src/test/java/org/apache/ignite/internal/systemview/SystemViewManagerTest.java
b/modules/system-view/src/test/java/org/apache/ignite/internal/systemview/SystemViewManagerTest.java
index fbc36b3665..a738de0e66 100644
---
a/modules/system-view/src/test/java/org/apache/ignite/internal/systemview/SystemViewManagerTest.java
+++
b/modules/system-view/src/test/java/org/apache/ignite/internal/systemview/SystemViewManagerTest.java
@@ -349,7 +349,7 @@ public class SystemViewManagerTest extends
BaseIgniteAbstractTest {
systemAttributes = Map.of();
}
- topology.add(new LogicalNode(clusterNode, Map.of(),
systemAttributes));
+ topology.add(new LogicalNode(clusterNode, Map.of(),
systemAttributes, Map.of()));
}
return new LogicalTopologySnapshot(1, topology);