mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-25 14:26:27 +00:00
We were previously configuring BWC testing tasks by matching on task name prefix. This naive approach breaks down when you have versions like 1.0.1 and 1.0.10 since they both share a common prefix. This commit makes the pattern matching more specific so we won't inadvertently spin up the wrong cluster version.
97 lines
3.8 KiB
Groovy
97 lines
3.8 KiB
Groovy
import org.elasticsearch.gradle.Version
|
|
import org.elasticsearch.gradle.info.BuildParams
|
|
import org.elasticsearch.gradle.testclusters.RestTestRunnerTask
|
|
|
|
apply plugin: 'elasticsearch.testclusters'
|
|
apply plugin: 'elasticsearch.standalone-test'
|
|
apply from : "$rootDir/gradle/bwc-test.gradle"
|
|
|
|
dependencies {
|
|
testCompile project(':x-pack:qa')
|
|
}
|
|
|
|
for (Version bwcVersion : BuildParams.bwcVersions.wireCompatible) {
|
|
String baseName = "v${bwcVersion}"
|
|
|
|
testClusters {
|
|
"${baseName}-leader" {
|
|
numberOfNodes = 3
|
|
}
|
|
"${baseName}-follower" {
|
|
numberOfNodes = 3
|
|
}
|
|
}
|
|
testClusters.matching { it.name.startsWith("${baseName}-") }.all {
|
|
testDistribution = "DEFAULT"
|
|
versions = [bwcVersion.toString(), project.version]
|
|
|
|
setting 'repositories.url.allowed_urls', 'http://snapshot.test*'
|
|
setting 'xpack.security.enabled', 'false'
|
|
setting 'xpack.ml.enabled', 'false'
|
|
setting 'xpack.watcher.enabled', 'false'
|
|
setting 'xpack.license.self_generated.type', 'trial'
|
|
}
|
|
|
|
tasks.withType(RestTestRunnerTask).matching { it.name.startsWith("${baseName}#") }.all {
|
|
useCluster testClusters."${baseName}-leader"
|
|
useCluster testClusters."${baseName}-follower"
|
|
systemProperty 'tests.upgrade_from_version', bwcVersion.toString().replace('-SNAPSHOT', '')
|
|
|
|
doFirst {
|
|
if (name.endsWith("#clusterTest") == false) {
|
|
println "Upgrade node $it"
|
|
testClusters."${baseName}-${kindExt}".nextNodeToNextVersion()
|
|
}
|
|
nonInputProperties.systemProperty('tests.rest.cluster', "${-> testClusters."${baseName}-${kindExt}".allHttpSocketURI.join(",")}")
|
|
nonInputProperties.systemProperty('tests.clustername', "${-> testClusters."${baseName}-${kindExt}".getName()}")
|
|
nonInputProperties.systemProperty('tests.leader_host', "${-> testClusters."${baseName}-leader".allHttpSocketURI.last()}")
|
|
nonInputProperties.systemProperty('tests.leader_remote_cluster_seed', "${-> testClusters."${baseName}-leader".allTransportPortURI.last()}")
|
|
nonInputProperties.systemProperty('tests.follower_host', "${-> testClusters."${baseName}-follower".allHttpSocketURI.last()}")
|
|
nonInputProperties.systemProperty('tests.follower_remote_cluster_seed', "${-> testClusters."${baseName}-follower".allTransportPortURI.last()}")
|
|
}
|
|
}
|
|
|
|
for (kind in ["follower", "leader"]) {
|
|
// Attention!! Groovy trap: do not pass `kind` to a closure
|
|
|
|
tasks.register("${baseName}#${kind}#clusterTest", RestTestRunnerTask) {
|
|
systemProperty 'tests.rest.upgrade_state', 'none'
|
|
systemProperty 'tests.rest.cluster_name', kind
|
|
ext.kindExt = kind
|
|
}
|
|
|
|
tasks.register("${baseName}#${kind}#oneThirdUpgradedTest", RestTestRunnerTask) {
|
|
systemProperty 'tests.rest.upgrade_state', 'one_third'
|
|
systemProperty 'tests.rest.cluster_name', kind
|
|
dependsOn "${baseName}#leader#clusterTest", "${baseName}#follower#clusterTest"
|
|
ext.kindExt = kind
|
|
}
|
|
|
|
tasks.register("${baseName}#${kind}#twoThirdsUpgradedTest", RestTestRunnerTask) {
|
|
systemProperty 'tests.rest.upgrade_state', 'two_third'
|
|
systemProperty 'tests.rest.cluster_name', kind
|
|
dependsOn "${baseName}#${kind}#oneThirdUpgradedTest"
|
|
ext.kindExt = kind
|
|
}
|
|
|
|
tasks.create("${baseName}#${kind}#upgradedClusterTest", RestTestRunnerTask) {
|
|
systemProperty 'tests.rest.upgrade_state', 'all'
|
|
systemProperty 'tests.rest.cluster_name', kind
|
|
dependsOn "${baseName}#${kind}#twoThirdsUpgradedTest"
|
|
ext.kindExt = kind
|
|
}
|
|
}
|
|
|
|
tasks.named("${baseName}#follower#clusterTest") {
|
|
dependsOn "${baseName}#leader#clusterTest"
|
|
}
|
|
|
|
tasks.named("${baseName}#leader#oneThirdUpgradedTest") {
|
|
dependsOn "${baseName}#follower#upgradedClusterTest"
|
|
}
|
|
|
|
tasks.register(bwcTaskName(bwcVersion)) {
|
|
dependsOn "${baseName}#leader#upgradedClusterTest"
|
|
}
|
|
}
|