mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-07 21:48:39 +00:00
aece28c286
After a write operation on an index, a post-operation global checkpoint sync fires. Previously, this action fired on the same user as executed the write action. If the user did not have priviledges for this action, the global checkpoint sync would fail. With an upstream change in core, this action now fires as the system user. This commit adds a test that create a user that has minimal write permissions on an index, but none that would imply it could execute the global checkpoint sync. This then serves as a test that the upstream change to fire the global checkpoint sync as the system user is correct. This test must run as a mulit-node test so that a replica is a assigned so that the global checkpoint sync fires in the first place. This test does indeed fail without the upstream change, and passes with it. Relates elastic/x-pack-elasticsearch#2744 Original commit: elastic/x-pack-elasticsearch@bf7e771756
39 lines
1.4 KiB
Groovy
39 lines
1.4 KiB
Groovy
import org.elasticsearch.gradle.test.RestIntegTestTask
|
|
|
|
apply plugin: 'elasticsearch.standalone-test'
|
|
|
|
dependencies {
|
|
testCompile project(path: ':x-pack-elasticsearch:plugin', configuration: 'runtime')
|
|
testCompile project(path: ':x-pack-elasticsearch:plugin', configuration: 'testArtifacts')
|
|
}
|
|
|
|
task multiNodeTest(type: RestIntegTestTask) {
|
|
mustRunAfter(precommit)
|
|
}
|
|
|
|
multiNodeTestCluster {
|
|
distribution = 'zip'
|
|
numNodes = 2
|
|
clusterName = 'multi-node'
|
|
plugin ':x-pack-elasticsearch:plugin'
|
|
setting 'xpack.watcher.enabled', 'false'
|
|
setting 'xpack.monitoring.enabled', 'false'
|
|
setting 'xpack.ml.enabled', 'false'
|
|
extraConfigFile 'x-pack/roles.yml', 'roles.yml'
|
|
setupCommand 'setup-test-user', 'bin/x-pack/users', 'useradd', 'test-user', '-p', 'x-pack-test-password', '-r', 'test'
|
|
setupCommand 'setup-super-user', 'bin/x-pack/users', 'useradd', 'super-user', '-p', 'x-pack-super-password', '-r', 'superuser'
|
|
waitCondition = { node, ant ->
|
|
File tmpFile = new File(node.cwd, 'wait.success')
|
|
ant.get(src: "http://${node.httpUri()}/_cluster/health?wait_for_nodes=>=${numNodes}&wait_for_status=yellow",
|
|
dest: tmpFile.toString(),
|
|
username: 'super-user',
|
|
password: 'x-pack-super-password',
|
|
ignoreerrors: true,
|
|
retries: 10)
|
|
return tmpFile.exists()
|
|
}
|
|
}
|
|
|
|
test.enabled = false // no unit tests for multi-node, only the rest integration test
|
|
check.dependsOn(multiNodeTest)
|