Skip to content

Commit 5cec1dd

Browse files
authored
Make AddIndexBlockClusterStateUpdateRequest a record (#113349)
No need to extend `IndicesClusterStateUpdateRequest`, this thing can be completely immutable.
1 parent 7b52356 commit 5cec1dd

File tree

3 files changed

+34
-37
lines changed

3 files changed

+34
-37
lines changed

server/src/main/java/org/elasticsearch/action/admin/indices/readonly/AddIndexBlockClusterStateUpdateRequest.java

Lines changed: 16 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -8,32 +8,26 @@
88
*/
99
package org.elasticsearch.action.admin.indices.readonly;
1010

11-
import org.elasticsearch.cluster.ack.IndicesClusterStateUpdateRequest;
1211
import org.elasticsearch.cluster.metadata.IndexMetadata.APIBlock;
12+
import org.elasticsearch.core.TimeValue;
13+
import org.elasticsearch.index.Index;
14+
15+
import java.util.Objects;
1316

1417
/**
1518
* Cluster state update request that allows to add a block to one or more indices
1619
*/
17-
public class AddIndexBlockClusterStateUpdateRequest extends IndicesClusterStateUpdateRequest<AddIndexBlockClusterStateUpdateRequest> {
18-
19-
private final APIBlock block;
20-
private long taskId;
21-
22-
public AddIndexBlockClusterStateUpdateRequest(final APIBlock block, final long taskId) {
23-
this.block = block;
24-
this.taskId = taskId;
25-
}
26-
27-
public long taskId() {
28-
return taskId;
29-
}
30-
31-
public APIBlock getBlock() {
32-
return block;
33-
}
34-
35-
public AddIndexBlockClusterStateUpdateRequest taskId(final long taskId) {
36-
this.taskId = taskId;
37-
return this;
20+
public record AddIndexBlockClusterStateUpdateRequest(
21+
TimeValue masterNodeTimeout,
22+
TimeValue ackTimeout,
23+
APIBlock block,
24+
long taskId,
25+
Index[] indices
26+
) {
27+
public AddIndexBlockClusterStateUpdateRequest {
28+
Objects.requireNonNull(masterNodeTimeout);
29+
Objects.requireNonNull(ackTimeout);
30+
Objects.requireNonNull(block);
31+
Objects.requireNonNull(indices);
3832
}
3933
}

server/src/main/java/org/elasticsearch/action/admin/indices/readonly/TransportAddIndexBlockAction.java

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -102,13 +102,18 @@ protected void masterOperation(
102102
return;
103103
}
104104

105-
final AddIndexBlockClusterStateUpdateRequest addBlockRequest = new AddIndexBlockClusterStateUpdateRequest(
106-
request.getBlock(),
107-
task.getId()
108-
).ackTimeout(request.ackTimeout()).masterNodeTimeout(request.masterNodeTimeout()).indices(concreteIndices);
109-
indexStateService.addIndexBlock(addBlockRequest, listener.delegateResponse((delegatedListener, t) -> {
110-
logger.debug(() -> "failed to mark indices as readonly [" + Arrays.toString(concreteIndices) + "]", t);
111-
delegatedListener.onFailure(t);
112-
}));
105+
indexStateService.addIndexBlock(
106+
new AddIndexBlockClusterStateUpdateRequest(
107+
request.masterNodeTimeout(),
108+
request.ackTimeout(),
109+
request.getBlock(),
110+
task.getId(),
111+
concreteIndices
112+
),
113+
listener.delegateResponse((delegatedListener, t) -> {
114+
logger.debug(() -> "failed to mark indices as readonly [" + Arrays.toString(concreteIndices) + "]", t);
115+
delegatedListener.onFailure(t);
116+
})
117+
);
113118
}
114119
}

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

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -470,7 +470,7 @@ public void addIndexBlock(AddIndexBlockClusterStateUpdateRequest request, Action
470470
}
471471

472472
addBlocksQueue.submitTask(
473-
"add-index-block-[" + request.getBlock().name + "]-" + Arrays.toString(concreteIndices),
473+
"add-index-block-[" + request.block().name + "]-" + Arrays.toString(concreteIndices),
474474
new AddBlocksTask(request, listener),
475475
request.masterNodeTimeout()
476476
);
@@ -480,7 +480,7 @@ private class AddBlocksExecutor extends SimpleBatchedExecutor<AddBlocksTask, Map
480480

481481
@Override
482482
public Tuple<ClusterState, Map<Index, ClusterBlock>> executeTask(AddBlocksTask task, ClusterState clusterState) {
483-
return addIndexBlock(task.request.indices(), clusterState, task.request.getBlock());
483+
return addIndexBlock(task.request.indices(), clusterState, task.request.block());
484484
}
485485

486486
@Override
@@ -497,7 +497,7 @@ public void taskSucceeded(AddBlocksTask task, Map<Index, ClusterBlock> blockedIn
497497
.delegateFailure(
498498
(delegate2, verifyResults) -> finalizeBlocksQueue.submitTask(
499499
"finalize-index-block-["
500-
+ task.request.getBlock().name
500+
+ task.request.block().name
501501
+ "]-["
502502
+ blockedIndices.keySet().stream().map(Index::getName).collect(Collectors.joining(", "))
503503
+ "]",
@@ -529,7 +529,7 @@ public Tuple<ClusterState, List<AddBlockResult>> executeTask(FinalizeBlocksTask
529529
clusterState,
530530
task.blockedIndices,
531531
task.verifyResults,
532-
task.request.getBlock()
532+
task.request.block()
533533
);
534534
assert finalizeResult.v2().size() == task.verifyResults.size();
535535
return finalizeResult;
@@ -797,9 +797,7 @@ private void sendVerifyShardBlockRequest(
797797
block,
798798
parentTaskId
799799
);
800-
if (request.ackTimeout() != null) {
801-
shardRequest.timeout(request.ackTimeout());
802-
}
800+
shardRequest.timeout(request.ackTimeout());
803801
client.executeLocally(TransportVerifyShardIndexBlockAction.TYPE, shardRequest, listener);
804802
}
805803
}

0 commit comments

Comments
 (0)