From 3a7f1f46491c06d9c9c950994bd1fe1e849233bc Mon Sep 17 00:00:00 2001 From: Tal Levy Date: Thu, 18 Oct 2018 11:51:18 -0700 Subject: [PATCH 01/12] remove old doc placeholder and migrate ilm docs to top-level --- .../en => docs/reference}/ilm/apis/delete-lifecycle.asciidoc | 0 {x-pack/docs/en => docs/reference}/ilm/apis/explain.asciidoc | 0 .../docs/en => docs/reference}/ilm/apis/get-lifecycle.asciidoc | 0 {x-pack/docs/en => docs/reference}/ilm/apis/get-status.asciidoc | 0 {x-pack/docs/en => docs/reference}/ilm/apis/ilm-api.asciidoc | 0 .../docs/en => docs/reference}/ilm/apis/move-to-step.asciidoc | 0 .../docs/en => docs/reference}/ilm/apis/put-lifecycle.asciidoc | 0 .../docs/en => docs/reference}/ilm/apis/remove-policy.asciidoc | 0 .../docs/en => docs/reference}/ilm/apis/retry-policy.asciidoc | 0 {x-pack/docs/en => docs/reference}/ilm/apis/set-policy.asciidoc | 0 {x-pack/docs/en => docs/reference}/ilm/apis/start.asciidoc | 0 {x-pack/docs/en => docs/reference}/ilm/apis/stop.asciidoc | 0 .../reference}/ilm/get-index-lifecycle-information.asciidoc | 0 .../docs/en => docs/reference}/ilm/getting-started-ilm.asciidoc | 0 {x-pack/docs/en => docs/reference}/ilm/index.asciidoc | 2 +- .../docs/en => docs/reference}/ilm/pause-resume-ilm.asciidoc | 0 .../en => docs/reference}/ilm/set-up-lifecycle-policy.asciidoc | 0 .../en => docs/reference}/ilm/update-lifecycle-policy.asciidoc | 0 .../en => docs/reference}/ilm/using-policies-rollover.asciidoc | 0 docs/reference/index.asciidoc | 2 +- x-pack/docs/en/rest-api/index-lifecycle/delete-policy.asciidoc | 0 x-pack/docs/en/rest-api/index-lifecycle/get-policy.asciidoc | 0 x-pack/docs/en/rest-api/index-lifecycle/put-policy.asciidoc | 0 23 files changed, 2 insertions(+), 2 deletions(-) rename {x-pack/docs/en => docs/reference}/ilm/apis/delete-lifecycle.asciidoc (100%) rename {x-pack/docs/en => docs/reference}/ilm/apis/explain.asciidoc (100%) rename {x-pack/docs/en => docs/reference}/ilm/apis/get-lifecycle.asciidoc (100%) rename {x-pack/docs/en => docs/reference}/ilm/apis/get-status.asciidoc (100%) rename {x-pack/docs/en => docs/reference}/ilm/apis/ilm-api.asciidoc (100%) rename {x-pack/docs/en => docs/reference}/ilm/apis/move-to-step.asciidoc (100%) rename {x-pack/docs/en => docs/reference}/ilm/apis/put-lifecycle.asciidoc (100%) rename {x-pack/docs/en => docs/reference}/ilm/apis/remove-policy.asciidoc (100%) rename {x-pack/docs/en => docs/reference}/ilm/apis/retry-policy.asciidoc (100%) rename {x-pack/docs/en => docs/reference}/ilm/apis/set-policy.asciidoc (100%) rename {x-pack/docs/en => docs/reference}/ilm/apis/start.asciidoc (100%) rename {x-pack/docs/en => docs/reference}/ilm/apis/stop.asciidoc (100%) rename {x-pack/docs/en => docs/reference}/ilm/get-index-lifecycle-information.asciidoc (100%) rename {x-pack/docs/en => docs/reference}/ilm/getting-started-ilm.asciidoc (100%) rename {x-pack/docs/en => docs/reference}/ilm/index.asciidoc (98%) rename {x-pack/docs/en => docs/reference}/ilm/pause-resume-ilm.asciidoc (100%) rename {x-pack/docs/en => docs/reference}/ilm/set-up-lifecycle-policy.asciidoc (100%) rename {x-pack/docs/en => docs/reference}/ilm/update-lifecycle-policy.asciidoc (100%) rename {x-pack/docs/en => docs/reference}/ilm/using-policies-rollover.asciidoc (100%) delete mode 100644 x-pack/docs/en/rest-api/index-lifecycle/delete-policy.asciidoc delete mode 100644 x-pack/docs/en/rest-api/index-lifecycle/get-policy.asciidoc delete mode 100644 x-pack/docs/en/rest-api/index-lifecycle/put-policy.asciidoc diff --git a/x-pack/docs/en/ilm/apis/delete-lifecycle.asciidoc b/docs/reference/ilm/apis/delete-lifecycle.asciidoc similarity index 100% rename from x-pack/docs/en/ilm/apis/delete-lifecycle.asciidoc rename to docs/reference/ilm/apis/delete-lifecycle.asciidoc diff --git a/x-pack/docs/en/ilm/apis/explain.asciidoc b/docs/reference/ilm/apis/explain.asciidoc similarity index 100% rename from x-pack/docs/en/ilm/apis/explain.asciidoc rename to docs/reference/ilm/apis/explain.asciidoc diff --git a/x-pack/docs/en/ilm/apis/get-lifecycle.asciidoc b/docs/reference/ilm/apis/get-lifecycle.asciidoc similarity index 100% rename from x-pack/docs/en/ilm/apis/get-lifecycle.asciidoc rename to docs/reference/ilm/apis/get-lifecycle.asciidoc diff --git a/x-pack/docs/en/ilm/apis/get-status.asciidoc b/docs/reference/ilm/apis/get-status.asciidoc similarity index 100% rename from x-pack/docs/en/ilm/apis/get-status.asciidoc rename to docs/reference/ilm/apis/get-status.asciidoc diff --git a/x-pack/docs/en/ilm/apis/ilm-api.asciidoc b/docs/reference/ilm/apis/ilm-api.asciidoc similarity index 100% rename from x-pack/docs/en/ilm/apis/ilm-api.asciidoc rename to docs/reference/ilm/apis/ilm-api.asciidoc diff --git a/x-pack/docs/en/ilm/apis/move-to-step.asciidoc b/docs/reference/ilm/apis/move-to-step.asciidoc similarity index 100% rename from x-pack/docs/en/ilm/apis/move-to-step.asciidoc rename to docs/reference/ilm/apis/move-to-step.asciidoc diff --git a/x-pack/docs/en/ilm/apis/put-lifecycle.asciidoc b/docs/reference/ilm/apis/put-lifecycle.asciidoc similarity index 100% rename from x-pack/docs/en/ilm/apis/put-lifecycle.asciidoc rename to docs/reference/ilm/apis/put-lifecycle.asciidoc diff --git a/x-pack/docs/en/ilm/apis/remove-policy.asciidoc b/docs/reference/ilm/apis/remove-policy.asciidoc similarity index 100% rename from x-pack/docs/en/ilm/apis/remove-policy.asciidoc rename to docs/reference/ilm/apis/remove-policy.asciidoc diff --git a/x-pack/docs/en/ilm/apis/retry-policy.asciidoc b/docs/reference/ilm/apis/retry-policy.asciidoc similarity index 100% rename from x-pack/docs/en/ilm/apis/retry-policy.asciidoc rename to docs/reference/ilm/apis/retry-policy.asciidoc diff --git a/x-pack/docs/en/ilm/apis/set-policy.asciidoc b/docs/reference/ilm/apis/set-policy.asciidoc similarity index 100% rename from x-pack/docs/en/ilm/apis/set-policy.asciidoc rename to docs/reference/ilm/apis/set-policy.asciidoc diff --git a/x-pack/docs/en/ilm/apis/start.asciidoc b/docs/reference/ilm/apis/start.asciidoc similarity index 100% rename from x-pack/docs/en/ilm/apis/start.asciidoc rename to docs/reference/ilm/apis/start.asciidoc diff --git a/x-pack/docs/en/ilm/apis/stop.asciidoc b/docs/reference/ilm/apis/stop.asciidoc similarity index 100% rename from x-pack/docs/en/ilm/apis/stop.asciidoc rename to docs/reference/ilm/apis/stop.asciidoc diff --git a/x-pack/docs/en/ilm/get-index-lifecycle-information.asciidoc b/docs/reference/ilm/get-index-lifecycle-information.asciidoc similarity index 100% rename from x-pack/docs/en/ilm/get-index-lifecycle-information.asciidoc rename to docs/reference/ilm/get-index-lifecycle-information.asciidoc diff --git a/x-pack/docs/en/ilm/getting-started-ilm.asciidoc b/docs/reference/ilm/getting-started-ilm.asciidoc similarity index 100% rename from x-pack/docs/en/ilm/getting-started-ilm.asciidoc rename to docs/reference/ilm/getting-started-ilm.asciidoc diff --git a/x-pack/docs/en/ilm/index.asciidoc b/docs/reference/ilm/index.asciidoc similarity index 98% rename from x-pack/docs/en/ilm/index.asciidoc rename to docs/reference/ilm/index.asciidoc index a0815d97c3a9a..97530e6a293a4 100644 --- a/x-pack/docs/en/ilm/index.asciidoc +++ b/docs/reference/ilm/index.asciidoc @@ -66,4 +66,4 @@ include::get-index-lifecycle-information.asciidoc[] include::pause-resume-ilm.asciidoc[] :edit_url: https://github.com/elastic/elasticsearch/edit/{branch}/x-pack/docs/en/ilm/apis/ilm-api.asciidoc -include::{xes-repo-dir}/ilm/apis/ilm-api.asciidoc[] +include::{es-repo-dir}/ilm/apis/ilm-api.asciidoc[] diff --git a/x-pack/docs/en/ilm/pause-resume-ilm.asciidoc b/docs/reference/ilm/pause-resume-ilm.asciidoc similarity index 100% rename from x-pack/docs/en/ilm/pause-resume-ilm.asciidoc rename to docs/reference/ilm/pause-resume-ilm.asciidoc diff --git a/x-pack/docs/en/ilm/set-up-lifecycle-policy.asciidoc b/docs/reference/ilm/set-up-lifecycle-policy.asciidoc similarity index 100% rename from x-pack/docs/en/ilm/set-up-lifecycle-policy.asciidoc rename to docs/reference/ilm/set-up-lifecycle-policy.asciidoc diff --git a/x-pack/docs/en/ilm/update-lifecycle-policy.asciidoc b/docs/reference/ilm/update-lifecycle-policy.asciidoc similarity index 100% rename from x-pack/docs/en/ilm/update-lifecycle-policy.asciidoc rename to docs/reference/ilm/update-lifecycle-policy.asciidoc diff --git a/x-pack/docs/en/ilm/using-policies-rollover.asciidoc b/docs/reference/ilm/using-policies-rollover.asciidoc similarity index 100% rename from x-pack/docs/en/ilm/using-policies-rollover.asciidoc rename to docs/reference/ilm/using-policies-rollover.asciidoc diff --git a/docs/reference/index.asciidoc b/docs/reference/index.asciidoc index cfaf9d7e09cc1..48cb7700a52ea 100644 --- a/docs/reference/index.asciidoc +++ b/docs/reference/index.asciidoc @@ -55,7 +55,7 @@ include::index-modules.asciidoc[] include::ingest.asciidoc[] -include::{xes-repo-dir}/ilm/index.asciidoc[] +include::ilm/index.asciidoc[] include::sql/index.asciidoc[] diff --git a/x-pack/docs/en/rest-api/index-lifecycle/delete-policy.asciidoc b/x-pack/docs/en/rest-api/index-lifecycle/delete-policy.asciidoc deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/x-pack/docs/en/rest-api/index-lifecycle/get-policy.asciidoc b/x-pack/docs/en/rest-api/index-lifecycle/get-policy.asciidoc deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/x-pack/docs/en/rest-api/index-lifecycle/put-policy.asciidoc b/x-pack/docs/en/rest-api/index-lifecycle/put-policy.asciidoc deleted file mode 100644 index e69de29bb2d1d..0000000000000 From a83a464b787b9d977b2ad82e412b337c268fb743 Mon Sep 17 00:00:00 2001 From: Tal Levy Date: Thu, 18 Oct 2018 12:31:17 -0700 Subject: [PATCH 02/12] add xpack-basic role --- docs/reference/ilm/get-index-lifecycle-information.asciidoc | 1 + docs/reference/ilm/getting-started-ilm.asciidoc | 1 + docs/reference/ilm/index.asciidoc | 2 ++ docs/reference/ilm/pause-resume-ilm.asciidoc | 2 ++ docs/reference/ilm/set-up-lifecycle-policy.asciidoc | 2 ++ docs/reference/ilm/update-lifecycle-policy.asciidoc | 2 ++ docs/reference/ilm/using-policies-rollover.asciidoc | 2 ++ 7 files changed, 12 insertions(+) diff --git a/docs/reference/ilm/get-index-lifecycle-information.asciidoc b/docs/reference/ilm/get-index-lifecycle-information.asciidoc index c79a4ed278840..3d5dc8a172010 100644 --- a/docs/reference/ilm/get-index-lifecycle-information.asciidoc +++ b/docs/reference/ilm/get-index-lifecycle-information.asciidoc @@ -1,3 +1,4 @@ +[role="xpack"] [[get-index-lifecycle-information]] == Get index lifecycle information diff --git a/docs/reference/ilm/getting-started-ilm.asciidoc b/docs/reference/ilm/getting-started-ilm.asciidoc index 7f29740fdd6df..ad3596e92a1ad 100644 --- a/docs/reference/ilm/getting-started-ilm.asciidoc +++ b/docs/reference/ilm/getting-started-ilm.asciidoc @@ -1,3 +1,4 @@ +[role="xpack"] [[getting-started-index-lifecycle-management]] == Getting started with {ilm} diff --git a/docs/reference/ilm/index.asciidoc b/docs/reference/ilm/index.asciidoc index 97530e6a293a4..dd252f1e84000 100644 --- a/docs/reference/ilm/index.asciidoc +++ b/docs/reference/ilm/index.asciidoc @@ -1,3 +1,5 @@ +[role="xpack"] +[testenv="basic"] [[index-lifecycle-management]] = Managing Indices diff --git a/docs/reference/ilm/pause-resume-ilm.asciidoc b/docs/reference/ilm/pause-resume-ilm.asciidoc index 37ba62e02ccbe..6a6555bf31074 100644 --- a/docs/reference/ilm/pause-resume-ilm.asciidoc +++ b/docs/reference/ilm/pause-resume-ilm.asciidoc @@ -1,3 +1,5 @@ +[role="xpack"] +[testenv="basic"] [[pause-resume-ilm]] == Pause and resume {ilm} ILM can be skipped on a per-index basis diff --git a/docs/reference/ilm/set-up-lifecycle-policy.asciidoc b/docs/reference/ilm/set-up-lifecycle-policy.asciidoc index 37157bc0a075d..9a2815213a57e 100644 --- a/docs/reference/ilm/set-up-lifecycle-policy.asciidoc +++ b/docs/reference/ilm/set-up-lifecycle-policy.asciidoc @@ -1,3 +1,5 @@ +[role="xpack"] +[testenv="basic"] [[set-up-lifecycle-policy]] == Set up {ilm} policy diff --git a/docs/reference/ilm/update-lifecycle-policy.asciidoc b/docs/reference/ilm/update-lifecycle-policy.asciidoc index 38aa595bef955..41dcd0daa05fc 100644 --- a/docs/reference/ilm/update-lifecycle-policy.asciidoc +++ b/docs/reference/ilm/update-lifecycle-policy.asciidoc @@ -1,3 +1,5 @@ +[role="xpack"] +[testenv="basic"] [[update-lifecycle-policy]] == Update lifecycle policy diff --git a/docs/reference/ilm/using-policies-rollover.asciidoc b/docs/reference/ilm/using-policies-rollover.asciidoc index c8c2e953ddb87..fcb50a3c49593 100644 --- a/docs/reference/ilm/using-policies-rollover.asciidoc +++ b/docs/reference/ilm/using-policies-rollover.asciidoc @@ -1,3 +1,5 @@ +[role="xpack"] +[testenv="basic"] [[using-policies-rollover]] == Using policies to manage index rollover From 5f3541f07016ef2441972a44ef0daaea3f8faa0f Mon Sep 17 00:00:00 2001 From: Tal Levy Date: Thu, 18 Oct 2018 14:55:19 -0700 Subject: [PATCH 03/12] migrate cleanup of ILM to ESRestTestCase related #34530. --- .../test/rest/ESRestTestCase.java | 57 ++++++++++++++++- .../AbstractFullClusterRestartTestCase.java | 5 ++ .../ILMRestTestStateCleaner.java | 63 ------------------- .../xpack/test/rest/XPackRestIT.java | 22 ------- .../upgrades/AbstractUpgradeTestCase.java | 5 ++ .../upgrades/AbstractUpgradeTestCase.java | 5 ++ .../UpgradeClusterClientYamlTestSuiteIT.java | 5 ++ 7 files changed, 76 insertions(+), 86 deletions(-) delete mode 100644 x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/indexlifecycle/ILMRestTestStateCleaner.java diff --git a/test/framework/src/main/java/org/elasticsearch/test/rest/ESRestTestCase.java b/test/framework/src/main/java/org/elasticsearch/test/rest/ESRestTestCase.java index 32d9e0e22bb69..fed165182c6ee 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/rest/ESRestTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/test/rest/ESRestTestCase.java @@ -210,7 +210,8 @@ protected static RestClient adminClient() { /** * Returns whether to preserve the state of the cluster upon completion of this test. Defaults to false. If true, overrides the value of * {@link #preserveIndicesUponCompletion()}, {@link #preserveTemplatesUponCompletion()}, {@link #preserveReposUponCompletion()}, - * {@link #preserveSnapshotsUponCompletion()}, and {@link #preserveRollupJobsUponCompletion()}. + * {@link #preserveSnapshotsUponCompletion()},{@link #preserveRollupJobsUponCompletion()}, + * and {@link #preserveILMPoliciesUponCompletion()}. * * @return true if the state of the cluster should be preserved */ @@ -275,6 +276,15 @@ protected boolean preserveRollupJobsUponCompletion() { return false; } + /** + * Returns whether to preserve ILM Policies of this test. Defaults to not + * preserviing them. Only runs at all if xpack is installed on the cluster + * being tested. + */ + protected boolean preserveILMPoliciesUponCompletion() { + return false; + } + private void wipeCluster() throws Exception { boolean hasXPack = hasXPack(); @@ -329,6 +339,11 @@ private void wipeCluster() throws Exception { wipeRollupJobs(); waitForPendingRollupTasks(); } + + if (hasXPack && false == preserveILMPoliciesUponCompletion()) { + removePoliciesFromAllIndexes(); + deleteAllPolicies(); + } } /** @@ -441,6 +456,46 @@ private void waitForPendingRollupTasks() throws Exception { }); } + private static void removePoliciesFromAllIndexes() throws IOException { + Response response = adminClient().performRequest(new Request("GET", "/_all")); + Map indexes = ESRestTestCase.entityAsMap(response); + + if (indexes == null || indexes.isEmpty()) { + return; + } + + for (String indexName : indexes.keySet()) { + try { + adminClient().performRequest(new Request("DELETE", indexName + "/_ilm/")); + } catch (Exception e) { + // ok + } + } + } + + private static void deleteAllPolicies() throws Exception { + Map policies; + + try { + Response response = adminClient().performRequest(new Request("GET", "/_ilm")); + policies = ESRestTestCase.entityAsMap(response); + } catch (Exception e) { + return; + } + + if (policies == null || policies.isEmpty()) { + return; + } + + for (String policyName : policies.keySet()) { + try { + adminClient().performRequest(new Request("DELETE", "/_ilm/" + policyName)); + } catch (Exception e) { + // ok + } + } + } + /** * Logs a message if there are still running tasks. The reasoning is that any tasks still running are state the is trying to bleed into * other tests. diff --git a/test/framework/src/main/java/org/elasticsearch/upgrades/AbstractFullClusterRestartTestCase.java b/test/framework/src/main/java/org/elasticsearch/upgrades/AbstractFullClusterRestartTestCase.java index 861d574b3465e..84f9b4dfd149d 100644 --- a/test/framework/src/main/java/org/elasticsearch/upgrades/AbstractFullClusterRestartTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/upgrades/AbstractFullClusterRestartTestCase.java @@ -66,4 +66,9 @@ protected boolean preserveClusterSettings() { protected boolean preserveRollupJobsUponCompletion() { return true; } + + @Override + protected boolean preserveILMPoliciesUponCompletion() { + return true; + } } diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/indexlifecycle/ILMRestTestStateCleaner.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/indexlifecycle/ILMRestTestStateCleaner.java deleted file mode 100644 index 8ff1360b20f84..0000000000000 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/indexlifecycle/ILMRestTestStateCleaner.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ -package org.elasticsearch.xpack.core.indexlifecycle; - -import org.elasticsearch.client.Request; -import org.elasticsearch.client.Response; -import org.elasticsearch.client.RestClient; -import org.elasticsearch.test.rest.ESRestTestCase; - -import java.io.IOException; -import java.util.Map; - -public class ILMRestTestStateCleaner { - - public static void clearILMMetadata(RestClient adminClient) throws Exception { - removePoliciesFromAllIndexes(adminClient); - deleteAllPolicies(adminClient); - // indices will be deleted by the ESRestTestCase class - } - - private static void removePoliciesFromAllIndexes(RestClient adminClient) throws IOException { - Response response = adminClient.performRequest(new Request("GET", "/_all")); - Map indexes = ESRestTestCase.entityAsMap(response); - - if (indexes == null || indexes.isEmpty()) { - return; - } - - for (String indexName : indexes.keySet()) { - try { - adminClient.performRequest(new Request("DELETE", indexName + "/_ilm/")); - } catch (Exception e) { - // ok - } - } - } - - private static void deleteAllPolicies(RestClient adminClient) throws Exception { - Map policies; - - try { - Response response = adminClient.performRequest(new Request("GET", "/_ilm")); - policies = ESRestTestCase.entityAsMap(response); - } catch (Exception e) { - return; - } - - if (policies == null || policies.isEmpty()) { - return; - } - - for (String policyName : policies.keySet()) { - try { - adminClient.performRequest(new Request("DELETE", "/_ilm/" + policyName)); - } catch (Exception e) { - // ok - } - } - } -} diff --git a/x-pack/plugin/src/test/java/org/elasticsearch/xpack/test/rest/XPackRestIT.java b/x-pack/plugin/src/test/java/org/elasticsearch/xpack/test/rest/XPackRestIT.java index 5873ba104af7b..df063ce7ca21f 100644 --- a/x-pack/plugin/src/test/java/org/elasticsearch/xpack/test/rest/XPackRestIT.java +++ b/x-pack/plugin/src/test/java/org/elasticsearch/xpack/test/rest/XPackRestIT.java @@ -21,7 +21,6 @@ import org.elasticsearch.test.rest.yaml.ClientYamlTestResponse; import org.elasticsearch.test.rest.yaml.ESClientYamlSuiteTestCase; import org.elasticsearch.test.rest.yaml.ObjectPath; -import org.elasticsearch.xpack.core.indexlifecycle.ILMRestTestStateCleaner; import org.elasticsearch.xpack.core.ml.MlMetaIndex; import org.elasticsearch.xpack.core.ml.integration.MlRestTestStateCleaner; import org.elasticsearch.xpack.core.ml.job.persistence.AnomalyDetectorsIndex; @@ -245,7 +244,6 @@ private void disableMonitoring() throws Exception { public void cleanup() throws Exception { disableMonitoring(); clearMlState(); - clearILMState(); if (isWaitForPendingTasks()) { // This waits for pending tasks to complete, so must go last (otherwise // it could be waiting for pending tasks while monitoring is still running). @@ -265,20 +263,6 @@ private void clearMlState() throws Exception { } } - private void clearILMState() throws Exception { - if (isILMTest()) { - ILMRestTestStateCleaner.clearILMMetadata(adminClient()); - } - } - - /** - - private void clearILMState() throws Exception { - if (isILMTest()) { - ILMRestTestStateCleaner.clearILMMetadata(adminClient()); - } - } - /** * Executes an API call using the admin context, waiting for it to succeed. */ @@ -339,12 +323,6 @@ protected boolean isMachineLearningTest() { return testName != null && (testName.contains("=ml/") || testName.contains("=ml\\")); } - protected boolean isILMTest() { - String testName = getTestName(); - return testName != null && (testName.contains("=ilm/") || testName.contains("=ilm\\")) - || (testName.contains("/ilm/") || testName.contains("\\ilm\\")); - } - /** * Should each test wait for pending tasks to finish after execution? * @return Wait for pending tasks diff --git a/x-pack/qa/rolling-upgrade-basic/src/test/java/org/elasticsearch/upgrades/AbstractUpgradeTestCase.java b/x-pack/qa/rolling-upgrade-basic/src/test/java/org/elasticsearch/upgrades/AbstractUpgradeTestCase.java index b9f8481d0bb97..e013ffd017574 100644 --- a/x-pack/qa/rolling-upgrade-basic/src/test/java/org/elasticsearch/upgrades/AbstractUpgradeTestCase.java +++ b/x-pack/qa/rolling-upgrade-basic/src/test/java/org/elasticsearch/upgrades/AbstractUpgradeTestCase.java @@ -29,6 +29,11 @@ protected boolean preserveRollupJobsUponCompletion() { return true; } + @Override + protected boolean preserveILMPoliciesUponCompletion() { + return true; + } + enum CLUSTER_TYPE { OLD, MIXED, diff --git a/x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/AbstractUpgradeTestCase.java b/x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/AbstractUpgradeTestCase.java index a1430965339c3..3b72674ed0751 100644 --- a/x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/AbstractUpgradeTestCase.java +++ b/x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/AbstractUpgradeTestCase.java @@ -43,6 +43,11 @@ protected boolean preserveRollupJobsUponCompletion() { return true; } + @Override + protected boolean preserveILMPoliciesUponCompletion() { + return true; + } + enum ClusterType { OLD, MIXED, diff --git a/x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/UpgradeClusterClientYamlTestSuiteIT.java b/x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/UpgradeClusterClientYamlTestSuiteIT.java index bd1b4ec28feee..a6e6da57b8ac6 100644 --- a/x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/UpgradeClusterClientYamlTestSuiteIT.java +++ b/x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/UpgradeClusterClientYamlTestSuiteIT.java @@ -47,6 +47,11 @@ protected boolean preserveRollupJobsUponCompletion() { return true; } + @Override + protected boolean preserveILMPoliciesUponCompletion() { + return true; + } + public UpgradeClusterClientYamlTestSuiteIT(ClientYamlTestCandidate testCandidate) { super(testCandidate); } From d8278faae0390b271d039b39905766932d5f637b Mon Sep 17 00:00:00 2001 From: Tal Levy Date: Thu, 25 Oct 2018 10:41:42 -0700 Subject: [PATCH 04/12] move new start-stop ilm docs to new dir --- {x-pack/docs/en => docs/reference}/ilm/start-stop-ilm.asciidoc | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {x-pack/docs/en => docs/reference}/ilm/start-stop-ilm.asciidoc (100%) diff --git a/x-pack/docs/en/ilm/start-stop-ilm.asciidoc b/docs/reference/ilm/start-stop-ilm.asciidoc similarity index 100% rename from x-pack/docs/en/ilm/start-stop-ilm.asciidoc rename to docs/reference/ilm/start-stop-ilm.asciidoc From 798ababafb832e7cb1d8b990a74a2126ee455f14 Mon Sep 17 00:00:00 2001 From: Tal Levy Date: Thu, 25 Oct 2018 10:45:29 -0700 Subject: [PATCH 05/12] cleanup exception handling in policyremoval --- .../test/rest/ESRestTestCase.java | 34 +++---------------- 1 file changed, 4 insertions(+), 30 deletions(-) diff --git a/test/framework/src/main/java/org/elasticsearch/test/rest/ESRestTestCase.java b/test/framework/src/main/java/org/elasticsearch/test/rest/ESRestTestCase.java index 0211a025f1435..b0df86b654722 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/rest/ESRestTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/test/rest/ESRestTestCase.java @@ -400,7 +400,6 @@ private void wipeCluster() throws Exception { } if (hasXPack && false == preserveILMPoliciesUponCompletion()) { - removePoliciesFromAllIndexes(); deleteAllPolicies(); } } @@ -513,43 +512,18 @@ private void waitForPendingRollupTasks() throws Exception { waitForPendingTasks(adminClient(), taskName -> taskName.startsWith("xpack/rollup/job") == false); } - private static void removePoliciesFromAllIndexes() throws IOException { - Response response = adminClient().performRequest(new Request("GET", "/_all")); - Map indexes = ESRestTestCase.entityAsMap(response); - - if (indexes == null || indexes.isEmpty()) { - return; - } - - for (String indexName : indexes.keySet()) { - try { - adminClient().performRequest(new Request("DELETE", indexName + "/_ilm/")); - } catch (Exception e) { - // ok - } - } - } - - private static void deleteAllPolicies() throws Exception { + private static void deleteAllPolicies() throws IOException { Map policies; - try { - Response response = adminClient().performRequest(new Request("GET", "/_ilm")); - policies = ESRestTestCase.entityAsMap(response); - } catch (Exception e) { - return; - } + Response response = adminClient().performRequest(new Request("GET", "/_ilm")); + policies = entityAsMap(response); if (policies == null || policies.isEmpty()) { return; } for (String policyName : policies.keySet()) { - try { - adminClient().performRequest(new Request("DELETE", "/_ilm/" + policyName)); - } catch (Exception e) { - // ok - } + adminClient().performRequest(new Request("DELETE", "/_ilm/" + policyName)); } } From 03defffa252a1275b6af91fbab51a9cf6a3ac9db Mon Sep 17 00:00:00 2001 From: Tal Levy Date: Thu, 25 Oct 2018 11:35:42 -0700 Subject: [PATCH 06/12] fix get_status snippet --- docs/reference/ilm/apis/get-status.asciidoc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/reference/ilm/apis/get-status.asciidoc b/docs/reference/ilm/apis/get-status.asciidoc index 00b96d1cc189a..8f5d2289ff2ea 100644 --- a/docs/reference/ilm/apis/get-status.asciidoc +++ b/docs/reference/ilm/apis/get-status.asciidoc @@ -10,7 +10,7 @@ Gets the current status for ILM. ==== Request -`POST /_ilm/status` +`GET /_ilm/status` ==== Description @@ -42,7 +42,6 @@ The following example stops the ILM plugin. GET _ilm/status -------------------------------------------------- // CONSOLE -// TEST If the request does not encounter errors, you receive the following result: From a6b9af8465e7a3febf4ab878a7b35e001a280bd1 Mon Sep 17 00:00:00 2001 From: Tal Levy Date: Thu, 25 Oct 2018 12:11:36 -0700 Subject: [PATCH 07/12] fix policy cleanup exception handling --- .../org/elasticsearch/test/rest/ESRestTestCase.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/test/framework/src/main/java/org/elasticsearch/test/rest/ESRestTestCase.java b/test/framework/src/main/java/org/elasticsearch/test/rest/ESRestTestCase.java index 75ca851d062c5..fb064fd7a8185 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/rest/ESRestTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/test/rest/ESRestTestCase.java @@ -515,8 +515,16 @@ private void waitForPendingRollupTasks() throws Exception { private static void deleteAllPolicies() throws IOException { Map policies; - Response response = adminClient().performRequest(new Request("GET", "/_ilm")); - policies = entityAsMap(response); + try { + Response response = adminClient().performRequest(new Request("GET", "/_ilm")); + policies = entityAsMap(response); + } catch (ResponseException e) { + if (RestStatus.NOT_FOUND.getStatus() == e.getResponse().getStatusLine().getStatusCode()) { + // no policies exist that need deleting + return; + } + throw e; + } if (policies == null || policies.isEmpty()) { return; From 3a287341845670b48ab46156cc918089c152e691 Mon Sep 17 00:00:00 2001 From: Tal Levy Date: Thu, 25 Oct 2018 12:55:36 -0700 Subject: [PATCH 08/12] add proper x-pack testenv to start-stop-ilm --- docs/reference/ilm/start-stop-ilm.asciidoc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/reference/ilm/start-stop-ilm.asciidoc b/docs/reference/ilm/start-stop-ilm.asciidoc index 9630b4f99ce8b..d6cf18d3d539e 100644 --- a/docs/reference/ilm/start-stop-ilm.asciidoc +++ b/docs/reference/ilm/start-stop-ilm.asciidoc @@ -1,3 +1,5 @@ +[role="xpack"] +[testenv="basic"] [[start-stop-ilm]] == Start And Stop {ilm} From 870655ef213367ecc98d646ba7f4f59abf94f131 Mon Sep 17 00:00:00 2001 From: Tal Levy Date: Thu, 25 Oct 2018 14:43:27 -0700 Subject: [PATCH 09/12] add version guard for cleanup with nodes < 6.6 --- .../java/org/elasticsearch/test/rest/ESRestTestCase.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/test/framework/src/main/java/org/elasticsearch/test/rest/ESRestTestCase.java b/test/framework/src/main/java/org/elasticsearch/test/rest/ESRestTestCase.java index 725fb2368a893..a2000880def4a 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/rest/ESRestTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/test/rest/ESRestTestCase.java @@ -410,7 +410,12 @@ private void wipeCluster() throws Exception { waitForPendingRollupTasks(); } - if (hasXPack && false == preserveILMPoliciesUponCompletion()) { + /* + * ILM was introduced in 6.6 so any cluster that contains older + * nodes won't be able to do *anything* with ILM, including cleanup. + */ + if (hasXPack && nodeVersions.first().onOrAfter(Version.V_6_6_0) + && false == preserveILMPoliciesUponCompletion()) { deleteAllPolicies(); } } From 020171cd26c8d95084b4d191f0883117632fda76 Mon Sep 17 00:00:00 2001 From: Tal Levy Date: Thu, 25 Oct 2018 14:46:17 -0700 Subject: [PATCH 10/12] Revert "add version guard for cleanup with nodes < 6.6" This reverts commit 870655ef213367ecc98d646ba7f4f59abf94f131. --- .../java/org/elasticsearch/test/rest/ESRestTestCase.java | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/test/framework/src/main/java/org/elasticsearch/test/rest/ESRestTestCase.java b/test/framework/src/main/java/org/elasticsearch/test/rest/ESRestTestCase.java index a2000880def4a..725fb2368a893 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/rest/ESRestTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/test/rest/ESRestTestCase.java @@ -410,12 +410,7 @@ private void wipeCluster() throws Exception { waitForPendingRollupTasks(); } - /* - * ILM was introduced in 6.6 so any cluster that contains older - * nodes won't be able to do *anything* with ILM, including cleanup. - */ - if (hasXPack && nodeVersions.first().onOrAfter(Version.V_6_6_0) - && false == preserveILMPoliciesUponCompletion()) { + if (hasXPack && false == preserveILMPoliciesUponCompletion()) { deleteAllPolicies(); } } From c64b5b7284d5394b49fbb9fc4826938b2fb85e18 Mon Sep 17 00:00:00 2001 From: Tal Levy Date: Thu, 25 Oct 2018 16:21:47 -0700 Subject: [PATCH 11/12] remove exception handling around GET _ilm --- .../elasticsearch/test/rest/ESRestTestCase.java | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/test/framework/src/main/java/org/elasticsearch/test/rest/ESRestTestCase.java b/test/framework/src/main/java/org/elasticsearch/test/rest/ESRestTestCase.java index 725fb2368a893..b09840328f8a4 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/rest/ESRestTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/test/rest/ESRestTestCase.java @@ -524,18 +524,8 @@ private void waitForPendingRollupTasks() throws Exception { } private static void deleteAllPolicies() throws IOException { - Map policies; - - try { - Response response = adminClient().performRequest(new Request("GET", "/_ilm")); - policies = entityAsMap(response); - } catch (ResponseException e) { - if (RestStatus.NOT_FOUND.getStatus() == e.getResponse().getStatusLine().getStatusCode()) { - // no policies exist that need deleting - return; - } - throw e; - } + Response response = adminClient().performRequest(new Request("GET", "/_ilm")); + Map policies = entityAsMap(response); if (policies == null || policies.isEmpty()) { return; From c3538abb51323e9b3eadb2aa7168828bf6944da9 Mon Sep 17 00:00:00 2001 From: Tal Levy Date: Fri, 26 Oct 2018 08:16:16 -0700 Subject: [PATCH 12/12] add back exception handling for GET if ILM is not enabled --- .../elasticsearch/test/rest/ESRestTestCase.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/test/framework/src/main/java/org/elasticsearch/test/rest/ESRestTestCase.java b/test/framework/src/main/java/org/elasticsearch/test/rest/ESRestTestCase.java index b09840328f8a4..05019d453952c 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/rest/ESRestTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/test/rest/ESRestTestCase.java @@ -524,8 +524,18 @@ private void waitForPendingRollupTasks() throws Exception { } private static void deleteAllPolicies() throws IOException { - Response response = adminClient().performRequest(new Request("GET", "/_ilm")); - Map policies = entityAsMap(response); + Map policies; + + try { + Response response = adminClient().performRequest(new Request("GET", "/_ilm")); + policies = entityAsMap(response); + } catch (ResponseException e) { + if (RestStatus.BAD_REQUEST.getStatus() == e.getResponse().getStatusLine().getStatusCode()) { + // If bad request returned, ILM is not enabled. + return; + } + throw e; + } if (policies == null || policies.isEmpty()) { return;