Alpar Torok 634a070430 Restrict which tasks can use testclusters (#45198)
* Restrict which tasks can use testclusters

This PR fixes a problem between the interaction of test-clusters and
build cache.
Before this any task could have used a cluster without tracking it as
input.
With this change a new interface is introduced to track the tasks that
can use clusters and we do consider the cluster as input for all of
them.
2019-08-09 13:38:01 +03:00

66 lines
2.4 KiB
Groovy

import org.elasticsearch.gradle.test.RestIntegTestTask
apply plugin: 'elasticsearch.testclusters'
apply plugin: 'elasticsearch.standalone-test'
dependencies {
testCompile project(path: xpackModule('core'), configuration: 'testArtifacts')
testCompile project(path: xpackModule('ccr'), configuration: 'runtime')
testCompile project(':x-pack:plugin:ccr:qa')
}
task "leader-cluster"(type: RestIntegTestTask) {
mustRunAfter(precommit)
runner {
systemProperty 'tests.target_cluster', 'leader'
}
}
testClusters."leader-cluster" {
testDistribution = 'DEFAULT'
setting 'xpack.license.self_generated.type', 'trial'
}
task "middle-cluster"(type: RestIntegTestTask) {
dependsOn "leader-cluster"
runner {
useCluster testClusters."leader-cluster"
systemProperty 'tests.target_cluster', 'middle'
nonInputProperties.systemProperty 'tests.leader_host',
"${-> testClusters."leader-cluster".getAllHttpSocketURI().get(0)}"
}
}
testClusters."middle-cluster" {
testDistribution = 'DEFAULT'
setting 'xpack.license.self_generated.type', 'trial'
setting 'cluster.remote.leader_cluster.seeds',
{ "\"${testClusters."leader-cluster".getAllTransportPortURI().join(",")}\"" }
}
task 'follow-cluster'(type: RestIntegTestTask) {
dependsOn "leader-cluster", "middle-cluster"
runner {
useCluster testClusters."leader-cluster"
useCluster testClusters."middle-cluster"
systemProperty 'tests.target_cluster', 'follow'
nonInputProperties.systemProperty 'tests.leader_host',
"${-> testClusters."leader-cluster".getAllHttpSocketURI().get(0)}"
nonInputProperties.systemProperty 'tests.middle_host',
"${-> testClusters."middle-cluster".getAllHttpSocketURI().get(0)}"
}
}
testClusters."follow-cluster" {
testDistribution = 'DEFAULT'
setting 'xpack.monitoring.collection.enabled', 'true'
setting 'xpack.license.self_generated.type', 'trial'
setting 'cluster.remote.leader_cluster.seeds',
{ "\"${testClusters."leader-cluster".getAllTransportPortURI().join(",")}\""}
setting 'cluster.remote.middle_cluster.seeds',
{ "\"${testClusters."middle-cluster".getAllTransportPortURI().join(",")}\""}
}
check.dependsOn "follow-cluster"
test.enabled = false // no unit tests for multi-cluster-search, only the rest integration test