@@ -32,7 +32,7 @@ class VagrantTestPlugin implements Plugin<Project> {
32
32
]
33
33
34
34
/* * Windows boxes that are available - map of box names to image IDs **/
35
- static Map <String , String > WINDOWS_BOXES = [: ]
35
+ static List <String > WINDOWS_BOXES = []
36
36
37
37
/* * All available boxes **/
38
38
static List<String > BOXES
@@ -44,7 +44,7 @@ class VagrantTestPlugin implements Plugin<Project> {
44
44
]
45
45
46
46
/* * extra env vars to pass to vagrant for box configuration **/
47
- static Map<String , String > VAGRANT_ENV_VARS = [:]
47
+ static Map<String , String > VAGRANT_BOX_ENV_VARS = [:]
48
48
49
49
/* * All distributions to bring into test VM, whether or not they are used **/
50
50
static List<String > DISTRIBUTIONS = [
@@ -65,11 +65,13 @@ class VagrantTestPlugin implements Plugin<Project> {
65
65
private static final String BATS_TEST_COMMAND = " cd \$ PACKAGING_ARCHIVES && sudo bats --tap \$ BATS_TESTS/*.$BATS "
66
66
private static final String PLATFORM_TEST_COMMAND = " rm -rf ~/elasticsearch && rsync -r /elasticsearch/ ~/elasticsearch && cd ~/elasticsearch && ./gradlew test integTest"
67
67
68
+ static {
69
+ collectAvailableBoxes()
70
+ }
71
+
68
72
@Override
69
73
void apply (Project project ) {
70
74
71
- collectAvailableBoxes(project)
72
-
73
75
// Creates the Vagrant extension for the project
74
76
project. extensions. create(' esvagrant' , VagrantPropertiesExtension , listSelectedBoxes(project))
75
77
@@ -100,20 +102,20 @@ class VagrantTestPlugin implements Plugin<Project> {
100
102
/**
101
103
* Enumerate all the boxes that we know about and could possibly choose to test
102
104
*/
103
- private static void collectAvailableBoxes (Project project ) {
105
+ private static void collectAvailableBoxes () {
104
106
String windows_2012r2_box = System . getenv(' VAGRANT_WINDOWS_2012R2_BOX' )
105
107
if (windows_2012r2_box != null && windows_2012r2_box. isEmpty() == false ) {
106
- WINDOWS_BOXES [ ' windows-2012r2' ] = windows_2012r2_box
107
- VAGRANT_ENV_VARS [' VAGRANT_WINDOWS_2012R2_BOX' ] = windows_2012r2_box
108
+ WINDOWS_BOXES . add( ' windows-2012r2' )
109
+ VAGRANT_BOX_ENV_VARS [' VAGRANT_WINDOWS_2012R2_BOX' ] = windows_2012r2_box
108
110
}
109
111
110
112
String windows_2016_box = System . getenv(' VAGRANT_WINDOWS_2016_BOX' )
111
113
if (windows_2016_box != null && windows_2016_box. isEmpty() == false ) {
112
- WINDOWS_BOXES [ ' windows-2016' ] = windows_2016_box
113
- VAGRANT_ENV_VARS [' VAGRANT_WINDOWS_2016_BOX' ] = windows_2016_box
114
+ WINDOWS_BOXES . add( ' windows-2016' )
115
+ VAGRANT_BOX_ENV_VARS [' VAGRANT_WINDOWS_2016_BOX' ] = windows_2016_box
114
116
}
115
117
116
- BOXES = LINUX_BOXES + WINDOWS_BOXES . keySet()
118
+ BOXES = LINUX_BOXES + WINDOWS_BOXES
117
119
}
118
120
119
121
/**
@@ -127,7 +129,7 @@ class VagrantTestPlugin implements Plugin<Project> {
127
129
case ' linux-all' :
128
130
return LINUX_BOXES
129
131
case ' windows-all' :
130
- return WINDOWS_BOXES . keySet() . toList()
132
+ return WINDOWS_BOXES
131
133
case ' all' :
132
134
return BOXES
133
135
default :
@@ -341,20 +343,6 @@ class VagrantTestPlugin implements Plugin<Project> {
341
343
createPlatformTestTask(project)
342
344
}
343
345
344
- private static Map<String , String > vagrantEnvVars (Project project ) {
345
- /*
346
- * We always use the main project.rootDir as Vagrant's current working directory (VAGRANT_CWD)
347
- * so that boxes are not duplicated for every Gradle project that use this VagrantTestPlugin.
348
- */
349
- def vagrantEnvVars = [
350
- ' VAGRANT_CWD' : " ${ project.rootDir.absolutePath} " ,
351
- ' VAGRANT_VAGRANTFILE' : ' Vagrantfile' ,
352
- ' VAGRANT_PROJECT_DIR' : " ${ project.projectDir.absolutePath} "
353
- ]
354
- vagrantEnvVars. putAll(VAGRANT_ENV_VARS )
355
- return vagrantEnvVars
356
- }
357
-
358
346
private static void createVagrantBoxesTasks (Project project ) {
359
347
assert project. extensions. esvagrant. boxes != null
360
348
@@ -379,7 +367,15 @@ class VagrantTestPlugin implements Plugin<Project> {
379
367
assert project. tasks. platformTest != null
380
368
Task platformTest = project. tasks. platformTest
381
369
382
- def vagrantEnvVars = vagrantEnvVars(project)
370
+ /*
371
+ * We always use the main project.rootDir as Vagrant's current working directory (VAGRANT_CWD)
372
+ * so that boxes are not duplicated for every Gradle project that use this VagrantTestPlugin.
373
+ */
374
+ def vagrantEnvVars = [
375
+ ' VAGRANT_CWD' : " ${ project.rootDir.absolutePath} " ,
376
+ ' VAGRANT_VAGRANTFILE' : ' Vagrantfile' ,
377
+ ' VAGRANT_PROJECT_DIR' : " ${ project.projectDir.absolutePath} "
378
+ ] + VAGRANT_BOX_ENV_VARS
383
379
384
380
// Each box gets it own set of tasks
385
381
for (String box : BOXES ) {
0 commit comments