Skip to content

Commit 0a85bc3

Browse files
authored
Refactor some ILM tests to not use deprecated methods (elastic#131417)
And update `MetadataMigrateToDataTiersRoutingService` to accept a `ProjectState` instead of a `ProjectResolver`.
1 parent 157eeea commit 0a85bc3

File tree

5 files changed

+260
-492
lines changed

5 files changed

+260
-492
lines changed

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

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1490,12 +1490,6 @@ public Builder templates(Map<String, IndexTemplateMetadata> templates) {
14901490
return this;
14911491
}
14921492

1493-
@Deprecated(forRemoval = true)
1494-
public Builder put(String name, ComponentTemplate componentTemplate) {
1495-
getSingleProject().put(name, componentTemplate);
1496-
return this;
1497-
}
1498-
14991493
@Deprecated(forRemoval = true)
15001494
public Builder componentTemplates(Map<String, ComponentTemplate> componentTemplates) {
15011495
getSingleProject().componentTemplates(componentTemplates);
@@ -1536,12 +1530,6 @@ public boolean put(String aliasName, String dataStream, Boolean isWriteDataStrea
15361530
return getSingleProject().put(aliasName, dataStream, isWriteDataStream, filter);
15371531
}
15381532

1539-
@Deprecated(forRemoval = true)
1540-
public Builder removeDataStream(String name) {
1541-
getSingleProject().removeDataStream(name);
1542-
return this;
1543-
}
1544-
15451533
public Builder putCustom(String type, ClusterCustom custom) {
15461534
customs.put(type, Objects.requireNonNull(custom, type));
15471535
return this;

x-pack/plugin/ilm/src/main/java/org/elasticsearch/xpack/cluster/metadata/MetadataMigrateToDataTiersRoutingService.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import org.apache.logging.log4j.Logger;
1212
import org.elasticsearch.client.internal.Client;
1313
import org.elasticsearch.cluster.ClusterState;
14+
import org.elasticsearch.cluster.ProjectState;
1415
import org.elasticsearch.cluster.metadata.ComponentTemplate;
1516
import org.elasticsearch.cluster.metadata.ComposableIndexTemplate;
1617
import org.elasticsearch.cluster.metadata.IndexMetadata;
@@ -19,10 +20,10 @@
1920
import org.elasticsearch.cluster.metadata.Metadata;
2021
import org.elasticsearch.cluster.metadata.ProjectMetadata;
2122
import org.elasticsearch.cluster.metadata.Template;
22-
import org.elasticsearch.cluster.project.ProjectResolver;
2323
import org.elasticsearch.cluster.routing.allocation.DataTier;
2424
import org.elasticsearch.common.Strings;
2525
import org.elasticsearch.common.settings.Settings;
26+
import org.elasticsearch.core.NotMultiProjectCapable;
2627
import org.elasticsearch.core.Nullable;
2728
import org.elasticsearch.core.Tuple;
2829
import org.elasticsearch.license.XPackLicenseState;
@@ -178,16 +179,15 @@ private MetadataMigrateToDataTiersRoutingService() {}
178179
* ILM routing allocations. It also returns a summary of the affected abstractions encapsulated in {@link MigratedEntities}
179180
*/
180181
public static Tuple<ClusterState, MigratedEntities> migrateToDataTiersRouting(
181-
ClusterState currentState,
182-
ProjectResolver projectResolver,
182+
ProjectState currentState,
183183
@Nullable String nodeAttrName,
184184
@Nullable String indexTemplateToDelete,
185185
NamedXContentRegistry xContentRegistry,
186186
Client client,
187187
XPackLicenseState licenseState,
188188
boolean dryRun
189189
) {
190-
ProjectMetadata currentProjectMetadata = projectResolver.getProjectMetadata(currentState);
190+
ProjectMetadata currentProjectMetadata = currentState.metadata();
191191
if (dryRun == false) {
192192
IndexLifecycleMetadata currentMetadata = currentProjectMetadata.custom(IndexLifecycleMetadata.TYPE);
193193
if (currentMetadata != null && currentILMMode(currentProjectMetadata) != STOPPED) {
@@ -197,7 +197,9 @@ public static Tuple<ClusterState, MigratedEntities> migrateToDataTiersRouting(
197197
}
198198
}
199199

200-
Metadata.Builder mb = Metadata.builder(currentState.metadata());
200+
@NotMultiProjectCapable // We're doing something fishy here by updating the Metadata even though we're inside the scope of a single
201+
// project. This is generally not correct, but since ILM is not properly project-aware, we're making an exception here.
202+
Metadata.Builder mb = Metadata.builder(currentState.cluster().metadata());
201203
ProjectMetadata.Builder newProjectMetadataBuilder = ProjectMetadata.builder(currentProjectMetadata);
202204

203205
// remove ENFORCE_DEFAULT_TIER_PREFERENCE from the persistent settings
@@ -245,7 +247,7 @@ public static Tuple<ClusterState, MigratedEntities> migrateToDataTiersRouting(
245247
attribute
246248
);
247249
return Tuple.tuple(
248-
ClusterState.builder(currentState).metadata(mb).putProjectMetadata(newProjectMetadataBuilder).build(),
250+
ClusterState.builder(currentState.cluster()).metadata(mb).putProjectMetadata(newProjectMetadataBuilder).build(),
249251
new MigratedEntities(removedIndexTemplateName, migratedIndices, migratedPolicies, migratedTemplates)
250252
);
251253
}

x-pack/plugin/ilm/src/main/java/org/elasticsearch/xpack/ilm/action/TransportMigrateToDataTiersAction.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -90,10 +90,10 @@ protected void masterOperation(
9090
ClusterState state,
9191
ActionListener<MigrateToDataTiersResponse> listener
9292
) throws Exception {
93+
final var projectId = projectResolver.getProjectId();
9394
if (request.isDryRun()) {
9495
MigratedEntities entities = migrateToDataTiersRouting(
95-
state,
96-
projectResolver,
96+
state.projectState(projectId),
9797
request.getNodeAttributeName(),
9898
request.getLegacyTemplateToDelete(),
9999
xContentRegistry,
@@ -131,8 +131,7 @@ protected void masterOperation(
131131
@Override
132132
public ClusterState execute(ClusterState currentState) {
133133
Tuple<ClusterState, MigratedEntities> migratedEntitiesTuple = migrateToDataTiersRouting(
134-
currentState,
135-
projectResolver,
134+
currentState.projectState(projectId),
136135
request.getNodeAttributeName(),
137136
request.getLegacyTemplateToDelete(),
138137
xContentRegistry,

0 commit comments

Comments
 (0)