elasticsearch/x-pack/qa/multi-project/core-rest-tests-with-multiple-projects/build.gradle
Yang Wang e1c930f8c1
Make RepositoriesService project-aware (#129821)
This PR makes RepositoriesService project aware so that the basic Put,
Get, Delete and Verify repository actions are now project scoped. 

It intentionally leaves the following aspects out of scope for the
current changes: * Repository stats reporting * Repository clean-up,
analysis and integrity verification * Repository usages for searchable
snapshots and CCR

They will be worked on separately. One main reason for leaving them out
is that they are not needed by OBS which is currently blocked by
repository/snapshot changes. They may also have their own complexities,
e.g. stats reporting.

Resolves: ES-10478
2025-06-25 10:34:34 +10:00

96 lines
4.4 KiB
Groovy

apply plugin: 'elasticsearch.internal-yaml-rest-test'
/*
* 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".
*/
import org.elasticsearch.gradle.util.GradleUtils
dependencies {
testImplementation project(':x-pack:qa')
testImplementation project(':x-pack:qa:multi-project:yaml-test-framework')
clusterModules project(':modules:mapper-extras')
clusterModules project(':modules:rank-eval')
clusterModules project(':modules:ingest-common')
clusterModules project(':modules:reindex')
clusterModules project(':modules:analysis-common')
clusterModules project(':modules:health-shards-availability')
clusterModules project(':modules:data-streams')
clusterModules project(':modules:lang-mustache')
clusterModules project(':modules:parent-join')
clusterModules project(':modules:streams')
clusterModules project(xpackModule('stack'))
clusterModules project(xpackModule('ilm'))
clusterModules project(xpackModule('mapper-constant-keyword'))
clusterModules project(xpackModule('wildcard'))
clusterModules project(':test:external-modules:test-multi-project')
restTestConfig project(path: ':modules:data-streams', configuration: "basicRestSpecs")
restTestConfig project(path: ':modules:ingest-common', configuration: "basicRestSpecs")
restTestConfig project(path: ':modules:reindex', configuration: "basicRestSpecs")
restTestConfig project(path: ':modules:streams', configuration: "basicRestSpecs")
}
// let the yamlRestTests see the classpath of test
GradleUtils.extendSourceSet(project, "test", "yamlRestTest", tasks.named("yamlRestTest"))
restResources {
restTests {
includeCore '*'
}
}
tasks.named("yamlRestTest").configure {
ArrayList<String> blacklist = [
/* These tests don't work on multi-project yet - we need to go through each of them and make them work */
'^cat.recovery/*/*',
'^cat.repositories/*/*',
'^cat.snapshots/*/*',
'^cluster.desired_balance/10_basic/*',
'^cluster.stats/10_basic/snapshot stats reported in get cluster stats',
'^data_stream/40_supported_apis/Verify shard stores api', // uses _shard_stores API
'^health/10_basic/*',
'^indices.get_alias/10_basic/Get alias against closed indices', // Does NOT work with security enabled, see also core-rest-tests-with-security
'^indices.recovery/*/*',
'^indices.resolve_cluster/*/*',
'^indices.resolve_cluster/*/*/*',
'^indices.shard_stores/*/*',
'^migration/*/*',
'^nodes.stats/70_repository_throttling_stats/Repository throttling stats (some repositories exist)',
'^snapshot.clone/*/*',
'^snapshot.create/*/*',
'^snapshot.delete/*/*',
'^snapshot.get/*/*',
'^snapshot.get_repository/*/*',
'^snapshot.restore/*/*',
'^snapshot.status/*/*',
'^synonyms/*/*',
'^tsdb/30_snapshot/*',
'^update_by_query/80_scripting/Update all docs with one deletion and one noop using a stored script', // scripting is not project aware yet
// The following tests are muted because the functionality that they are testing is not available in a multi-project setup
// The node removal prevalidation is only available for a Stateful deployment.
'^cluster.prevalidate_node_removal/*/*',
// This behaviour doesn't work with security: https://github.com/elastic/elasticsearch/issues/120252
'^reindex/30_search/Sorting deprecated wait_for_completion false',
// These tests assume we are running on a single node
'^delete_by_query/50_wait_for_active_shards/can override wait_for_active_shards',
'^update_by_query/50_consistency/can override wait_for_active_shards',
// Reindex from remote is not supported on Serverless and required additional testing setup
'^reindex/60_wait_for_active_shards/can override wait_for_active_shards', // <- Requires a single shard
'^reindex/90_remote/*',
'^reindex/95_parent_join/Reindex from remote*',
];
if (buildParams.snapshotBuild == false) {
blacklist += [];
}
systemProperty 'tests.rest.blacklist', blacklist.join(',')
systemProperty "tests.multi_project.enabled", true
}