summaryrefslogtreecommitdiffstats
path: root/clustercontroller-core
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2024-04-11 09:12:53 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2024-04-11 09:12:53 +0200
commit42a9f71995b99044652bddf52ad869a824d98ddc (patch)
tree8766842d727e4a766c39d19dab6eb756ed06f829 /clustercontroller-core
parented76cd45f86c8af9431860a9ac7c40fc59fb9e3c (diff)
Unify on Map.of
Diffstat (limited to 'clustercontroller-core')
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/AnnotatedClusterState.java7
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ClusterStateBundle.java23
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetControllerOptions.java3
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/rpc/SlimeClusterStateBundleCodec.java5
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ClusterStateBundleUtil.java4
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ContentClusterHtmlRendererTest.java3
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ResourceUsageStatsTest.java8
7 files changed, 22 insertions, 31 deletions
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/AnnotatedClusterState.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/AnnotatedClusterState.java
index e0ddf16ab5f..7991e1c34b6 100644
--- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/AnnotatedClusterState.java
+++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/AnnotatedClusterState.java
@@ -4,7 +4,6 @@ package com.yahoo.vespa.clustercontroller.core;
import com.yahoo.vdslib.state.ClusterState;
import com.yahoo.vdslib.state.Node;
-import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
@@ -47,7 +46,7 @@ public class AnnotatedClusterState implements Cloneable {
Map<Node, NodeStateReason> nodeStateReasons) {
this.clusterState = Objects.requireNonNull(clusterState, "Cluster state cannot be null");
this.clusterStateReason = Objects.requireNonNull(clusterStateReason, "Cluster state reason cannot be null");
- this.nodeStateReasons = Objects.requireNonNull(nodeStateReasons, "Node state reasons cannot be null");
+ this.nodeStateReasons = Map.copyOf(Objects.requireNonNull(nodeStateReasons, "Node state reasons cannot be null"));
}
public static AnnotatedClusterState emptyState() {
@@ -59,7 +58,7 @@ public class AnnotatedClusterState implements Cloneable {
}
static Map<Node, NodeStateReason> emptyNodeStateReasons() {
- return Collections.emptyMap();
+ return Map.of();
}
public ClusterState getClusterState() {
@@ -67,7 +66,7 @@ public class AnnotatedClusterState implements Cloneable {
}
public Map<Node, NodeStateReason> getNodeStateReasons() {
- return Collections.unmodifiableMap(nodeStateReasons);
+ return nodeStateReasons;
}
public Optional<ClusterStateReason> getClusterStateReason() {
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ClusterStateBundle.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ClusterStateBundle.java
index 53a39968720..d99d46c11ce 100644
--- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ClusterStateBundle.java
+++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ClusterStateBundle.java
@@ -4,7 +4,6 @@ package com.yahoo.vespa.clustercontroller.core;
import com.yahoo.vdslib.state.ClusterState;
import java.util.Arrays;
-import java.util.Collections;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
@@ -56,7 +55,7 @@ public class ClusterStateBundle {
public FeedBlock(boolean blockFeedInCluster, String description) {
this.blockFeedInCluster = blockFeedInCluster;
this.description = description;
- this.concreteExhaustions = Collections.emptySet();
+ this.concreteExhaustions = Set.of();
}
public FeedBlock(boolean blockFeedInCluster, String description,
@@ -165,14 +164,10 @@ public class ClusterStateBundle {
return ClusterStateBundle.ofBaselineOnly(baselineState, feedBlock, deferredActivation);
}
Map<String, AnnotatedClusterState> derived;
- if (explicitDerivedStates != null) {
- derived = explicitDerivedStates;
- } else {
- derived = bucketSpaces.stream()
- .collect(Collectors.toMap(
- Function.identity(),
- s -> stateDeriver.derivedFrom(baselineState, s)));
- }
+ derived = Objects.requireNonNullElseGet(explicitDerivedStates, () -> bucketSpaces.stream()
+ .collect(Collectors.toUnmodifiableMap(
+ Function.identity(),
+ s -> stateDeriver.derivedFrom(baselineState, s))));
return new ClusterStateBundle(baselineState, derived, feedBlock, deferredActivation);
}
}
@@ -186,7 +181,7 @@ public class ClusterStateBundle {
FeedBlock feedBlock,
boolean deferredActivation) {
this.baselineState = baselineState;
- this.derivedBucketSpaceStates = Collections.unmodifiableMap(derivedBucketSpaceStates);
+ this.derivedBucketSpaceStates = Map.copyOf(derivedBucketSpaceStates);
this.feedBlock = feedBlock;
this.deferredActivation = deferredActivation;
}
@@ -209,11 +204,11 @@ public class ClusterStateBundle {
public static ClusterStateBundle ofBaselineOnly(AnnotatedClusterState baselineState,
FeedBlock feedBlock,
boolean deferredActivation) {
- return new ClusterStateBundle(baselineState, Collections.emptyMap(), feedBlock, deferredActivation);
+ return new ClusterStateBundle(baselineState, Map.of(), feedBlock, deferredActivation);
}
public static ClusterStateBundle ofBaselineOnly(AnnotatedClusterState baselineState) {
- return new ClusterStateBundle(baselineState, Collections.emptyMap());
+ return new ClusterStateBundle(baselineState, Map.of());
}
public static ClusterStateBundle empty() {
@@ -238,7 +233,7 @@ public class ClusterStateBundle {
AnnotatedClusterState clonedBaseline = baselineState.cloneWithClusterState(
mapper.apply(baselineState.getClusterState().clone()));
Map<String, AnnotatedClusterState> clonedDerived = derivedBucketSpaceStates.entrySet().stream()
- .collect(Collectors.toMap(e -> e.getKey(), e -> e.getValue().cloneWithClusterState(
+ .collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue().cloneWithClusterState(
mapper.apply(e.getValue().getClusterState().clone()))));
return new ClusterStateBundle(clonedBaseline, clonedDerived, feedBlock, deferredActivation);
}
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetControllerOptions.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetControllerOptions.java
index a0efaa70b58..44b2c8833db 100644
--- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetControllerOptions.java
+++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetControllerOptions.java
@@ -10,7 +10,6 @@ import com.yahoo.vespa.clustercontroller.core.database.ZooKeeperDatabaseFactory;
import java.time.Duration;
import java.util.Collection;
-import java.util.Collections;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
@@ -433,7 +432,7 @@ public class FleetControllerOptions {
private double minMergeCompletionRatio = 1.0;
private int maxDivergentNodesPrintedInTaskErrorMessages = 10;
private boolean clusterFeedBlockEnabled = false;
- private Map<String, Double> clusterFeedBlockLimit = Collections.emptyMap();
+ private Map<String, Double> clusterFeedBlockLimit = Map.of();
private double clusterFeedBlockNoiseLevel = 0.01;
private int maxNumberOfGroupsAllowedToBeDown = 1;
private Function<FleetControllerContext, DatabaseFactory> dbFactoryFn = ZooKeeperDatabaseFactory::new;
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/rpc/SlimeClusterStateBundleCodec.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/rpc/SlimeClusterStateBundleCodec.java
index 12db5c27375..3a6b9a635fa 100644
--- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/rpc/SlimeClusterStateBundleCodec.java
+++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/rpc/SlimeClusterStateBundleCodec.java
@@ -41,11 +41,10 @@ public class SlimeClusterStateBundleCodec implements ClusterStateBundleCodec, En
// TODO add another function that is not toString for this..!
states.setString("baseline", stateBundle.getBaselineClusterState().toString());
Cursor spaces = states.setObject("spaces");
- stateBundle.getDerivedBucketSpaceStates().entrySet()
- .forEach(entry -> spaces.setString(entry.getKey(), entry.getValue().toString()));
+ stateBundle.getDerivedBucketSpaceStates().forEach((key, value) -> spaces.setString(key, value.toString()));
// Only bother to encode feed block state if cluster is actually blocked
- if (stateBundle.getFeedBlock().map(fb -> fb.blockFeedInCluster()).orElse(false)) {
+ if (stateBundle.getFeedBlock().map(ClusterStateBundle.FeedBlock::blockFeedInCluster).orElse(false)) {
Cursor feedBlock = root.setObject("feed-block");
feedBlock.setBool("block-feed-in-cluster", true);
feedBlock.setString("description", stateBundle.getFeedBlock().get().getDescription());
diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ClusterStateBundleUtil.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ClusterStateBundleUtil.java
index 7c39135291c..8280706bcd2 100644
--- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ClusterStateBundleUtil.java
+++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ClusterStateBundleUtil.java
@@ -14,13 +14,13 @@ public class ClusterStateBundleUtil {
public static ClusterStateBundle.Builder makeBundleBuilder(String baselineState, StateMapping... bucketSpaceStates) {
return ClusterStateBundle.builder(AnnotatedClusterState.withoutAnnotations(ClusterState.stateFromString(baselineState)))
- .explicitDerivedStates(Stream.of(bucketSpaceStates).collect(Collectors.toMap(sm -> sm.bucketSpace,
+ .explicitDerivedStates(Stream.of(bucketSpaceStates).collect(Collectors.toUnmodifiableMap(sm -> sm.bucketSpace,
sm -> AnnotatedClusterState.withoutAnnotations(sm.state))));
}
public static ClusterStateBundle makeBundle(String baselineState, StateMapping... bucketSpaceStates) {
return ClusterStateBundle.of(AnnotatedClusterState.withoutAnnotations(ClusterState.stateFromString(baselineState)),
- Stream.of(bucketSpaceStates).collect(Collectors.toMap(sm -> sm.bucketSpace,
+ Stream.of(bucketSpaceStates).collect(Collectors.toUnmodifiableMap(sm -> sm.bucketSpace,
sm -> AnnotatedClusterState.withoutAnnotations(sm.state))));
}
diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ContentClusterHtmlRendererTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ContentClusterHtmlRendererTest.java
index 175b7de8f4f..8048e77b05c 100644
--- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ContentClusterHtmlRendererTest.java
+++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ContentClusterHtmlRendererTest.java
@@ -11,7 +11,6 @@ import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import java.io.IOException;
-import java.util.Collections;
import java.util.Map;
import java.util.TreeMap;
@@ -53,7 +52,7 @@ public class ContentClusterHtmlRendererTest {
statsAggregator,
1.0,
10,
- Collections.emptyMap(),
+ Map.of(),
eventLog,
"pathPrefix",
"name");
diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ResourceUsageStatsTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ResourceUsageStatsTest.java
index b4246806079..168fe6521d5 100644
--- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ResourceUsageStatsTest.java
+++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ResourceUsageStatsTest.java
@@ -4,7 +4,7 @@ package com.yahoo.vespa.clustercontroller.core;
import org.junit.jupiter.api.Test;
import java.util.Collection;
-import java.util.Collections;
+import java.util.List;
import java.util.Map;
import java.util.Optional;
@@ -46,20 +46,20 @@ public class ResourceUsageStatsTest {
@Test
void nodes_above_limit_is_zero_without_feed_block_status() {
- var stats = ResourceUsageStats.calculateFrom(Collections.emptyList(), Collections.emptyMap(), Optional.empty());
+ var stats = ResourceUsageStats.calculateFrom(List.of(), Map.of(), Optional.empty());
assertEquals(0, stats.getNodesAboveLimit());
}
@Test
void nodes_above_limit_is_equal_to_node_resource_exhaustions() {
- var stats = ResourceUsageStats.calculateFrom(Collections.emptyList(), Collections.emptyMap(),
+ var stats = ResourceUsageStats.calculateFrom(List.of(), Map.of(),
createFeedBlock(exhaustion(1, "disk"), exhaustion(2, "memory")));
assertEquals(2, stats.getNodesAboveLimit());
}
@Test
void nodes_above_limit_counts_each_node_only_once() {
- var stats = ResourceUsageStats.calculateFrom(Collections.emptyList(), Collections.emptyMap(),
+ var stats = ResourceUsageStats.calculateFrom(List.of(), Map.of(),
createFeedBlock(exhaustion(1, "disk"), exhaustion(1, "memory")));
assertEquals(1, stats.getNodesAboveLimit());
}