Skip to content

Commit ee671f1

Browse files
authored
Remove deprecated usages in TransportPutFollowAction (#132038)
These lines were the last production usages of the deprecated methods on `Metadata`. By making these lines use non-deprecated methods, we can start updating `Metadata.Builder` to hold a map of `ProjectMetadata` instead of `ProjectMetadata.Builder`, which will have great performance benefits.
1 parent ab2e654 commit ee671f1

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

x-pack/plugin/ccr/src/main/java/org/elasticsearch/xpack/ccr/action/TransportPutFollowAction.java

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import org.elasticsearch.cluster.metadata.IndexMetadata;
2626
import org.elasticsearch.cluster.metadata.Metadata;
2727
import org.elasticsearch.cluster.metadata.ProjectId;
28+
import org.elasticsearch.cluster.metadata.ProjectMetadata;
2829
import org.elasticsearch.cluster.service.ClusterService;
2930
import org.elasticsearch.common.Strings;
3031
import org.elasticsearch.common.settings.IndexScopedSettings;
@@ -207,6 +208,10 @@ private void createFollowerIndex(
207208
(delegatedListener, response) -> afterRestoreStarted(clientWithHeaders, request, delegatedListener, response)
208209
);
209210

211+
@FixForMultiProject(
212+
description = "CCR may not be in scope for multi-project though we haven't made the decision explicitly yet. See also ES-12139"
213+
)
214+
final ProjectId projectId = ProjectId.DEFAULT;
210215
final BiConsumer<ClusterState, Metadata.Builder> updater;
211216
if (remoteDataStream == null) {
212217
// If the index we're following is not part of a data stream, start the
@@ -229,8 +234,9 @@ private void createFollowerIndex(
229234
// There was no specified name, use the original data stream name.
230235
localDataStreamName = remoteDataStream.getName();
231236
}
232-
final DataStream localDataStream = mdBuilder.dataStreamMetadata().dataStreams().get(localDataStreamName);
233-
final Index followerIndex = mdBuilder.get(followerIndexName).getIndex();
237+
final ProjectMetadata.Builder projectBuilder = mdBuilder.getProject(projectId);
238+
final DataStream localDataStream = projectBuilder.dataStream(localDataStreamName);
239+
final Index followerIndex = projectBuilder.get(followerIndexName).getIndex();
234240
assert followerIndex != null : "expected followerIndex " + followerIndexName + " to exist in the state, but it did not";
235241

236242
final DataStream updatedDataStream = updateLocalDataStream(
@@ -239,13 +245,9 @@ private void createFollowerIndex(
239245
localDataStreamName,
240246
remoteDataStream
241247
);
242-
mdBuilder.put(updatedDataStream);
248+
projectBuilder.put(updatedDataStream);
243249
};
244250
}
245-
@FixForMultiProject(
246-
description = "CCR may not be in scope for multi-project though we haven't made the decision explicitly yet. See also ES-12139"
247-
)
248-
final ProjectId projectId = ProjectId.DEFAULT;
249251
threadPool.executor(ThreadPool.Names.SNAPSHOT_META)
250252
.execute(ActionRunnable.wrap(delegatelistener, l -> restoreService.restoreSnapshot(projectId, restoreRequest, l, updater)));
251253
}

0 commit comments

Comments
 (0)