Skip to content

Commit 30e620b

Browse files
authored
Remove all usages of Metadata customs removal methods (#129043)
This removes all non-test usage of ``` Metadata.Builder.removeProjectCustom(String) Metadata.Builder.removeProjectCustomIf(BiPredicate) ``` And replaces it with appropriate calls to the equivalent method on `ProjectMetadata.Builder` In most cases this _does not_ make the code project aware, but does reduce the number of deprecated methods in use.
1 parent d3c874b commit 30e620b

File tree

9 files changed

+32
-43
lines changed

9 files changed

+32
-43
lines changed

server/src/internalClusterTest/java/org/elasticsearch/cluster/ClusterStateDiffIT.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import org.elasticsearch.cluster.metadata.IndexTemplateMetadata;
2727
import org.elasticsearch.cluster.metadata.Metadata;
2828
import org.elasticsearch.cluster.metadata.NodesShutdownMetadata;
29+
import org.elasticsearch.cluster.metadata.ProjectId;
2930
import org.elasticsearch.cluster.node.DiscoveryNode;
3031
import org.elasticsearch.cluster.node.DiscoveryNodeUtils;
3132
import org.elasticsearch.cluster.node.DiscoveryNodes;
@@ -45,6 +46,7 @@
4546
import org.elasticsearch.common.io.stream.StreamInput;
4647
import org.elasticsearch.common.settings.Settings;
4748
import org.elasticsearch.common.util.set.Sets;
49+
import org.elasticsearch.core.FixForMultiProject;
4850
import org.elasticsearch.gateway.GatewayService;
4951
import org.elasticsearch.index.Index;
5052
import org.elasticsearch.index.IndexVersion;
@@ -706,12 +708,15 @@ public Metadata.Builder put(Metadata.Builder builder, Metadata.ProjectCustom par
706708

707709
@Override
708710
public Metadata.Builder remove(Metadata.Builder builder, String name) {
711+
@FixForMultiProject
712+
final var projectBuilder = builder.getProject(ProjectId.DEFAULT);
709713
if (IndexGraveyard.TYPE.equals(name)) {
710714
// there must always be at least an empty graveyard
711-
return builder.indexGraveyard(IndexGraveyard.builder().build());
715+
projectBuilder.indexGraveyard(IndexGraveyard.builder().build());
712716
} else {
713-
return builder.removeProjectCustom(name);
717+
projectBuilder.removeCustom(name);
714718
}
719+
return builder;
715720
}
716721

717722
@Override

server/src/internalClusterTest/java/org/elasticsearch/snapshots/CustomMetadataContextIT.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,13 +91,13 @@ public void testShouldRestoreOnlySnapshotMetadata() throws Exception {
9191
assertThat(getSnapshot("test-repo", "test-snapshot").state(), equalTo(SnapshotState.SUCCESS));
9292

9393
logger.info("update custom persistent metadata");
94-
updateClusterState(currentState -> currentState.copyAndUpdateMetadata(metadataBuilder -> {
94+
updateClusterState(currentState -> currentState.copyAndUpdateProject(currentState.metadata().getProject().id(), builder -> {
9595
if (isSnapshotMetadataSet == false || randomBoolean()) {
96-
metadataBuilder.putCustom(SnapshotMetadata.TYPE, new SnapshotMetadata("after_snapshot_s"));
96+
builder.putCustom(SnapshotMetadata.TYPE, new SnapshotMetadata("after_snapshot_s"));
9797
} else {
98-
metadataBuilder.removeProjectCustom(SnapshotMetadata.TYPE);
98+
builder.removeCustom(SnapshotMetadata.TYPE);
9999
}
100-
metadataBuilder.putCustom(ApiMetadata.TYPE, new ApiMetadata("after_snapshot_ns"));
100+
builder.putCustom(ApiMetadata.TYPE, new ApiMetadata("after_snapshot_ns"));
101101
}));
102102

103103
logger.info("restore snapshot");

server/src/main/java/org/elasticsearch/cluster/coordination/RemoveCustomsCommand.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
import org.elasticsearch.cli.UserException;
1717
import org.elasticsearch.cluster.ClusterState;
1818
import org.elasticsearch.cluster.metadata.Metadata;
19+
import org.elasticsearch.cluster.metadata.ProjectId;
20+
import org.elasticsearch.cluster.metadata.ProjectMetadata;
1921
import org.elasticsearch.common.regex.Regex;
2022
import org.elasticsearch.core.FixForMultiProject;
2123
import org.elasticsearch.core.Tuple;
@@ -66,6 +68,8 @@ protected void processDataPaths(Terminal terminal, Path[] dataPaths, OptionSet o
6668
"project scoped custom metadata names: " + oldClusterState.metadata().getProject().customs().keySet()
6769
);
6870
final Metadata.Builder metadataBuilder = Metadata.builder(oldClusterState.metadata());
71+
@FixForMultiProject
72+
final ProjectMetadata.Builder projectBuilder = metadataBuilder.getProject(ProjectId.DEFAULT);
6973
for (String customToRemove : customsToRemove) {
7074
@FixForMultiProject
7175
boolean matched = false;
@@ -82,7 +86,7 @@ protected void processDataPaths(Terminal terminal, Path[] dataPaths, OptionSet o
8286
}
8387
for (String customKey : oldClusterState.metadata().getProject().customs().keySet()) {
8488
if (Regex.simpleMatch(customToRemove, customKey)) {
85-
metadataBuilder.removeProjectCustom(customKey);
89+
projectBuilder.removeCustom(customKey);
8690
if (matched == false) {
8791
terminal.println("The following customs will be removed:");
8892
}

server/src/main/java/org/elasticsearch/cluster/metadata/Metadata.java

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1743,18 +1743,6 @@ public Builder putProjectCustom(String type, ProjectCustom custom) {
17431743
return this;
17441744
}
17451745

1746-
@Deprecated(forRemoval = true)
1747-
public Builder removeProjectCustom(String type) {
1748-
getSingleProject().removeCustom(type);
1749-
return this;
1750-
}
1751-
1752-
@Deprecated(forRemoval = true)
1753-
public Builder removeProjectCustomIf(BiPredicate<String, ? super ProjectCustom> p) {
1754-
getSingleProject().removeCustomIf(p);
1755-
return this;
1756-
}
1757-
17581746
@Deprecated(forRemoval = true)
17591747
public Builder projectCustoms(Map<String, ProjectCustom> projectCustoms) {
17601748
projectCustoms.forEach((key, value) -> Objects.requireNonNull(value, key));

server/src/test/java/org/elasticsearch/cluster/ClusterChangedEventTests.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -681,10 +681,12 @@ private static ClusterState nextState(
681681
final ClusterState.Builder builder = ClusterState.builder(previousState);
682682
builder.stateUUID(UUIDs.randomBase64UUID());
683683
Metadata.Builder metadataBuilder = Metadata.builder(previousState.metadata());
684+
ProjectMetadata.Builder projectBuilder = ProjectMetadata.builder(previousState.metadata().projects().values().iterator().next());
684685
metadataBuilder.removeCustomIf((ignore, custom) -> custom instanceof TestClusterCustomMetadata);
685-
metadataBuilder.removeProjectCustomIf((ignore, custom) -> custom instanceof TestProjectCustomMetadata);
686+
projectBuilder.removeCustomIf((ignore, custom) -> custom instanceof TestProjectCustomMetadata);
686687
clusterCustoms.forEach(clusterCustom -> metadataBuilder.putCustom(clusterCustom.getWriteableName(), clusterCustom));
687-
projectCustoms.forEach(projectCustom -> metadataBuilder.putCustom(projectCustom.getWriteableName(), projectCustom));
688+
projectCustoms.forEach(projectCustom -> projectBuilder.putCustom(projectCustom.getWriteableName(), projectCustom));
689+
metadataBuilder.put(projectBuilder);
688690
builder.metadata(metadataBuilder);
689691
return builder.build();
690692
}

server/src/test/java/org/elasticsearch/cluster/metadata/MetadataTests.java

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1391,20 +1391,6 @@ public void testBuilderRemoveClusterCustomIf() {
13911391
assertThat(metadata.custom("custom2"), sameInstance(custom2));
13921392
}
13931393

1394-
public void testBuilderRemoveProjectCustomIf() {
1395-
var custom1 = new TestProjectCustomMetadata();
1396-
var custom2 = new TestProjectCustomMetadata();
1397-
var builder = Metadata.builder();
1398-
builder.putCustom("custom1", custom1);
1399-
builder.putCustom("custom2", custom2);
1400-
1401-
builder.removeProjectCustomIf((key, value) -> Objects.equals(key, "custom1"));
1402-
1403-
var metadata = builder.build();
1404-
assertThat(metadata.getProject().custom("custom1"), nullValue());
1405-
assertThat(metadata.getProject().custom("custom2"), sameInstance(custom2));
1406-
}
1407-
14081394
public void testBuilderRejectsDataStreamThatConflictsWithIndex() {
14091395
final String dataStreamName = "my-data-stream";
14101396
IndexMetadata idx = createFirstBackingIndex(dataStreamName).build();

server/src/test/java/org/elasticsearch/persistent/PersistentTasksClusterServiceTests.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import org.elasticsearch.cluster.metadata.IndexMetadata;
2121
import org.elasticsearch.cluster.metadata.Metadata;
2222
import org.elasticsearch.cluster.metadata.NodesShutdownMetadata;
23+
import org.elasticsearch.cluster.metadata.ProjectMetadata;
2324
import org.elasticsearch.cluster.metadata.SingleNodeShutdownMetadata;
2425
import org.elasticsearch.cluster.node.DiscoveryNode;
2526
import org.elasticsearch.cluster.node.DiscoveryNodeRole;
@@ -933,7 +934,10 @@ private ClusterState insignificantChange(ClusterState clusterState) {
933934
if (scope == PersistentTasksExecutor.Scope.CLUSTER) {
934935
metadata = Metadata.builder(clusterState.metadata()).removeCustom(ClusterPersistentTasksCustomMetadata.TYPE);
935936
} else {
936-
metadata = Metadata.builder(clusterState.metadata()).removeProjectCustom(PersistentTasksCustomMetadata.TYPE);
937+
metadata = Metadata.builder(clusterState.metadata())
938+
.put(
939+
ProjectMetadata.builder(clusterState.metadata().getProject()).removeCustom(PersistentTasksCustomMetadata.TYPE)
940+
);
937941
}
938942
return builder.metadata(metadata).build();
939943
}

x-pack/plugin/ccr/src/test/java/org/elasticsearch/xpack/CcrIntegTestCase.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
import org.elasticsearch.cluster.RestoreInProgress;
3232
import org.elasticsearch.cluster.health.ClusterHealthStatus;
3333
import org.elasticsearch.cluster.metadata.IndexMetadata;
34-
import org.elasticsearch.cluster.metadata.Metadata;
34+
import org.elasticsearch.cluster.metadata.ProjectMetadata;
3535
import org.elasticsearch.cluster.routing.ShardRouting;
3636
import org.elasticsearch.cluster.routing.UnassignedInfo;
3737
import org.elasticsearch.cluster.routing.allocation.DiskThresholdSettings;
@@ -865,10 +865,10 @@ static void removeCCRRelatedMetadataFromClusterState(ClusterService clusterServi
865865
public ClusterState execute(ClusterState currentState) throws Exception {
866866
AutoFollowMetadata empty = new AutoFollowMetadata(Collections.emptyMap(), Collections.emptyMap(), Collections.emptyMap());
867867
ClusterState.Builder newState = ClusterState.builder(currentState);
868-
newState.metadata(
869-
Metadata.builder(currentState.getMetadata())
868+
newState.putProjectMetadata(
869+
ProjectMetadata.builder(currentState.metadata().getProject())
870870
.putCustom(AutoFollowMetadata.TYPE, empty)
871-
.removeProjectCustom(PersistentTasksCustomMetadata.TYPE)
871+
.removeCustom(PersistentTasksCustomMetadata.TYPE)
872872
.build()
873873
);
874874
return newState.build();

x-pack/plugin/migrate/src/main/java/org/elasticsearch/system_indices/task/SystemIndexMigrator.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
import org.elasticsearch.cluster.ClusterStateUpdateTask;
3030
import org.elasticsearch.cluster.metadata.IndexMetadata;
3131
import org.elasticsearch.cluster.metadata.IndexTemplateMetadata;
32-
import org.elasticsearch.cluster.metadata.Metadata;
3332
import org.elasticsearch.cluster.metadata.MetadataIndexTemplateService;
3433
import org.elasticsearch.cluster.metadata.ProjectMetadata;
3534
import org.elasticsearch.cluster.service.ClusterService;
@@ -863,9 +862,10 @@ private static void clearResults(ClusterService clusterService, ActionListener<C
863862
submitUnbatchedTask(clusterService, "clear migration results", new ClusterStateUpdateTask() {
864863
@Override
865864
public ClusterState execute(ClusterState currentState) throws Exception {
866-
if (currentState.metadata().getProject().custom(FeatureMigrationResults.TYPE) != null) {
865+
final var project = currentState.metadata().getProject();
866+
if (project.custom(FeatureMigrationResults.TYPE) != null) {
867867
return ClusterState.builder(currentState)
868-
.metadata(Metadata.builder(currentState.metadata()).removeProjectCustom(FeatureMigrationResults.TYPE))
868+
.putProjectMetadata(ProjectMetadata.builder(project).removeCustom(FeatureMigrationResults.TYPE))
869869
.build();
870870
}
871871
return currentState;

0 commit comments

Comments
 (0)