Skip to content

Commit a3af273

Browse files
committed
CCR: mention how to enable soft deletes in error message when not enabled
1 parent ab84a97 commit a3af273

File tree

4 files changed

+17
-6
lines changed

4 files changed

+17
-6
lines changed

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,9 +124,11 @@ private void createFollowerIndex(
124124
listener.onFailure(new IllegalArgumentException("leader index [" + request.getLeaderIndex() + "] does not exist"));
125125
return;
126126
}
127-
if (leaderIndexMetaData.getSettings().getAsBoolean(IndexSettings.INDEX_SOFT_DELETES_SETTING.getKey(), false) == false) {
127+
if (IndexSettings.INDEX_SOFT_DELETES_SETTING.get(leaderIndexMetaData.getSettings()) == false) {
128128
listener.onFailure(
129-
new IllegalArgumentException("leader index [" + request.getLeaderIndex() + "] does not have soft deletes enabled"));
129+
new IllegalArgumentException("leader index [" + request.getLeaderIndex() + "] does not have soft deletes enabled. " +
130+
"soft deletes must be enabled when the index is created by setting " + IndexSettings.INDEX_SOFT_DELETES_SETTING.getKey()
131+
+ " to true"));
130132
return;
131133
}
132134

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -211,9 +211,10 @@ static void validate(
211211
}
212212
}
213213

214-
if (leaderIndex.getSettings().getAsBoolean(IndexSettings.INDEX_SOFT_DELETES_SETTING.getKey(), false) == false) {
214+
if (IndexSettings.INDEX_SOFT_DELETES_SETTING.get(leaderIndex.getSettings()) == false) {
215215
throw new IllegalArgumentException("leader index [" + leaderIndex.getIndex().getName() +
216-
"] does not have soft deletes enabled");
216+
"] does not have soft deletes enabled. soft deletes must be enabled when the index is created by setting "
217+
+ IndexSettings.INDEX_SOFT_DELETES_SETTING.getKey() + " to true");
217218
}
218219
if (followIndex.getSettings().getAsBoolean(IndexSettings.INDEX_SOFT_DELETES_SETTING.getKey(), false) == false) {
219220
throw new IllegalArgumentException("follower index [" + request.getFollowerIndex() + "] does not have soft deletes enabled");

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,10 @@
2121
import static java.util.Collections.singletonMap;
2222
import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder;
2323
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked;
24+
import static org.hamcrest.Matchers.contains;
25+
import static org.hamcrest.Matchers.containsString;
2426
import static org.hamcrest.Matchers.equalTo;
27+
import static org.hamcrest.Matchers.stringContainsInOrder;
2528

2629
public class LocalIndexFollowingIT extends CcrSingleNodeTestCase {
2730

@@ -79,7 +82,9 @@ public void testDoNotCreateFollowerIfLeaderDoesNotHaveSoftDeletes() throws Excep
7982
putFollowRequest.setFollowRequest(followRequest);
8083
IllegalArgumentException error = expectThrows(IllegalArgumentException.class,
8184
() -> client().execute(PutFollowAction.INSTANCE, putFollowRequest).actionGet());
82-
assertThat(error.getMessage(), equalTo("leader index [leader-index] does not have soft deletes enabled"));
85+
assertThat(error.getMessage(), equalTo("leader index [leader-index] does not have soft deletes enabled. " +
86+
"soft deletes must be enabled when the index is created by setting " + IndexSettings.INDEX_SOFT_DELETES_SETTING.getKey()
87+
+ " to true"));
8388
assertThat(client().admin().indices().prepareExists("follower-index").get().isExists(), equalTo(false));
8489
}
8590

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030

3131
import static java.util.Collections.singletonMap;
3232
import static org.elasticsearch.xpack.ccr.action.TransportResumeFollowAction.validate;
33+
import static org.hamcrest.Matchers.containsString;
3334
import static org.hamcrest.Matchers.equalTo;
3435
import static org.hamcrest.Matchers.is;
3536

@@ -76,7 +77,9 @@ public void testValidation() throws IOException {
7677
IndexMetaData leaderIMD = createIMD("index1", 5, Settings.EMPTY, null);
7778
IndexMetaData followIMD = createIMD("index2", 5, Settings.EMPTY, customMetaData);
7879
Exception e = expectThrows(IllegalArgumentException.class, () -> validate(request, leaderIMD, followIMD, UUIDs, null));
79-
assertThat(e.getMessage(), equalTo("leader index [index1] does not have soft deletes enabled"));
80+
assertThat(e.getMessage(), equalTo("leader index [index1] does not have soft deletes enabled. " +
81+
"soft deletes must be enabled when the index is created by setting " + IndexSettings.INDEX_SOFT_DELETES_SETTING.getKey()
82+
+ " to true"));
8083
}
8184
{
8285
// should fail because the follower index does not have soft deletes enabled

0 commit comments

Comments
 (0)