diff --git a/plugins/repository-hdfs/build.gradle b/plugins/repository-hdfs/build.gradle index 1b9d61f5515ee..698bc06bcc1a1 100644 --- a/plugins/repository-hdfs/build.gradle +++ b/plugins/repository-hdfs/build.gradle @@ -87,7 +87,7 @@ for (String fixtureName : ['hdfsFixture', 'haHdfsFixture', 'secureHdfsFixture', // the hdfs.MiniHDFS fixture writes the ports file when // it's ready, so we can just wait for the file to exist return fixture.portsFile.exists() - } + } final List miniHDFSArgs = [] @@ -121,20 +121,29 @@ for (String fixtureName : ['hdfsFixture', 'haHdfsFixture', 'secureHdfsFixture', } } +Set disabledIntegTestTaskNames = ['integTestSecure', 'integTestSecureHa'] + for (String integTestTaskName : ['integTestHa', 'integTestSecure', 'integTestSecureHa']) { task "${integTestTaskName}"(type: RestIntegTestTask) { description = "Runs rest tests against an elasticsearch cluster with HDFS." dependsOn(project.bundlePlugin) + + if (disabledIntegTestTaskNames.contains(integTestTaskName)) { + enabled = false; + } + runner { if (integTestTaskName.contains("Secure")) { - dependsOn secureHdfsFixture - systemProperty "test.krb5.principal.es", "elasticsearch@${realm}" - systemProperty "test.krb5.principal.hdfs", "hdfs/hdfs.build.elastic.co@${realm}" - jvmArgs "-Djava.security.krb5.conf=${krb5conf}" - systemProperty ( - "test.krb5.keytab.hdfs", - project(':test:fixtures:krb5kdc-fixture').ext.krb5Keytabs("hdfs","hdfs_hdfs.build.elastic.co.keytab") - ) + if (disabledIntegTestTaskNames.contains(integTestTaskName) == false) { + dependsOn secureHdfsFixture + nonInputProperties.systemProperty "test.krb5.principal.es", "elasticsearch@${realm}" + nonInputProperties.systemProperty "test.krb5.principal.hdfs", "hdfs/hdfs.build.elastic.co@${realm}" + jvmArgs "-Djava.security.krb5.conf=${krb5conf}" + nonInputProperties.systemProperty ( + "test.krb5.keytab.hdfs", + project(':test:fixtures:krb5kdc-fixture').ext.krb5Keytabs("hdfs","hdfs_hdfs.build.elastic.co.keytab") + ) + } } } } diff --git a/test/fixtures/hdfs-fixture/src/main/java/hdfs/MiniHDFS.java b/test/fixtures/hdfs-fixture/src/main/java/hdfs/MiniHDFS.java index 01315cdab01ca..b060d78b92b69 100644 --- a/test/fixtures/hdfs-fixture/src/main/java/hdfs/MiniHDFS.java +++ b/test/fixtures/hdfs-fixture/src/main/java/hdfs/MiniHDFS.java @@ -19,18 +19,6 @@ package hdfs; -import java.io.File; -import java.lang.management.ManagementFactory; -import java.net.URL; -import java.nio.charset.StandardCharsets; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.nio.file.StandardCopyOption; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - import org.apache.commons.io.FileUtils; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.CommonConfigurationKeysPublic; @@ -45,6 +33,18 @@ import org.apache.hadoop.hdfs.server.namenode.ha.HATestUtil; import org.apache.hadoop.security.UserGroupInformation; +import java.io.File; +import java.lang.management.ManagementFactory; +import java.net.URL; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + /** * MiniHDFS test fixture. There is a CLI tool, but here we can * easily properly setup logging, avoid parsing JSON, etc. @@ -174,4 +174,5 @@ public static void main(String[] args) throws Exception { Files.write(tmp, portFileContent.getBytes(StandardCharsets.UTF_8)); Files.move(tmp, baseDir.resolve(PORT_FILE_NAME), StandardCopyOption.ATOMIC_MOVE); } + } diff --git a/test/fixtures/krb5kdc-fixture/build.gradle b/test/fixtures/krb5kdc-fixture/build.gradle index 9787c3527af71..9ad1097af5297 100644 --- a/test/fixtures/krb5kdc-fixture/build.gradle +++ b/test/fixtures/krb5kdc-fixture/build.gradle @@ -47,8 +47,7 @@ postProcessFixture { } } -// https://github.com/elastic/elasticsearch/issues/40624 -buildFixture.enabled = false +buildFixture.enabled = true project.ext.krb5Conf = { service -> file("$buildDir/shared/${service}/krb5.conf") } project.ext.krb5Keytabs = { service, fileName -> file("$buildDir/shared/${service}/keytabs/${fileName}") } diff --git a/test/fixtures/krb5kdc-fixture/docker-compose.yml b/test/fixtures/krb5kdc-fixture/docker-compose.yml index 4d018dd6c3e08..8e7108d58e5c0 100644 --- a/test/fixtures/krb5kdc-fixture/docker-compose.yml +++ b/test/fixtures/krb5kdc-fixture/docker-compose.yml @@ -8,6 +8,8 @@ services: command: "bash /fixture/src/main/resources/provision/peppa.sh" volumes: - ./build/shared/peppa:/fixture/build + # containers have bad entropy so mount /dev/urandom. Less secure but this is a test fixture. + - /dev/urandom:/dev/random ports: - "4444" - "88/udp" @@ -19,6 +21,8 @@ services: command: "bash /fixture/src/main/resources/provision/hdfs.sh" volumes: - ./build/shared/hdfs:/fixture/build + # containers have bad entropy so mount /dev/urandom. Less secure but this is a test fixture. + - /dev/urandom:/dev/random ports: - "4444" - "88/udp" diff --git a/x-pack/qa/kerberos-tests/build.gradle b/x-pack/qa/kerberos-tests/build.gradle index 8f3268aa9fdea..3d123f091cb71 100644 --- a/x-pack/qa/kerberos-tests/build.gradle +++ b/x-pack/qa/kerberos-tests/build.gradle @@ -8,8 +8,7 @@ apply plugin: 'elasticsearch.test.fixtures' testFixtures.useFixture ":test:fixtures:krb5kdc-fixture" -// https://github.com/elastic/elasticsearch/issues/40624 -integTest.enabled = false +integTest.enabled = true dependencies { testCompile project(':x-pack:plugin:core') @@ -56,9 +55,9 @@ integTestCluster { String realm = "BUILD.ELASTIC.CO" integTestRunner { Path peppaKeytab = Paths.get("${project.buildDir}", "generated-resources", "keytabs", "peppa.keytab") - systemProperty 'test.userkt', "peppa@${realm}" - systemProperty 'test.userkt.keytab', "${peppaKeytab}" - systemProperty 'test.userpwd', "george@${realm}" + nonInputProperties.systemProperty 'test.userkt', "peppa@${realm}" + nonInputProperties.systemProperty 'test.userkt.keytab', "${peppaKeytab}" + nonInputProperties.systemProperty 'test.userpwd', "george@${realm}" systemProperty 'test.userpwd.password', "dino" systemProperty 'tests.security.manager', 'true' jvmArgs([