Skip to content

Commit

Permalink
Warmers: delete _all should not throw exception when no warmers are r…
Browse files Browse the repository at this point in the history
…egistered

Closes #8991
Closes #13058
  • Loading branch information
andrestc authored and javanna committed Aug 27, 2015
1 parent 33e0408 commit 793fcb6
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 3 deletions.
Expand Up @@ -92,6 +92,14 @@ public ClusterState execute(ClusterState currentState) {
MetaData.Builder mdBuilder = MetaData.builder(currentState.metaData());

boolean globalFoundAtLeastOne = false;
boolean deleteAll = false;
for (int i=0; i<request.names().length; i++){
if (request.names()[i].equals(MetaData.ALL)) {
deleteAll = true;
break;
}
}

for (String index : concreteIndices) {
IndexMetaData indexMetaData = currentState.metaData().index(index);
if (indexMetaData == null) {
Expand All @@ -103,7 +111,7 @@ public ClusterState execute(ClusterState currentState) {
for (IndexWarmersMetaData.Entry entry : warmers.entries()) {
boolean keepWarmer = true;
for (String warmer : request.names()) {
if (Regex.simpleMatch(warmer, entry.name()) || warmer.equals("_all")) {
if (Regex.simpleMatch(warmer, entry.name()) || warmer.equals(MetaData.ALL)) {
globalFoundAtLeastOne = true;
keepWarmer = false;
// don't add it...
Expand All @@ -123,7 +131,7 @@ public ClusterState execute(ClusterState currentState) {
}
}

if (!globalFoundAtLeastOne) {
if (globalFoundAtLeastOne == false && deleteAll == false) {
throw new IndexWarmerMissingException(request.names());
}

Expand All @@ -137,11 +145,13 @@ public ClusterState execute(ClusterState currentState) {
if (warmers != null) {
for (IndexWarmersMetaData.Entry entry : warmers.entries()) {
for (String warmer : request.names()) {
if (Regex.simpleMatch(warmer, entry.name()) || warmer.equals("_all")) {
if (Regex.simpleMatch(warmer, entry.name()) || warmer.equals(MetaData.ALL)) {
logger.info("[{}] delete warmer [{}]", index, entry.name());
}
}
}
} else if(deleteAll){
logger.debug("no warmers to delete on index [{}]", index);
}
}
}
Expand Down
Expand Up @@ -173,6 +173,18 @@ public void deleteNonExistentIndexWarmerTest() {
}
}

@Test // issue 8991
public void deleteAllIndexWarmerDoesNotThrowWhenNoWarmers() {
createIndex("test");
DeleteWarmerResponse deleteWarmerResponse = client().admin().indices().prepareDeleteWarmer()
.setIndices("test").setNames("_all").execute().actionGet();
assertThat(deleteWarmerResponse.isAcknowledged(), equalTo(true));

deleteWarmerResponse = client().admin().indices().prepareDeleteWarmer()
.setIndices("test").setNames("foo", "_all", "bar").execute().actionGet();
assertThat(deleteWarmerResponse.isAcknowledged(), equalTo(true));
}

@Test
public void deleteIndexWarmerTest() {
createIndex("test");
Expand Down

0 comments on commit 793fcb6

Please sign in to comment.