Skip to content

Commit 9c8e0b6

Browse files
committed
Delete doesn't need reloading 🤦 removing it
1 parent 47f8c6e commit 9c8e0b6

File tree

8 files changed

+22
-101
lines changed

8 files changed

+22
-101
lines changed

rest-api-spec/src/main/resources/rest-api-spec/api/synonyms.delete_synonym_rule.json

-6
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,6 @@
3333
}
3434
}
3535
]
36-
},
37-
"params": {
38-
"refresh": {
39-
"type": "boolean",
40-
"description": "Refresh search analyzers to update synonyms"
41-
}
4236
}
4337
}
4438
}

rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/synonyms/70_synonym_rule_delete.yml

-21
Original file line numberDiff line numberDiff line change
@@ -44,27 +44,6 @@ setup:
4444
- synonyms: "test => check"
4545
id: "test-id-3"
4646

47-
---
48-
"Refresh can be specified":
49-
50-
- requires:
51-
test_runner_features: [ capabilities ]
52-
capabilities:
53-
- method: PUT
54-
path: /_synonyms/{rule_id}
55-
capabilities: [ synonyms_refresh_param ]
56-
reason: "synonyms refresh param capability needed"
57-
58-
- do:
59-
synonyms.delete_synonym_rule:
60-
set_id: test-synonyms
61-
rule_id: test-id-2
62-
refresh: false
63-
64-
- match: { result: "deleted" }
65-
# Reload analyzers info is not included
66-
- not_exists: reload_analyzers_details
67-
6847
---
6948
"Delete synonym rule - missing synonym set":
7049
- do:

server/src/internalClusterTest/java/org/elasticsearch/synonyms/SynonymsManagementAPIServiceIT.java

-35
Original file line numberDiff line numberDiff line change
@@ -366,25 +366,6 @@ public void onFailure(Exception e) {
366366

367367
updateLatch.await(5, TimeUnit.SECONDS);
368368

369-
// Delete a rule fails
370-
CountDownLatch deleteLatch = new CountDownLatch(1);
371-
synonymsManagementAPIService.deleteSynonymRule(synonymSetId, synonymRuleId, true, new ActionListener<>() {
372-
@Override
373-
public void onResponse(SynonymsManagementAPIService.SynonymsReloadResult synonymsReloadResult) {
374-
fail("Shouldn't have been able to delete a synonym rule with refresh in synonyms index health");
375-
}
376-
377-
@Override
378-
public void onFailure(Exception e) {
379-
// Expected
380-
assertTrue(e instanceof IndexCreationException);
381-
assertTrue(e.getMessage().contains("synonyms index [.synonyms] is not searchable"));
382-
updateLatch.countDown();
383-
}
384-
});
385-
386-
deleteLatch.await(5, TimeUnit.SECONDS);
387-
388369
// But, we can still create a synonyms set without refresh
389370
CountDownLatch putNoRefreshLatch = new CountDownLatch(1);
390371
synonymsManagementAPIService.putSynonymsSet(synonymSetId, randomSynonymsSet(1, 1), false, new ActionListener<>() {
@@ -418,21 +399,5 @@ public void onFailure(Exception e) {
418399
});
419400

420401
putRuleNoRefreshLatch.await(5, TimeUnit.SECONDS);
421-
422-
// Same for delete
423-
CountDownLatch deleteNoRefreshLatch = new CountDownLatch(1);
424-
synonymsManagementAPIService.deleteSynonymRule(synonymSetId, synonymRuleId, false, new ActionListener<>() {
425-
@Override
426-
public void onResponse(SynonymsManagementAPIService.SynonymsReloadResult synonymsReloadResult) {
427-
deleteNoRefreshLatch.countDown();
428-
}
429-
430-
@Override
431-
public void onFailure(Exception e) {
432-
fail(e);
433-
}
434-
});
435-
436-
deleteNoRefreshLatch.await(5, TimeUnit.SECONDS);
437402
}
438403
}

server/src/main/java/org/elasticsearch/action/synonyms/DeleteSynonymRuleAction.java

+2-16
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99

1010
package org.elasticsearch.action.synonyms;
1111

12-
import org.elasticsearch.TransportVersions;
1312
import org.elasticsearch.action.ActionRequest;
1413
import org.elasticsearch.action.ActionRequestValidationException;
1514
import org.elasticsearch.action.ActionType;
@@ -32,24 +31,18 @@ public DeleteSynonymRuleAction() {
3231

3332
public static class Request extends ActionRequest {
3433
private final String synonymsSetId;
34+
3535
private final String synonymRuleId;
36-
private final boolean refresh;
3736

3837
public Request(StreamInput in) throws IOException {
3938
super(in);
4039
this.synonymsSetId = in.readString();
4140
this.synonymRuleId = in.readString();
42-
if (in.getTransportVersion().onOrAfter(TransportVersions.SYNONYMS_REFRESH_PARAM)) {
43-
this.refresh = in.readBoolean();
44-
} else {
45-
this.refresh = true;
46-
}
4741
}
4842

49-
public Request(String synonymsSetId, String synonymRuleId, boolean refresh) {
43+
public Request(String synonymsSetId, String synonymRuleId) {
5044
this.synonymsSetId = synonymsSetId;
5145
this.synonymRuleId = synonymRuleId;
52-
this.refresh = refresh;
5346
}
5447

5548
@Override
@@ -70,9 +63,6 @@ public void writeTo(StreamOutput out) throws IOException {
7063
super.writeTo(out);
7164
out.writeString(synonymsSetId);
7265
out.writeString(synonymRuleId);
73-
if (out.getTransportVersion().onOrAfter(TransportVersions.SYNONYMS_REFRESH_PARAM)) {
74-
out.writeBoolean(refresh);
75-
}
7666
}
7767

7868
public String synonymsSetId() {
@@ -83,10 +73,6 @@ public String synonymRuleId() {
8373
return synonymRuleId;
8474
}
8575

86-
public boolean refresh() {
87-
return refresh;
88-
}
89-
9076
@Override
9177
public boolean equals(Object o) {
9278
if (this == o) return true;

server/src/main/java/org/elasticsearch/action/synonyms/TransportDeleteSynonymRuleAction.java

-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ protected void doExecute(Task task, DeleteSynonymRuleAction.Request request, Act
4141
synonymsManagementAPIService.deleteSynonymRule(
4242
request.synonymsSetId(),
4343
request.synonymRuleId(),
44-
request.refresh(),
4544
listener.map(SynonymUpdateResponse::new)
4645
);
4746
}

server/src/main/java/org/elasticsearch/rest/action/synonyms/RestDeleteSynonymRuleAction.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,7 @@ public List<Route> routes() {
4040
protected RestChannelConsumer prepareRequest(RestRequest restRequest, NodeClient client) throws IOException {
4141
DeleteSynonymRuleAction.Request request = new DeleteSynonymRuleAction.Request(
4242
restRequest.param("synonymsSet"),
43-
restRequest.param("synonymRuleId"),
44-
restRequest.paramAsBoolean("refresh", true)
43+
restRequest.param("synonymRuleId")
4544
);
4645
return channel -> client.execute(DeleteSynonymRuleAction.INSTANCE, request, new RestToXContentListener<>(channel));
4746
}

server/src/main/java/org/elasticsearch/synonyms/SynonymsManagementAPIService.java

+18-19
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,7 @@ public void putSynonymsSet(
354354
? UpdateSynonymsResultStatus.CREATED
355355
: UpdateSynonymsResultStatus.UPDATED;
356356

357-
maybeReloadAnalyzers(synonymSetId, refresh, false, updateSynonymsResultStatus, bulkInsertResponseListener);
357+
checkIndexSearchableAndReloadAnalyzers(synonymSetId, refresh, false, updateSynonymsResultStatus, bulkInsertResponseListener);
358358
})
359359
);
360360
}));
@@ -424,7 +424,7 @@ private void indexSynonymRule(
424424
? UpdateSynonymsResultStatus.CREATED
425425
: UpdateSynonymsResultStatus.UPDATED;
426426

427-
maybeReloadAnalyzers(synonymsSetId, refresh, false, updateStatus, l2);
427+
checkIndexSearchableAndReloadAnalyzers(synonymsSetId, refresh, false, updateStatus, l2);
428428
}));
429429
}
430430

@@ -444,12 +444,7 @@ public void getSynonymRule(String synonymSetId, String synonymRuleId, ActionList
444444
);
445445
}
446446

447-
public void deleteSynonymRule(
448-
String synonymsSetId,
449-
String synonymRuleId,
450-
boolean refresh,
451-
ActionListener<SynonymsReloadResult> listener
452-
) {
447+
public void deleteSynonymRule(String synonymsSetId, String synonymRuleId, ActionListener<SynonymsReloadResult> listener) {
453448
client.prepareDelete(SYNONYMS_ALIAS_NAME, internalSynonymRuleId(synonymsSetId, synonymRuleId))
454449
.setRefreshPolicy(WriteRequest.RefreshPolicy.IMMEDIATE)
455450
.execute(new DelegatingIndexNotFoundActionListener<>(synonymsSetId, listener, (l, deleteResponse) -> {
@@ -468,7 +463,7 @@ public void deleteSynonymRule(
468463
return;
469464
}
470465

471-
maybeReloadAnalyzers(synonymsSetId, refresh, false, UpdateSynonymsResultStatus.DELETED, listener);
466+
reloadAnalyzers(synonymsSetId, false, UpdateSynonymsResultStatus.DELETED, listener);
472467
}));
473468
}
474469

@@ -525,8 +520,8 @@ private void deleteSynonymsSetObjects(String synonymSetId, ActionListener<BulkBy
525520

526521
public void deleteSynonymsSet(String synonymSetId, ActionListener<AcknowledgedResponse> listener) {
527522

528-
// Previews reloading the resource to understand its usage on indices
529-
maybeReloadAnalyzers(synonymSetId, true, true, null, listener.delegateFailure((reloadListener, reloadResult) -> {
523+
// Previews reloading the resource to understand its usage on indices. It's OK to reload as we're doing preview mode
524+
reloadAnalyzers(synonymSetId, true, null, listener.delegateFailure((reloadListener, reloadResult) -> {
530525
Map<String, ReloadAnalyzersResponse.ReloadDetails> reloadDetails = reloadResult.reloadAnalyzersResponse.getReloadDetails();
531526
if (reloadDetails.isEmpty() == false) {
532527
Set<String> indices = reloadDetails.entrySet()
@@ -566,7 +561,7 @@ public void deleteSynonymsSet(String synonymSetId, ActionListener<AcknowledgedRe
566561
}));
567562
}
568563

569-
private <T> void maybeReloadAnalyzers(
564+
private <T> void checkIndexSearchableAndReloadAnalyzers(
570565
String synonymSetId,
571566
boolean refresh,
572567
boolean preview,
@@ -596,16 +591,20 @@ private <T> void maybeReloadAnalyzers(
596591
return;
597592
}
598593

599-
// auto-reload all reloadable analyzers (currently only those that use updateable synonym or keyword_marker filters)
600-
ReloadAnalyzersRequest reloadAnalyzersRequest = new ReloadAnalyzersRequest(synonymSetId, preview, "*");
601-
client.execute(
602-
TransportReloadAnalyzersAction.TYPE,
603-
reloadAnalyzersRequest,
604-
listener.safeMap(reloadResponse -> new SynonymsReloadResult(synonymsOperationResult, reloadResponse))
605-
);
594+
reloadAnalyzers(synonymSetId, preview, synonymsOperationResult, listener);
606595
}));
607596
}
608597

598+
private void reloadAnalyzers(String synonymSetId, boolean preview, UpdateSynonymsResultStatus synonymsOperationResult, ActionListener<SynonymsReloadResult> listener) {
599+
// auto-reload all reloadable analyzers (currently only those that use updateable synonym or keyword_marker filters)
600+
ReloadAnalyzersRequest reloadAnalyzersRequest = new ReloadAnalyzersRequest(synonymSetId, preview, "*");
601+
client.execute(
602+
TransportReloadAnalyzersAction.TYPE,
603+
reloadAnalyzersRequest,
604+
listener.safeMap(reloadResponse -> new SynonymsReloadResult(synonymsOperationResult, reloadResponse))
605+
);
606+
}
607+
609608
// Allows checking failures in tests
610609
void checkSynonymsIndexHealth(ActionListener<ClusterHealthResponse> listener) {
611610
ClusterHealthRequest healthRequest = new ClusterHealthRequest(

server/src/test/java/org/elasticsearch/action/synonyms/DeleteSynonymRuleActionRequestSerializingTests.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ protected Writeable.Reader<DeleteSynonymRuleAction.Request> instanceReader() {
2323

2424
@Override
2525
protected DeleteSynonymRuleAction.Request createTestInstance() {
26-
return new DeleteSynonymRuleAction.Request(randomIdentifier(), randomIdentifier(), randomBoolean());
26+
return new DeleteSynonymRuleAction.Request(randomIdentifier(), randomIdentifier());
2727
}
2828

2929
@Override

0 commit comments

Comments
 (0)