1
1
package org.elasticsearch.gradle
2
2
3
+ import org.gradle.api.DefaultTask
3
4
import org.gradle.api.GradleException
4
5
import org.gradle.api.Project
5
6
import org.gradle.api.Task
@@ -33,16 +34,21 @@ class ClusterFormationTasks {
33
34
34
35
static void addNodeStartupTasks (Task task , ClusterConfiguration config , File baseDir ) {
35
36
Project project = task. project
36
- Task install = project. tasks. create(name : task. name + ' #setup' , type : Copy , dependsOn : project. configurations. elasticsearchZip. buildDependencies) {
37
+ String clusterName = " ${ task.path.replace(':', '_').substring(1)} "
38
+ File home = new File (baseDir, " elasticsearch-${ ElasticsearchProperties.version} " )
39
+ Task setup = project. tasks. create(name : task. name + ' #setup' , type : Copy , dependsOn : project. configurations. elasticsearchZip. buildDependencies) {
37
40
from project. zipTree(project. configurations. elasticsearchZip. asPath)
38
41
into baseDir
39
42
}
40
- File home = new File (baseDir, " elasticsearch- ${ ElasticsearchProperties.version } " )
41
- Task clean = project. tasks. create(name : " ${ task.name} #clean" , type : Delete , dependsOn : install ) {
43
+ // chain setup tasks to maintain their order
44
+ setup = project. tasks. create(name : " ${ task.name} #clean" , type : Delete , dependsOn : setup ) {
42
45
delete new File (home, ' plugins' ), new File (home, ' data' ), new File (home, ' logs' )
43
46
}
44
-
45
- Task setup = clean // chain setup tasks to maintain their order
47
+ setup = project. tasks. create(name : " ${ task.name} #configure" , type : DefaultTask , dependsOn : setup) << {
48
+ File configFile = new File (home, ' config' + File . separator + ' elasticsearch.yml' )
49
+ logger. info(" Configuring ${ configFile} " )
50
+ configFile. text = " cluster.name: ${ clusterName} "
51
+ }
46
52
for (Map.Entry < String , String > command : config. setupConfig. commands. entrySet()) {
47
53
Task nextSetup = project. tasks. create(name : " ${ task.name} #${ command.getKey()} " , type : Exec , dependsOn : setup) {
48
54
workingDir home
@@ -64,15 +70,13 @@ class ClusterFormationTasks {
64
70
setup = nextSetup
65
71
}
66
72
67
- String clusterName = " test${ task.path.replace(':', '_')} "
68
73
File pidFile = pidFile(baseDir)
69
74
Task start = project. tasks. create(name : " ${ task.name} #start" , type : Exec , dependsOn : setup) {
70
75
workingDir home
71
76
executable ' sh'
72
77
List esArgs = [
73
78
' bin/elasticsearch' ,
74
79
' -d' , // daemonize!
75
- " -Des.cluster.name=${ clusterName} " ,
76
80
" -Des.http.port=${ config.httpPort} " ,
77
81
" -Des.transport.tcp.port=${ config.transportPort} " ,
78
82
" -Des.pidfile=${ pidFile} " ,
0 commit comments