Server: only try to purge directory

won't bother getting it working with rootful docker
This commit is contained in:
2025-04-13 22:00:45 +02:00
parent 77177414eb
commit d48cc18e85
3 changed files with 17 additions and 17 deletions

View File

@@ -49,7 +49,7 @@ jobs:
cache: maven cache: maven
- name: Test with Maven - name: Test with Maven
run: cd dhfs-parent && TESTCONTAINERS_USER="$(id -u):$(id -g)" mvn -T $(nproc) --batch-mode --update-snapshots package verify run: cd dhfs-parent && mvn -T $(nproc) --batch-mode --update-snapshots package verify
# - name: Build with Maven # - name: Build with Maven
# run: cd dhfs-parent && mvn --batch-mode --update-snapshots package # -Dquarkus.log.category.\"com.usatiuk.dhfs\".min-level=DEBUG # run: cd dhfs-parent && mvn --batch-mode --update-snapshots package # -Dquarkus.log.category.\"com.usatiuk.dhfs\".min-level=DEBUG

View File

@@ -30,11 +30,15 @@ public class TestDataCleaner {
purgeDirectory(Path.of(tempDirectory).toFile()); purgeDirectory(Path.of(tempDirectory).toFile());
} }
void purgeDirectory(File dir) { public static void purgeDirectory(File dir) {
for (File file : Objects.requireNonNull(dir.listFiles())) { try {
if (file.isDirectory()) for (File file : Objects.requireNonNull(dir.listFiles())) {
purgeDirectory(file); if (file.isDirectory())
file.delete(); purgeDirectory(file);
file.delete();
}
} catch (Exception e) {
Log.error("Couldn't purge directory " + dir, e);
} }
} }
} }

View File

@@ -1,9 +1,9 @@
package com.usatiuk.dhfs.integration; package com.usatiuk.dhfs.integration;
import com.github.dockerjava.api.model.Device; import com.github.dockerjava.api.model.Device;
import com.usatiuk.dhfs.TestDataCleaner;
import io.quarkus.logging.Log; import io.quarkus.logging.Log;
import org.junit.jupiter.api.*; import org.junit.jupiter.api.*;
import org.junit.jupiter.api.io.TempDir;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.testcontainers.DockerClientFactory; import org.testcontainers.DockerClientFactory;
import org.testcontainers.containers.GenericContainer; import org.testcontainers.containers.GenericContainer;
@@ -14,6 +14,7 @@ import org.testcontainers.containers.wait.strategy.Wait;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.nio.file.Files;
import java.time.Duration; import java.time.Duration;
import java.util.Objects; import java.util.Objects;
import java.util.UUID; import java.util.UUID;
@@ -35,33 +36,26 @@ public class KillIT {
String c1uuid; String c1uuid;
String c2uuid; String c2uuid;
@TempDir
File data1; File data1;
@TempDir
File data2; File data2;
@BeforeEach @BeforeEach
void setup(TestInfo testInfo) throws IOException, InterruptedException, TimeoutException { void setup(TestInfo testInfo) throws IOException, InterruptedException, TimeoutException {
Network network = Network.newNetwork(); data1 = Files.createTempDirectory("").toFile();
data2 = Files.createTempDirectory("").toFile();
String testcontainersUser = System.getenv("TESTCONTAINERS_USER"); Network network = Network.newNetwork();
container1 = new GenericContainer<>(DhfsImage.getInstance()) container1 = new GenericContainer<>(DhfsImage.getInstance())
.withPrivilegedMode(true) .withPrivilegedMode(true)
.withCreateContainerCmdModifier(cmd -> Objects.requireNonNull(cmd.getHostConfig()).withDevices(Device.parse("/dev/fuse"))) .withCreateContainerCmdModifier(cmd -> Objects.requireNonNull(cmd.getHostConfig()).withDevices(Device.parse("/dev/fuse")))
.waitingFor(Wait.forLogMessage(".*Listening.*", 1).withStartupTimeout(Duration.ofSeconds(60))).withNetwork(network) .waitingFor(Wait.forLogMessage(".*Listening.*", 1).withStartupTimeout(Duration.ofSeconds(60))).withNetwork(network)
.withFileSystemBind(data1.getAbsolutePath(), "/dhfs_test/data"); .withFileSystemBind(data1.getAbsolutePath(), "/dhfs_test/data");
if (testcontainersUser != null) {
container1.withCreateContainerCmdModifier(cmd -> cmd.withUser(testcontainersUser));
}
container2 = new GenericContainer<>(DhfsImage.getInstance()) container2 = new GenericContainer<>(DhfsImage.getInstance())
.withPrivilegedMode(true) .withPrivilegedMode(true)
.withCreateContainerCmdModifier(cmd -> Objects.requireNonNull(cmd.getHostConfig()).withDevices(Device.parse("/dev/fuse"))) .withCreateContainerCmdModifier(cmd -> Objects.requireNonNull(cmd.getHostConfig()).withDevices(Device.parse("/dev/fuse")))
.waitingFor(Wait.forLogMessage(".*Listening.*", 1).withStartupTimeout(Duration.ofSeconds(60))).withNetwork(network) .waitingFor(Wait.forLogMessage(".*Listening.*", 1).withStartupTimeout(Duration.ofSeconds(60))).withNetwork(network)
.withFileSystemBind(data2.getAbsolutePath(), "/dhfs_test/data"); .withFileSystemBind(data2.getAbsolutePath(), "/dhfs_test/data");
if (testcontainersUser != null) {
container2.withCreateContainerCmdModifier(cmd -> cmd.withUser(testcontainersUser));
}
Stream.of(container1, container2).parallel().forEach(GenericContainer::start); Stream.of(container1, container2).parallel().forEach(GenericContainer::start);
@@ -100,6 +94,8 @@ public class KillIT {
@AfterEach @AfterEach
void stop() { void stop() {
Stream.of(container1, container2).parallel().forEach(GenericContainer::stop); Stream.of(container1, container2).parallel().forEach(GenericContainer::stop);
TestDataCleaner.purgeDirectory(data1);
TestDataCleaner.purgeDirectory(data2);
} }
@Test @Test