diff --git a/test/test-clusters/src/main/java/org/elasticsearch/test/cluster/local/AbstractLocalClusterFactory.java b/test/test-clusters/src/main/java/org/elasticsearch/test/cluster/local/AbstractLocalClusterFactory.java index e3d68ab8178bb..c897a0026c6c7 100644 --- a/test/test-clusters/src/main/java/org/elasticsearch/test/cluster/local/AbstractLocalClusterFactory.java +++ b/test/test-clusters/src/main/java/org/elasticsearch/test/cluster/local/AbstractLocalClusterFactory.java @@ -418,7 +418,18 @@ private void writeConfiguration() { } private void copyExtraConfigFiles() { - spec.getExtraConfigFiles().forEach((fileName, resource) -> resource.writeTo(configDir.resolve(fileName))); + spec.getExtraConfigFiles().forEach((fileName, resource) -> { + final Path target = configDir.resolve(fileName); + final Path directory = target.getParent(); + if (Files.exists(directory) == false) { + try { + Files.createDirectories(directory); + } catch (IOException e) { + throw new UncheckedIOException(e); + } + } + resource.writeTo(target); + }); } private void createKeystore() {