@@ -28,13 +28,12 @@ import org.elasticsearch.hadoop.gradle.fixture.hadoop.conf.HadoopClusterConfigur
28
28
import org.elasticsearch.hadoop.gradle.fixture.hadoop.conf.InstanceConfiguration
29
29
import org.elasticsearch.hadoop.gradle.fixture.hadoop.conf.RoleConfiguration
30
30
import org.elasticsearch.hadoop.gradle.fixture.hadoop.conf.ServiceConfiguration
31
- import org.elasticsearch.hadoop.gradle.tasks.ApacheMirrorDownload
32
- import org.elasticsearch.hadoop.gradle.tasks.VerifyChecksums
33
31
import org.gradle.api.AntBuilder
34
32
import org.gradle.api.DefaultTask
35
33
import org.gradle.api.GradleException
36
34
import org.gradle.api.Project
37
35
import org.gradle.api.Task
36
+ import org.gradle.api.artifacts.Configuration
38
37
import org.gradle.api.logging.Logger
39
38
import org.gradle.api.tasks.Copy
40
39
import org.gradle.api.tasks.Delete
@@ -59,14 +58,6 @@ class HadoopClusterFormationTasks {
59
58
Task stopTask
60
59
}
61
60
62
- /**
63
- * Pairing of download and verification tasks for a distribution
64
- */
65
- static class DistributionTasks {
66
- ApacheMirrorDownload download
67
- VerifyChecksums verify
68
- }
69
-
70
61
/**
71
62
* Adds dependent tasks to the given task to start and stop a cluster with the given configuration.
72
63
* <p >
@@ -104,7 +95,7 @@ class HadoopClusterFormationTasks {
104
95
for (ServiceConfiguration serviceConfiguration : clusterConfiguration. getServices()) {
105
96
106
97
// Get the download task for this service's package and add it to the service's dependency tasks
107
- DistributionTasks distributionTasks = getOrConfigureDistributionDownload(project, serviceConfiguration)
98
+ Configuration distributionConfiguration = getOrConfigureDistributionDownload(project, serviceConfiguration)
108
99
109
100
// Keep track of the start tasks in this service
110
101
List<TaskPair > serviceTaskPairs = []
@@ -140,7 +131,7 @@ class HadoopClusterFormationTasks {
140
131
TaskPair instanceTasks
141
132
try {
142
133
instanceTasks = configureNode(project, prefix, instanceDependencies, instanceInfo,
143
- distributionTasks )
134
+ distributionConfiguration )
144
135
} catch (Exception e) {
145
136
throw new GradleException (
146
137
" Exception occurred while initializing instance [${ instanceInfo.toString()} ]" , e)
@@ -207,36 +198,21 @@ class HadoopClusterFormationTasks {
207
198
* either an already created one from the root project, or a newly created download task. These also contain the
208
199
* verify task to ensure the download has been securely captured.
209
200
*/
210
- static DistributionTasks getOrConfigureDistributionDownload (Project project , ServiceConfiguration serviceConfiguration ) {
201
+ static Configuration getOrConfigureDistributionDownload (Project project , ServiceConfiguration serviceConfiguration ) {
211
202
Version serviceVersion = serviceConfiguration. getVersion()
212
203
213
- String downloadTaskName = " download${ serviceConfiguration.serviceDescriptor.packageName().capitalize()} #${ serviceVersion} "
214
- String verifyTaskName = " verify${ serviceConfiguration.serviceDescriptor.packageName().capitalize()} #${ serviceVersion} "
215
-
216
- ApacheMirrorDownload downloadTask = project. rootProject. tasks. findByName(downloadTaskName) as ApacheMirrorDownload
217
- if (downloadTask == null ) {
218
- downloadTask = project. rootProject. tasks. create(name : downloadTaskName, type : ApacheMirrorDownload ) as ApacheMirrorDownload
219
- serviceConfiguration. getServiceDescriptor(). configureDownload(downloadTask, serviceConfiguration)
220
- downloadTask. group = ' downloads'
221
- downloadTask. onlyIf { ! downloadTask. outputFile(). exists() }
222
- }
223
-
224
- VerifyChecksums verifyTask = project. rootProject. tasks. findByName(verifyTaskName) as VerifyChecksums
225
- if (verifyTask == null ) {
226
- verifyTask = project. rootProject. tasks. create(name : verifyTaskName, type : VerifyChecksums ) as VerifyChecksums
227
- verifyTask. group = ' downloads'
228
- verifyTask. dependsOn downloadTask
229
- verifyTask. inputFile downloadTask. outputFile()
230
- for (Map.Entry < String , String > hash : serviceConfiguration. serviceDescriptor. packageHashVerification(serviceVersion)) {
231
- verifyTask. checksum hash. key, hash. value
232
- }
204
+ String configurationName = " download${ serviceConfiguration.serviceDescriptor.packageName().capitalize()} #${ serviceVersion} "
205
+ Configuration configuration = project. configurations. findByName(configurationName)
206
+ if (configuration == null ) {
207
+ configuration = project. configurations. create(configurationName)
208
+ project. dependencies. add(configurationName, serviceConfiguration. getServiceDescriptor(). getDependencyCoordinates(serviceConfiguration))
233
209
}
234
210
235
- return new DistributionTasks ( download : downloadTask, verify : verifyTask)
211
+ return configuration
236
212
}
237
213
238
214
static TaskPair configureNode (Project project , String prefix , Object dependsOn , InstanceInfo node ,
239
- DistributionTasks distribution ) {
215
+ Configuration distributionConfiguration ) {
240
216
Task setup = project. tasks. create(name : taskName(prefix, node, ' clean' ), type : Delete , dependsOn : dependsOn) {
241
217
delete node. homeDir
242
218
delete node. cwd
@@ -257,7 +233,7 @@ class HadoopClusterFormationTasks {
257
233
}
258
234
259
235
// Always extract the package contents, and configure the files
260
- setup = configureExtractTask(taskName(prefix, node, ' extract' ), project, setup, node, distribution )
236
+ setup = configureExtractTask(taskName(prefix, node, ' extract' ), project, setup, node, distributionConfiguration )
261
237
setup = configureWriteConfigTask(taskName(prefix, node, ' configure' ), project, setup, node)
262
238
setup = configureExtraConfigFilesTask(taskName(prefix, node, ' extraConfig' ), project, setup, node)
263
239
@@ -329,13 +305,13 @@ class HadoopClusterFormationTasks {
329
305
return setup
330
306
}
331
307
332
- static Task configureExtractTask (String name , Project project , Task setup , InstanceInfo node , DistributionTasks distribution ) {
333
- List extractDependsOn = [distribution . verify , setup]
308
+ static Task configureExtractTask (String name , Project project , Task setup , InstanceInfo node , Configuration distributionConfiguration ) {
309
+ List extractDependsOn = [distributionConfiguration , setup]
334
310
return project. tasks. create(name : name, type : Copy , dependsOn : extractDependsOn) {
335
311
group = ' hadoopFixture'
336
312
// TODO: Switch logic if a service is ever not a tar distribution
337
313
from {
338
- project. tarTree(project. resources. gzip(distribution . download . outputFile ()))
314
+ project. tarTree(project. resources. gzip(distributionConfiguration . files . first ()))
339
315
}
340
316
into node. baseDir
341
317
}
0 commit comments