import org.elasticsearch.gradle.MavenFilteringHack import org.elasticsearch.gradle.LoggedExec import org.elasticsearch.gradle.MavenFilteringHack apply plugin: 'elasticsearch.rest-test' dependencies { testCompile project(path: ':x-plugins:elasticsearch:x-pack', configuration: 'runtime') } // location of keystore and files to generate it File keystore = new File(project.buildDir, 'keystore/test-node.jks') // generate the keystore task createKey(type: LoggedExec) { doFirst { project.delete(keystore.parentFile) keystore.parentFile.mkdirs() } executable = 'keytool' standardInput = new ByteArrayInputStream('FirstName LastName\nUnit\nOrganization\nCity\nState\nNL\nyes\n\n'.getBytes('UTF-8')) args '-genkey', '-alias', 'test-node', '-keystore', keystore, '-keyalg', 'RSA', '-keysize', '2048', '-validity', '712', '-ext', 'san=dns:localhost,ip:127.0.0.1', '-storepass', 'keypass' } // add keystore to test classpath: it expects it there sourceSets.test.resources.srcDir(keystore.parentFile) processTestResources.dependsOn(createKey) ext.pluginsCount = 4 // we install xplugins explicitly project.rootProject.subprojects.findAll { it.path.startsWith(':plugins:') }.each { subproj -> // need to get a non-decorated project object, so must re-lookup the project by path integTest.cluster.plugin(subproj.name, project(subproj.path)) pluginsCount += 1 } integTest { cluster { // TODO: use some variable here for port number systemProperty 'es.marvel.agent.exporter.es.hosts', 'https://marvel_export:changeme@localhost:9400' systemProperty 'es.marvel.agent.exporter.es.ssl.truststore.path', keystore.name systemProperty 'es.marvel.agent.exporter.es.ssl.truststore.password', 'keypass' systemProperty 'es.shield.transport.ssl', 'true' systemProperty 'es.shield.http.ssl', 'true' systemProperty 'es.shield.ssl.keystore.path', keystore.name systemProperty 'es.shield.ssl.keystore.password', 'keypass' plugin 'x-pack', project(':x-plugins:elasticsearch:x-pack') // copy keystore into config/ extraConfigFile keystore.name, keystore setupCommand 'setupTestUser', 'bin/x-pack/esusers', 'useradd', 'test_user', '-p', 'changeme', '-r', 'admin' setupCommand 'setupMarvelUser', 'bin/x-pack/esusers', 'useradd', 'marvel_export', '-p', 'changeme', '-r', 'marvel_agent' waitCondition = { node, ant -> // we just return true, doing an https check is tricky here return true } } } ext.expansions = [ 'expected.plugins.count': pluginsCount ] processTestResources { from(sourceSets.test.resources.srcDirs) { include '**/*.yaml' inputs.properties(expansions) MavenFilteringHack.filter(it, expansions) } }