From 0388a5980c7575bf4ee81ed87f59d4a77e46d581 Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Wed, 26 Mar 2025 10:05:56 -0700 Subject: [PATCH] Migrate legacy QA projects to new test clusters framework (#125545) --- .../internal/RestrictedBuildApiService.java | 5 --- qa/smoke-test-http/build.gradle | 15 +++---- .../tasks/RestListTasksCancellationIT.java | 0 ...ockedSearcherRestCancellationTestCase.java | 0 .../org/elasticsearch/http/BulkRestIT.java | 0 .../http/ClusterHealthRestCancellationIT.java | 0 .../http/ClusterInfoRestCancellationIT.java | 0 .../http/ClusterStateRestCancellationIT.java | 0 .../http/ClusterStatsRestCancellationIT.java | 0 .../org/elasticsearch/http/CorsNotSetIT.java | 0 .../org/elasticsearch/http/CorsRegexIT.java | 0 .../http/DanglingIndicesRestIT.java | 0 .../http/DetailedErrorsDisabledIT.java | 0 .../http/DetailedErrorsEnabledIT.java | 0 .../http/HealthRestCancellationIT.java | 0 .../elasticsearch/http/HttpSmokeTestCase.java | 0 .../org/elasticsearch/http/HttpStatsIT.java | 0 .../http/IndexingPressureRestIT.java | 0 .../IndicesSegmentsRestCancellationIT.java | 0 .../http/IndicesStatsRestCancellationIT.java | 0 .../org/elasticsearch/http/NoHandlerIT.java | 0 .../http/NodeStatsRestCancellationIT.java | 0 .../org/elasticsearch/http/PointInTimeIT.java | 0 .../http/PrevalidateNodeRemovalRestIT.java | 0 .../http/ResponseHeaderPluginIT.java | 0 .../http/RestActionCancellationIT.java | 0 .../RestClusterInfoActionCancellationIT.java | 0 .../http/RolloverRestCancellationIT.java | 0 .../http/SearchErrorTraceIT.java | 0 .../http/SearchRestCancellationIT.java | 0 .../elasticsearch/http/SystemIndexRestIT.java | 0 .../http/TestResponseHeaderPlugin.java | 0 .../http/TestResponseHeaderRestAction.java | 0 .../AbstractSnapshotRestTestCase.java | 0 .../http/snapshots/RestCatSnapshotsIT.java | 0 .../RestGetSnapshotsCancellationIT.java | 0 .../http/snapshots/RestGetSnapshotsIT.java | 0 .../RestSnapshotsStatusCancellationIT.java | 0 .../http/AbstractHttpSmokeTestIT.java | 25 +++++++++++ .../elasticsearch/http/AutoCreateIndexIT.java | 3 +- .../elasticsearch/http/HttpCompressionIT.java | 3 +- .../http/RestHttpResponseHeadersIT.java | 3 +- qa/smoke-test-ingest-disabled/build.gradle | 9 +--- ...stIngestDisabledClientYamlTestSuiteIT.java | 13 ++++++ .../build.gradle | 26 +++++------- .../ingest/AbstractScriptTestCase.java | 0 .../ingest/IngestDocumentMustacheIT.java | 0 .../ingest/ValueSourceMustacheIT.java | 0 .../resources/scripts/master.painless | 0 ...ngestWithAllDepsClientYamlTestSuiteIT.java | 18 ++++++++ ...ation_warnings_on_invalid_names_ingest.yml | 3 +- qa/smoke-test-plugins/build.gradle | 16 ++++--- ...SmokeTestPluginsClientYamlTestSuiteIT.java | 14 +++++++ qa/system-indices/build.gradle | 9 +--- .../indices/AbstractSystemIndicesIT.java | 42 +++++++++++++++++++ .../system/indices/FeatureUpgradeApiIT.java | 13 +----- .../system/indices/NetNewSystemIndicesIT.java | 13 +----- .../system/indices/SystemAliasIT.java | 12 +----- .../elasticsearch/ingest/IngestService.java | 3 -- .../local/AbstractLocalClusterFactory.java | 4 +- 60 files changed, 151 insertions(+), 98 deletions(-) rename qa/smoke-test-http/src/{javaRestTest => internalClusterTest}/java/org/elasticsearch/action/support/tasks/RestListTasksCancellationIT.java (100%) rename qa/smoke-test-http/src/{javaRestTest => internalClusterTest}/java/org/elasticsearch/http/BlockedSearcherRestCancellationTestCase.java (100%) rename qa/smoke-test-http/src/{javaRestTest => internalClusterTest}/java/org/elasticsearch/http/BulkRestIT.java (100%) rename qa/smoke-test-http/src/{javaRestTest => internalClusterTest}/java/org/elasticsearch/http/ClusterHealthRestCancellationIT.java (100%) rename qa/smoke-test-http/src/{javaRestTest => internalClusterTest}/java/org/elasticsearch/http/ClusterInfoRestCancellationIT.java (100%) rename qa/smoke-test-http/src/{javaRestTest => internalClusterTest}/java/org/elasticsearch/http/ClusterStateRestCancellationIT.java (100%) rename qa/smoke-test-http/src/{javaRestTest => internalClusterTest}/java/org/elasticsearch/http/ClusterStatsRestCancellationIT.java (100%) rename qa/smoke-test-http/src/{javaRestTest => internalClusterTest}/java/org/elasticsearch/http/CorsNotSetIT.java (100%) rename qa/smoke-test-http/src/{javaRestTest => internalClusterTest}/java/org/elasticsearch/http/CorsRegexIT.java (100%) rename qa/smoke-test-http/src/{javaRestTest => internalClusterTest}/java/org/elasticsearch/http/DanglingIndicesRestIT.java (100%) rename qa/smoke-test-http/src/{javaRestTest => internalClusterTest}/java/org/elasticsearch/http/DetailedErrorsDisabledIT.java (100%) rename qa/smoke-test-http/src/{javaRestTest => internalClusterTest}/java/org/elasticsearch/http/DetailedErrorsEnabledIT.java (100%) rename qa/smoke-test-http/src/{javaRestTest => internalClusterTest}/java/org/elasticsearch/http/HealthRestCancellationIT.java (100%) rename qa/smoke-test-http/src/{javaRestTest => internalClusterTest}/java/org/elasticsearch/http/HttpSmokeTestCase.java (100%) rename qa/smoke-test-http/src/{javaRestTest => internalClusterTest}/java/org/elasticsearch/http/HttpStatsIT.java (100%) rename qa/smoke-test-http/src/{javaRestTest => internalClusterTest}/java/org/elasticsearch/http/IndexingPressureRestIT.java (100%) rename qa/smoke-test-http/src/{javaRestTest => internalClusterTest}/java/org/elasticsearch/http/IndicesSegmentsRestCancellationIT.java (100%) rename qa/smoke-test-http/src/{javaRestTest => internalClusterTest}/java/org/elasticsearch/http/IndicesStatsRestCancellationIT.java (100%) rename qa/smoke-test-http/src/{javaRestTest => internalClusterTest}/java/org/elasticsearch/http/NoHandlerIT.java (100%) rename qa/smoke-test-http/src/{javaRestTest => internalClusterTest}/java/org/elasticsearch/http/NodeStatsRestCancellationIT.java (100%) rename qa/smoke-test-http/src/{javaRestTest => internalClusterTest}/java/org/elasticsearch/http/PointInTimeIT.java (100%) rename qa/smoke-test-http/src/{javaRestTest => internalClusterTest}/java/org/elasticsearch/http/PrevalidateNodeRemovalRestIT.java (100%) rename qa/smoke-test-http/src/{javaRestTest => internalClusterTest}/java/org/elasticsearch/http/ResponseHeaderPluginIT.java (100%) rename qa/smoke-test-http/src/{javaRestTest => internalClusterTest}/java/org/elasticsearch/http/RestActionCancellationIT.java (100%) rename qa/smoke-test-http/src/{javaRestTest => internalClusterTest}/java/org/elasticsearch/http/RestClusterInfoActionCancellationIT.java (100%) rename qa/smoke-test-http/src/{javaRestTest => internalClusterTest}/java/org/elasticsearch/http/RolloverRestCancellationIT.java (100%) rename qa/smoke-test-http/src/{javaRestTest => internalClusterTest}/java/org/elasticsearch/http/SearchErrorTraceIT.java (100%) rename qa/smoke-test-http/src/{javaRestTest => internalClusterTest}/java/org/elasticsearch/http/SearchRestCancellationIT.java (100%) rename qa/smoke-test-http/src/{javaRestTest => internalClusterTest}/java/org/elasticsearch/http/SystemIndexRestIT.java (100%) rename qa/smoke-test-http/src/{javaRestTest => internalClusterTest}/java/org/elasticsearch/http/TestResponseHeaderPlugin.java (100%) rename qa/smoke-test-http/src/{javaRestTest => internalClusterTest}/java/org/elasticsearch/http/TestResponseHeaderRestAction.java (100%) rename qa/smoke-test-http/src/{javaRestTest => internalClusterTest}/java/org/elasticsearch/http/snapshots/AbstractSnapshotRestTestCase.java (100%) rename qa/smoke-test-http/src/{javaRestTest => internalClusterTest}/java/org/elasticsearch/http/snapshots/RestCatSnapshotsIT.java (100%) rename qa/smoke-test-http/src/{javaRestTest => internalClusterTest}/java/org/elasticsearch/http/snapshots/RestGetSnapshotsCancellationIT.java (100%) rename qa/smoke-test-http/src/{javaRestTest => internalClusterTest}/java/org/elasticsearch/http/snapshots/RestGetSnapshotsIT.java (100%) rename qa/smoke-test-http/src/{javaRestTest => internalClusterTest}/java/org/elasticsearch/http/snapshots/RestSnapshotsStatusCancellationIT.java (100%) create mode 100644 qa/smoke-test-http/src/javaRestTest/java/org/elasticsearch/http/AbstractHttpSmokeTestIT.java rename qa/smoke-test-ingest-with-all-dependencies/src/{yamlRestTest => internalClusterTest}/java/org/elasticsearch/ingest/AbstractScriptTestCase.java (100%) rename qa/smoke-test-ingest-with-all-dependencies/src/{yamlRestTest => internalClusterTest}/java/org/elasticsearch/ingest/IngestDocumentMustacheIT.java (100%) rename qa/smoke-test-ingest-with-all-dependencies/src/{yamlRestTest => internalClusterTest}/java/org/elasticsearch/ingest/ValueSourceMustacheIT.java (100%) rename qa/smoke-test-ingest-with-all-dependencies/src/{yamlRestTest => internalClusterTest}/resources/scripts/master.painless (100%) create mode 100644 qa/system-indices/src/javaRestTest/java/org/elasticsearch/system/indices/AbstractSystemIndicesIT.java diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/RestrictedBuildApiService.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/RestrictedBuildApiService.java index fddb41cdc362..44cc56d38808 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/RestrictedBuildApiService.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/RestrictedBuildApiService.java @@ -48,11 +48,6 @@ public abstract class RestrictedBuildApiService implements BuildServicefalse diff --git a/qa/smoke-test-http/src/javaRestTest/java/org/elasticsearch/http/HttpCompressionIT.java b/qa/smoke-test-http/src/javaRestTest/java/org/elasticsearch/http/HttpCompressionIT.java index 981190f22ce2..d3e526e4192f 100644 --- a/qa/smoke-test-http/src/javaRestTest/java/org/elasticsearch/http/HttpCompressionIT.java +++ b/qa/smoke-test-http/src/javaRestTest/java/org/elasticsearch/http/HttpCompressionIT.java @@ -14,7 +14,6 @@ import org.apache.http.util.EntityUtils; import org.elasticsearch.client.Request; import org.elasticsearch.client.RequestOptions; import org.elasticsearch.client.Response; -import org.elasticsearch.test.rest.ESRestTestCase; import java.io.IOException; @@ -23,7 +22,7 @@ import static org.hamcrest.CoreMatchers.instanceOf; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.not; -public class HttpCompressionIT extends ESRestTestCase { +public class HttpCompressionIT extends AbstractHttpSmokeTestIT { private static final String GZIP_ENCODING = "gzip"; private static final String SAMPLE_DOCUMENT = """ diff --git a/qa/smoke-test-http/src/javaRestTest/java/org/elasticsearch/http/RestHttpResponseHeadersIT.java b/qa/smoke-test-http/src/javaRestTest/java/org/elasticsearch/http/RestHttpResponseHeadersIT.java index 2ac07a3851ee..19cb9f8e6fca 100644 --- a/qa/smoke-test-http/src/javaRestTest/java/org/elasticsearch/http/RestHttpResponseHeadersIT.java +++ b/qa/smoke-test-http/src/javaRestTest/java/org/elasticsearch/http/RestHttpResponseHeadersIT.java @@ -13,7 +13,6 @@ import org.apache.http.util.EntityUtils; import org.elasticsearch.client.Request; import org.elasticsearch.client.Response; import org.elasticsearch.client.ResponseException; -import org.elasticsearch.test.rest.ESRestTestCase; import java.util.Arrays; import java.util.List; @@ -29,7 +28,7 @@ import static org.hamcrest.Matchers.is; * methods on REST endpoints should respond with status code 405 for more * information. */ -public class RestHttpResponseHeadersIT extends ESRestTestCase { +public class RestHttpResponseHeadersIT extends AbstractHttpSmokeTestIT { /** * For an OPTIONS request to a valid REST endpoint, verify that a 200 HTTP diff --git a/qa/smoke-test-ingest-disabled/build.gradle b/qa/smoke-test-ingest-disabled/build.gradle index fe8904da7c1c..cc3b5c19ab4a 100644 --- a/qa/smoke-test-ingest-disabled/build.gradle +++ b/qa/smoke-test-ingest-disabled/build.gradle @@ -6,13 +6,8 @@ * your election, the "Elastic License 2.0", the "GNU Affero General Public * License v3.0 only", or the "Server Side Public License, v 1". */ -apply plugin: 'elasticsearch.legacy-yaml-rest-test' +apply plugin: 'elasticsearch.internal-yaml-rest-test' dependencies { - testImplementation project(':modules:ingest-common') -} - -testClusters.matching { it.name == "yamlRestTest" }.configureEach { - setting 'xpack.security.enabled', 'false' - setting 'node.roles', '[data,master,remote_cluster_client]' + clusterModules project(':modules:ingest-common') } diff --git a/qa/smoke-test-ingest-disabled/src/yamlRestTest/java/org/elasticsearch/smoketest/SmokeTestIngestDisabledClientYamlTestSuiteIT.java b/qa/smoke-test-ingest-disabled/src/yamlRestTest/java/org/elasticsearch/smoketest/SmokeTestIngestDisabledClientYamlTestSuiteIT.java index 4c050b776a16..254e8bd8e24e 100644 --- a/qa/smoke-test-ingest-disabled/src/yamlRestTest/java/org/elasticsearch/smoketest/SmokeTestIngestDisabledClientYamlTestSuiteIT.java +++ b/qa/smoke-test-ingest-disabled/src/yamlRestTest/java/org/elasticsearch/smoketest/SmokeTestIngestDisabledClientYamlTestSuiteIT.java @@ -12,11 +12,20 @@ package org.elasticsearch.smoketest; import com.carrotsearch.randomizedtesting.annotations.Name; import com.carrotsearch.randomizedtesting.annotations.ParametersFactory; +import org.elasticsearch.test.cluster.ElasticsearchCluster; import org.elasticsearch.test.rest.yaml.ClientYamlTestCandidate; import org.elasticsearch.test.rest.yaml.ESClientYamlSuiteTestCase; +import org.junit.ClassRule; public class SmokeTestIngestDisabledClientYamlTestSuiteIT extends ESClientYamlSuiteTestCase { + @ClassRule + public static ElasticsearchCluster cluster = ElasticsearchCluster.local() + .module("ingest-common") + .setting("xpack.security.enabled", "false") + .setting("node.roles", "[data,master,remote_cluster_client]") + .build(); + public SmokeTestIngestDisabledClientYamlTestSuiteIT(@Name("yaml") ClientYamlTestCandidate testCandidate) { super(testCandidate); } @@ -26,4 +35,8 @@ public class SmokeTestIngestDisabledClientYamlTestSuiteIT extends ESClientYamlSu return ESClientYamlSuiteTestCase.createParameters(); } + @Override + protected String getTestRestCluster() { + return cluster.getHttpAddresses(); + } } diff --git a/qa/smoke-test-ingest-with-all-dependencies/build.gradle b/qa/smoke-test-ingest-with-all-dependencies/build.gradle index 5482fa4f4df8..ca5bbebd6b3d 100644 --- a/qa/smoke-test-ingest-with-all-dependencies/build.gradle +++ b/qa/smoke-test-ingest-with-all-dependencies/build.gradle @@ -7,22 +7,16 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -apply plugin: 'elasticsearch.legacy-yaml-rest-test' +apply plugin: 'elasticsearch.internal-cluster-test' +apply plugin: 'elasticsearch.internal-yaml-rest-test' dependencies { - yamlRestTestImplementation project(':modules:lang-mustache') -} - -testClusters.configureEach { - setting 'xpack.security.enabled', 'false' - extraConfigFile 'ingest-geoip/GeoLite2-City.mmdb', file("src/yamlRestTest/resources/GeoLite2-City.mmdb") -} - -tasks.named("yamlRestTestTestingConventions").configure { - baseClass 'org.elasticsearch.ingest.AbstractScriptTestCase' - baseClass 'org.elasticsearch.test.rest.yaml.ESClientYamlSuiteTestCase' -} - -tasks.named("forbiddenPatterns").configure { - exclude '**/*.mmdb' + internalClusterTestImplementation project(':test:framework') + internalClusterTestImplementation project(':modules:lang-mustache') + clusterModules project(":modules:ingest-common") + clusterModules project(":modules:lang-mustache") + clusterModules project(":modules:reindex") + clusterModules project(":modules:data-streams") + clusterModules project(":modules:ingest-geoip") + clusterModules project(":modules:mapper-extras") } diff --git a/qa/smoke-test-ingest-with-all-dependencies/src/yamlRestTest/java/org/elasticsearch/ingest/AbstractScriptTestCase.java b/qa/smoke-test-ingest-with-all-dependencies/src/internalClusterTest/java/org/elasticsearch/ingest/AbstractScriptTestCase.java similarity index 100% rename from qa/smoke-test-ingest-with-all-dependencies/src/yamlRestTest/java/org/elasticsearch/ingest/AbstractScriptTestCase.java rename to qa/smoke-test-ingest-with-all-dependencies/src/internalClusterTest/java/org/elasticsearch/ingest/AbstractScriptTestCase.java diff --git a/qa/smoke-test-ingest-with-all-dependencies/src/yamlRestTest/java/org/elasticsearch/ingest/IngestDocumentMustacheIT.java b/qa/smoke-test-ingest-with-all-dependencies/src/internalClusterTest/java/org/elasticsearch/ingest/IngestDocumentMustacheIT.java similarity index 100% rename from qa/smoke-test-ingest-with-all-dependencies/src/yamlRestTest/java/org/elasticsearch/ingest/IngestDocumentMustacheIT.java rename to qa/smoke-test-ingest-with-all-dependencies/src/internalClusterTest/java/org/elasticsearch/ingest/IngestDocumentMustacheIT.java diff --git a/qa/smoke-test-ingest-with-all-dependencies/src/yamlRestTest/java/org/elasticsearch/ingest/ValueSourceMustacheIT.java b/qa/smoke-test-ingest-with-all-dependencies/src/internalClusterTest/java/org/elasticsearch/ingest/ValueSourceMustacheIT.java similarity index 100% rename from qa/smoke-test-ingest-with-all-dependencies/src/yamlRestTest/java/org/elasticsearch/ingest/ValueSourceMustacheIT.java rename to qa/smoke-test-ingest-with-all-dependencies/src/internalClusterTest/java/org/elasticsearch/ingest/ValueSourceMustacheIT.java diff --git a/qa/smoke-test-ingest-with-all-dependencies/src/yamlRestTest/resources/scripts/master.painless b/qa/smoke-test-ingest-with-all-dependencies/src/internalClusterTest/resources/scripts/master.painless similarity index 100% rename from qa/smoke-test-ingest-with-all-dependencies/src/yamlRestTest/resources/scripts/master.painless rename to qa/smoke-test-ingest-with-all-dependencies/src/internalClusterTest/resources/scripts/master.painless diff --git a/qa/smoke-test-ingest-with-all-dependencies/src/yamlRestTest/java/org/elasticsearch/smoketest/SmokeTestIngestWithAllDepsClientYamlTestSuiteIT.java b/qa/smoke-test-ingest-with-all-dependencies/src/yamlRestTest/java/org/elasticsearch/smoketest/SmokeTestIngestWithAllDepsClientYamlTestSuiteIT.java index 9618381440d9..5dc864069379 100644 --- a/qa/smoke-test-ingest-with-all-dependencies/src/yamlRestTest/java/org/elasticsearch/smoketest/SmokeTestIngestWithAllDepsClientYamlTestSuiteIT.java +++ b/qa/smoke-test-ingest-with-all-dependencies/src/yamlRestTest/java/org/elasticsearch/smoketest/SmokeTestIngestWithAllDepsClientYamlTestSuiteIT.java @@ -12,11 +12,25 @@ package org.elasticsearch.smoketest; import com.carrotsearch.randomizedtesting.annotations.Name; import com.carrotsearch.randomizedtesting.annotations.ParametersFactory; +import org.elasticsearch.test.cluster.ElasticsearchCluster; +import org.elasticsearch.test.cluster.util.resource.Resource; import org.elasticsearch.test.rest.yaml.ClientYamlTestCandidate; import org.elasticsearch.test.rest.yaml.ESClientYamlSuiteTestCase; +import org.junit.ClassRule; public class SmokeTestIngestWithAllDepsClientYamlTestSuiteIT extends ESClientYamlSuiteTestCase { + @ClassRule + public static ElasticsearchCluster cluster = ElasticsearchCluster.local() + .module("ingest-common") + .module("lang-mustache") + .module("reindex") + .module("data-streams") + .module("ingest-geoip") + .module("mapper-extras") + .configFile("ingest-geoip/GeoLite2-City.mmdb", Resource.fromClasspath("GeoLite2-City.mmdb")) + .build(); + public SmokeTestIngestWithAllDepsClientYamlTestSuiteIT(@Name("yaml") ClientYamlTestCandidate testCandidate) { super(testCandidate); } @@ -26,4 +40,8 @@ public class SmokeTestIngestWithAllDepsClientYamlTestSuiteIT extends ESClientYam return ESClientYamlSuiteTestCase.createParameters(); } + @Override + protected String getTestRestCluster() { + return cluster.getHttpAddresses(); + } } diff --git a/qa/smoke-test-ingest-with-all-dependencies/src/yamlRestTest/resources/rest-api-spec/test/ingest/90_deprecation_warnings_on_invalid_names_ingest.yml b/qa/smoke-test-ingest-with-all-dependencies/src/yamlRestTest/resources/rest-api-spec/test/ingest/90_deprecation_warnings_on_invalid_names_ingest.yml index 64f5ccc4609a..80d0ca00c763 100644 --- a/qa/smoke-test-ingest-with-all-dependencies/src/yamlRestTest/resources/rest-api-spec/test/ingest/90_deprecation_warnings_on_invalid_names_ingest.yml +++ b/qa/smoke-test-ingest-with-all-dependencies/src/yamlRestTest/resources/rest-api-spec/test/ingest/90_deprecation_warnings_on_invalid_names_ingest.yml @@ -1,7 +1,6 @@ --- "Test invalid name warnings": - requires: - cluster_features: [ "ingest.pipeline_name_special_chars_warning" ] test_runner_features: [ "warnings" ] reason: verifying deprecation warnings from 9.0 onwards for invalid pipeline names @@ -24,5 +23,5 @@ }] } warnings: - - "Invalid pipeline id: Invalid*-pipeline:id" + - "Pipeline name [Invalid*-pipeline:id] will be disallowed in a future version for the following reason: must not contain the following characters [' ','\"','*',',','/','<','>','?','\\','|']" - match: { acknowledged: true } diff --git a/qa/smoke-test-plugins/build.gradle b/qa/smoke-test-plugins/build.gradle index c707c2b5e8c8..42151668922f 100644 --- a/qa/smoke-test-plugins/build.gradle +++ b/qa/smoke-test-plugins/build.gradle @@ -9,26 +9,32 @@ import org.apache.tools.ant.filters.ReplaceTokens -apply plugin: 'elasticsearch.legacy-yaml-rest-test' +apply plugin: 'elasticsearch.internal-yaml-rest-test' ext.pluginPaths = [] +ext.pluginNames = [] project(':plugins').getChildProjects().each { pluginName, pluginProject -> pluginPaths << pluginProject.path + pluginNames << pluginName } -testClusters.matching { it.name == "yamlRestTest" }.configureEach { +dependencies { + clusterModules project(":modules:lang-painless") pluginPaths.each { pluginPath -> - plugin pluginPath + clusterPlugins(project(pluginPath)) } - setting 'xpack.security.enabled', 'false' } ext.expansions = [ 'expected.plugins.count': pluginPaths.size() ] -tasks.named("processYamlRestTestResources").configure { +tasks.named("processYamlRestTestResources") { assert pluginPaths.size() > 0 inputs.properties(expansions) filter("tokens" : expansions.collectEntries {k, v -> [k, v.toString()]} /* must be a map of strings */, ReplaceTokens.class) } + +tasks.named("yamlRestTest") { + systemProperty('tests.plugin.names', pluginNames.join(',')) +} diff --git a/qa/smoke-test-plugins/src/yamlRestTest/java/org/elasticsearch/smoketest/SmokeTestPluginsClientYamlTestSuiteIT.java b/qa/smoke-test-plugins/src/yamlRestTest/java/org/elasticsearch/smoketest/SmokeTestPluginsClientYamlTestSuiteIT.java index 586f0bfcbc71..fa2972a49ac0 100644 --- a/qa/smoke-test-plugins/src/yamlRestTest/java/org/elasticsearch/smoketest/SmokeTestPluginsClientYamlTestSuiteIT.java +++ b/qa/smoke-test-plugins/src/yamlRestTest/java/org/elasticsearch/smoketest/SmokeTestPluginsClientYamlTestSuiteIT.java @@ -12,11 +12,20 @@ package org.elasticsearch.smoketest; import com.carrotsearch.randomizedtesting.annotations.Name; import com.carrotsearch.randomizedtesting.annotations.ParametersFactory; +import org.elasticsearch.test.cluster.ElasticsearchCluster; import org.elasticsearch.test.rest.yaml.ClientYamlTestCandidate; import org.elasticsearch.test.rest.yaml.ESClientYamlSuiteTestCase; +import org.junit.ClassRule; public class SmokeTestPluginsClientYamlTestSuiteIT extends ESClientYamlSuiteTestCase { + @ClassRule + public static ElasticsearchCluster cluster = ElasticsearchCluster.local().apply(c -> { + for (String plugin : System.getProperty("tests.plugin.names").split(",")) { + c.plugin(plugin); + } + }).module("lang-painless").setting("xpack.security.enabled", "false").build(); + public SmokeTestPluginsClientYamlTestSuiteIT(@Name("yaml") ClientYamlTestCandidate testCandidate) { super(testCandidate); } @@ -25,4 +34,9 @@ public class SmokeTestPluginsClientYamlTestSuiteIT extends ESClientYamlSuiteTest public static Iterable parameters() throws Exception { return ESClientYamlSuiteTestCase.createParameters(); } + + @Override + protected String getTestRestCluster() { + return cluster.getHttpAddresses(); + } } diff --git a/qa/system-indices/build.gradle b/qa/system-indices/build.gradle index cbd7da37b49f..e856bde590f3 100644 --- a/qa/system-indices/build.gradle +++ b/qa/system-indices/build.gradle @@ -8,7 +8,7 @@ */ apply plugin: 'elasticsearch.base-internal-es-plugin' -apply plugin: 'elasticsearch.legacy-java-rest-test' +apply plugin: 'elasticsearch.internal-java-rest-test' esplugin { name = 'system-indices-qa' @@ -17,10 +17,3 @@ esplugin { licenseFile = layout.settingsDirectory.file('licenses/AGPL-3.0+SSPL-1.0+ELASTIC-LICENSE-2.0.txt').asFile noticeFile = layout.settingsDirectory.file('NOTICE.txt').asFile } - -testClusters.configureEach { - testDistribution = 'DEFAULT' - setting 'xpack.security.enabled', 'true' - setting 'xpack.security.autoconfiguration.enabled', 'false' - user username: 'rest_user', password: 'rest-user-password' -} diff --git a/qa/system-indices/src/javaRestTest/java/org/elasticsearch/system/indices/AbstractSystemIndicesIT.java b/qa/system-indices/src/javaRestTest/java/org/elasticsearch/system/indices/AbstractSystemIndicesIT.java new file mode 100644 index 000000000000..eaa21fe57a7c --- /dev/null +++ b/qa/system-indices/src/javaRestTest/java/org/elasticsearch/system/indices/AbstractSystemIndicesIT.java @@ -0,0 +1,42 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the "Elastic License + * 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +package org.elasticsearch.system.indices; + +import org.elasticsearch.common.settings.SecureString; +import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.common.util.concurrent.ThreadContext; +import org.elasticsearch.test.cluster.ElasticsearchCluster; +import org.elasticsearch.test.rest.ESRestTestCase; +import org.junit.ClassRule; + +public abstract class AbstractSystemIndicesIT extends ESRestTestCase { + protected static final String BASIC_AUTH_VALUE = basicAuthHeaderValue( + "rest_user", + new SecureString("rest-user-password".toCharArray()) + ); + + @ClassRule + public static ElasticsearchCluster cluster = ElasticsearchCluster.local() + .plugin("system-indices-qa") + .setting("xpack.security.enabled", "true") + .setting("xpack.security.autoconfiguration.enabled", "false") + .user("rest_user", "rest-user-password") + .build(); + + @Override + protected String getTestRestCluster() { + return cluster.getHttpAddresses(); + } + + @Override + protected Settings restClientSettings() { + return Settings.builder().put(ThreadContext.PREFIX + ".Authorization", BASIC_AUTH_VALUE).build(); + } +} diff --git a/qa/system-indices/src/javaRestTest/java/org/elasticsearch/system/indices/FeatureUpgradeApiIT.java b/qa/system-indices/src/javaRestTest/java/org/elasticsearch/system/indices/FeatureUpgradeApiIT.java index 25cfbd794961..62bc23ee4ad8 100644 --- a/qa/system-indices/src/javaRestTest/java/org/elasticsearch/system/indices/FeatureUpgradeApiIT.java +++ b/qa/system-indices/src/javaRestTest/java/org/elasticsearch/system/indices/FeatureUpgradeApiIT.java @@ -12,12 +12,8 @@ package org.elasticsearch.system.indices; import org.elasticsearch.client.Request; import org.elasticsearch.client.RequestOptions; import org.elasticsearch.client.Response; -import org.elasticsearch.common.settings.SecureString; -import org.elasticsearch.common.settings.Settings; -import org.elasticsearch.common.util.concurrent.ThreadContext; import org.elasticsearch.index.IndexVersion; import org.elasticsearch.test.XContentTestUtils; -import org.elasticsearch.test.rest.ESRestTestCase; import org.junit.After; import java.util.Collections; @@ -29,20 +25,13 @@ import static org.hamcrest.Matchers.hasSize; import static org.hamcrest.Matchers.instanceOf; import static org.hamcrest.Matchers.is; -public class FeatureUpgradeApiIT extends ESRestTestCase { - - static final String BASIC_AUTH_VALUE = basicAuthHeaderValue("rest_user", new SecureString("rest-user-password".toCharArray())); +public class FeatureUpgradeApiIT extends AbstractSystemIndicesIT { @After public void resetFeatures() throws Exception { client().performRequest(new Request("POST", "/_features/_reset")); } - @Override - protected Settings restClientSettings() { - return Settings.builder().put(ThreadContext.PREFIX + ".Authorization", BASIC_AUTH_VALUE).build(); - } - public void testCreatingSystemIndex() throws Exception { var request = new Request("PUT", "/_net_new_sys_index/_create"); request.setOptions(RequestOptions.DEFAULT.toBuilder().addHeader("X-elastic-product-origin", "elastic")); diff --git a/qa/system-indices/src/javaRestTest/java/org/elasticsearch/system/indices/NetNewSystemIndicesIT.java b/qa/system-indices/src/javaRestTest/java/org/elasticsearch/system/indices/NetNewSystemIndicesIT.java index d2c48d1e9b60..1f497322647d 100644 --- a/qa/system-indices/src/javaRestTest/java/org/elasticsearch/system/indices/NetNewSystemIndicesIT.java +++ b/qa/system-indices/src/javaRestTest/java/org/elasticsearch/system/indices/NetNewSystemIndicesIT.java @@ -15,24 +15,13 @@ import org.elasticsearch.client.Request; import org.elasticsearch.client.RequestOptions; import org.elasticsearch.client.Response; import org.elasticsearch.client.ResponseException; -import org.elasticsearch.common.settings.SecureString; -import org.elasticsearch.common.settings.Settings; -import org.elasticsearch.common.util.concurrent.ThreadContext; -import org.elasticsearch.test.rest.ESRestTestCase; import org.junit.After; import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.not; -public class NetNewSystemIndicesIT extends ESRestTestCase { - - static final String BASIC_AUTH_VALUE = basicAuthHeaderValue("rest_user", new SecureString("rest-user-password".toCharArray())); - - @Override - protected Settings restClientSettings() { - return Settings.builder().put(ThreadContext.PREFIX + ".Authorization", BASIC_AUTH_VALUE).build(); - } +public class NetNewSystemIndicesIT extends AbstractSystemIndicesIT { public void testCreatingSystemIndex() throws Exception { ResponseException e = expectThrows( diff --git a/qa/system-indices/src/javaRestTest/java/org/elasticsearch/system/indices/SystemAliasIT.java b/qa/system-indices/src/javaRestTest/java/org/elasticsearch/system/indices/SystemAliasIT.java index 6109a1cf9dc3..1a724fcab2b0 100644 --- a/qa/system-indices/src/javaRestTest/java/org/elasticsearch/system/indices/SystemAliasIT.java +++ b/qa/system-indices/src/javaRestTest/java/org/elasticsearch/system/indices/SystemAliasIT.java @@ -12,10 +12,6 @@ package org.elasticsearch.system.indices; import org.elasticsearch.client.Request; import org.elasticsearch.client.RequestOptions; import org.elasticsearch.client.Response; -import org.elasticsearch.common.settings.SecureString; -import org.elasticsearch.common.settings.Settings; -import org.elasticsearch.common.util.concurrent.ThreadContext; -import org.elasticsearch.test.rest.ESRestTestCase; import org.junit.After; import java.io.IOException; @@ -26,19 +22,13 @@ import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.notNullValue; -public class SystemAliasIT extends ESRestTestCase { - static final String BASIC_AUTH_VALUE = basicAuthHeaderValue("rest_user", new SecureString("rest-user-password".toCharArray())); +public class SystemAliasIT extends AbstractSystemIndicesIT { @After public void resetFeatures() throws Exception { client().performRequest(new Request("POST", "/_features/_reset")); } - @Override - protected Settings restClientSettings() { - return Settings.builder().put(ThreadContext.PREFIX + ".Authorization", BASIC_AUTH_VALUE).build(); - } - public void testCreatingSystemIndexWithAlias() throws Exception { { Request request = new Request("PUT", "/.internal-unmanaged-index-8"); diff --git a/server/src/main/java/org/elasticsearch/ingest/IngestService.java b/server/src/main/java/org/elasticsearch/ingest/IngestService.java index b4d0df780a0f..396572709f2c 100644 --- a/server/src/main/java/org/elasticsearch/ingest/IngestService.java +++ b/server/src/main/java/org/elasticsearch/ingest/IngestService.java @@ -67,7 +67,6 @@ import org.elasticsearch.core.TimeValue; import org.elasticsearch.core.Tuple; import org.elasticsearch.core.UpdateForV10; import org.elasticsearch.env.Environment; -import org.elasticsearch.features.NodeFeature; import org.elasticsearch.gateway.GatewayService; import org.elasticsearch.grok.MatcherWatchdog; import org.elasticsearch.index.IndexSettings; @@ -118,8 +117,6 @@ public class IngestService implements ClusterStateApplier, ReportingService pluginPaths = Arrays.stream(System.getProperty(TESTS_CLUSTER_PLUGINS_PATH_SYSPROP).split(File.pathSeparator)) .map(Path::of) .toList(); @@ -767,7 +767,7 @@ public abstract class AbstractLocalClusterFactory modulePaths = Arrays.stream(System.getProperty(TESTS_CLUSTER_MODULES_PATH_SYSPROP).split(File.pathSeparator)) .map(Path::of) .toList();