@@ -20,6 +20,12 @@ buildscript {
2020        common_utils_version =  System . getProperty(" common_utils.version" 
2121        job_scheduler_version =  System . getProperty(" job_scheduler_version.version" 
2222        kotlin_version =  System . getProperty(" kotlin.version" " 1.4.0" 
23+ 
24+         opensearch_no_snapshot =  opensearch_version. replace(" -SNAPSHOT" " " 
25+         job_scheduler_no_snapshot =  job_scheduler_version. replace(" -SNAPSHOT" " " 
26+         job_scheduler_resource_folder =  " src/test/resources/job-scheduler" 
27+         job_scheduler_build_download =  ' https://ci.opensearch.org/ci/dbc/distribution-build-opensearch/' +  opensearch_no_snapshot + 
28+                 ' /latest/linux/x64/tar/builds/opensearch/plugins/opensearch-job-scheduler-' +  job_scheduler_no_snapshot +  ' .zip' 
2329    }
2430
2531    repositories {
@@ -228,6 +234,14 @@ test {
228234    systemProperty ' tests.security.manager' ' false' 
229235}
230236
237+ ext. getPluginResource =  { download_to_folder , download_from_src  -> 
238+     project. mkdir download_to_folder
239+     ant. get(src : download_from_src,
240+             dest : download_to_folder,
241+             httpusecaches : false )
242+     return  fileTree(download_to_folder). getSingleFile()
243+ }
244+ 
231245File  repo =  file(" $buildDir  /testclusters/repo" 
232246def  _numNodes =  findProperty(' numNodes' as  Integer  ?:  1 
233247testClusters. integTest  {
@@ -245,10 +259,23 @@ testClusters.integTest {
245259            debugPort + =  1 
246260        }
247261    }
248-     plugin(provider({
249-         new  RegularFile () {
250-             @Override 
251-             File  getAsFile () { fileTree(" src/test/resources/job-scheduler" . getSingleFile() }
262+ 
263+     plugin(provider(new  Callable<RegularFile > (){
264+         @Override 
265+         RegularFile  call () throws  Exception  {
266+             return  new  RegularFile () {
267+                 @Override 
268+                 File  getAsFile () {
269+                     if  (new  File (" $project . rootDir  /$job_scheduler_resource_folder  " . exists()) {
270+                         project. delete(files(" $project . rootDir  /$job_scheduler_resource_folder  " 
271+                     }
272+                     project. mkdir job_scheduler_resource_folder
273+                     ant. get(src : job_scheduler_build_download,
274+                             dest : job_scheduler_resource_folder,
275+                             httpusecaches : false )
276+                     return  fileTree(job_scheduler_resource_folder). getSingleFile()
277+                 }
278+             }
252279        }
253280    }))
254281
@@ -346,7 +373,7 @@ String bwcFilePath = "src/test/resources/bwc/"
346373    testClusters {
347374        " ${ baseName} $i " 
348375            testDistribution =  " ARCHIVE" 
349-             versions =  [" 7.10.2" " 1.3.4-SNAPSHOT " 
376+             versions =  [" 7.10.2" opensearch_version ]
350377            numberOfNodes =  3 
351378            plugin(provider(new  Callable<RegularFile > (){
352379                @Override 
@@ -384,14 +411,16 @@ List<Provider<RegularFile>> plugins = []
384411task prepareBwcTests  {
385412    dependsOn bundlePlugin
386413    doLast {
414+         //  Download the job scheduler test dependency
415+         getPluginResource(job_scheduler_resource_folder, job_scheduler_build_download)
387416        plugins =  [
388417                provider(new  Callable<RegularFile > (){
389418                    @Override 
390419                    RegularFile  call () throws  Exception  {
391420                        return  new  RegularFile () {
392421                            @Override 
393422                            File  getAsFile () {
394-                                 return  fileTree(" src/test/resources/job-scheduler " . getSingleFile()
423+                                 return  fileTree(job_scheduler_resource_folder ). getSingleFile()
395424                            }
396425                        }
397426                    }
@@ -539,7 +568,7 @@ testClusters.mixedCluster {
539568        node. plugin(provider({
540569            new  RegularFile () {
541570                @Override 
542-                 File  getAsFile () { fileTree(" src/test/resources/job-scheduler " . getSingleFile() }
571+                 File  getAsFile () { fileTree(job_scheduler_resource_folder ). getSingleFile() }
543572            }
544573        }))
545574
@@ -553,7 +582,6 @@ testClusters.mixedCluster {
553582        } else  {
554583            node. plugin(project. tasks. bundlePlugin. archiveFile)
555584        }
556-         node. plugins. each { println (" plugin in the node: ${ it.get()} " 
557585    }
558586    setting ' path.repo' . absolutePath
559587}
0 commit comments