mirror of
https://github.com/usatiuk/dhfs.git
synced 2025-10-29 04:57:48 +01:00
Server: slight directory fixes
This commit is contained in:
@@ -53,8 +53,8 @@ public class DhfsFuseIT {
|
|||||||
var loggingConsumer2 = new Slf4jLogConsumer(LoggerFactory.getLogger(DhfsFuseIT.class)).withPrefix("2-" + testInfo.getDisplayName());
|
var loggingConsumer2 = new Slf4jLogConsumer(LoggerFactory.getLogger(DhfsFuseIT.class)).withPrefix("2-" + testInfo.getDisplayName());
|
||||||
container2.followOutput(loggingConsumer2.andThen(waitingConsumer2));
|
container2.followOutput(loggingConsumer2.andThen(waitingConsumer2));
|
||||||
|
|
||||||
c1uuid = container1.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/data/stuff/self_uuid").getStdout();
|
c1uuid = container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/data/stuff/self_uuid").getStdout();
|
||||||
c2uuid = container2.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/data/stuff/self_uuid").getStdout();
|
c2uuid = container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/data/stuff/self_uuid").getStdout();
|
||||||
|
|
||||||
Assertions.assertDoesNotThrow(() -> UUID.fromString(c1uuid));
|
Assertions.assertDoesNotThrow(() -> UUID.fromString(c1uuid));
|
||||||
Assertions.assertDoesNotThrow(() -> UUID.fromString(c2uuid));
|
Assertions.assertDoesNotThrow(() -> UUID.fromString(c2uuid));
|
||||||
@@ -85,111 +85,111 @@ public class DhfsFuseIT {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
void readWriteFileTest() throws IOException, InterruptedException, TimeoutException {
|
void readWriteFileTest() throws IOException, InterruptedException, TimeoutException {
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /root/dhfs_default/fuse/testf1").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /dhfs_test/fuse/testf1").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() ->
|
await().atMost(45, TimeUnit.SECONDS).until(() ->
|
||||||
"tesempty\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/testf1").getStdout()));
|
"tesempty\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void readWriteRewriteFileTest() throws IOException, InterruptedException, TimeoutException {
|
void readWriteRewriteFileTest() throws IOException, InterruptedException, TimeoutException {
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /root/dhfs_default/fuse/testf1").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /dhfs_test/fuse/testf1").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() ->
|
await().atMost(45, TimeUnit.SECONDS).until(() ->
|
||||||
"tesempty\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/testf1").getStdout()));
|
"tesempty\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout()));
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo rewritten > /root/dhfs_default/fuse/testf1").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo rewritten > /dhfs_test/fuse/testf1").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() ->
|
await().atMost(45, TimeUnit.SECONDS).until(() ->
|
||||||
"rewritten\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/testf1").getStdout()));
|
"rewritten\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void createDelayedTest() throws IOException, InterruptedException, TimeoutException {
|
void createDelayedTest() throws IOException, InterruptedException, TimeoutException {
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /root/dhfs_default/fuse/testf1").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /dhfs_test/fuse/testf1").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() ->
|
await().atMost(45, TimeUnit.SECONDS).until(() ->
|
||||||
"tesempty\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/testf1").getStdout()));
|
"tesempty\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout()));
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() ->
|
await().atMost(45, TimeUnit.SECONDS).until(() ->
|
||||||
"tesempty\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/testf1").getStdout()));
|
"tesempty\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout()));
|
||||||
|
|
||||||
var client = DockerClientFactory.instance().client();
|
var client = DockerClientFactory.instance().client();
|
||||||
client.pauseContainerCmd(container2.getContainerId()).exec();
|
client.pauseContainerCmd(container2.getContainerId()).exec();
|
||||||
|
|
||||||
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS);
|
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS);
|
||||||
|
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo newfile > /root/dhfs_default/fuse/testf2").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo newfile > /dhfs_test/fuse/testf2").getExitCode());
|
||||||
|
|
||||||
client.unpauseContainerCmd(container2.getContainerId()).exec();
|
client.unpauseContainerCmd(container2.getContainerId()).exec();
|
||||||
|
|
||||||
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS);
|
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS);
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() ->
|
await().atMost(45, TimeUnit.SECONDS).until(() ->
|
||||||
"newfile\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/testf2").getStdout()));
|
"newfile\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf2").getStdout()));
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() ->
|
await().atMost(45, TimeUnit.SECONDS).until(() ->
|
||||||
"newfile\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/testf2").getStdout()));
|
"newfile\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf2").getStdout()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void writeRewriteDelayedTest() throws IOException, InterruptedException, TimeoutException {
|
void writeRewriteDelayedTest() throws IOException, InterruptedException, TimeoutException {
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /root/dhfs_default/fuse/testf1").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /dhfs_test/fuse/testf1").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() ->
|
await().atMost(45, TimeUnit.SECONDS).until(() ->
|
||||||
"tesempty\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/testf1").getStdout()));
|
"tesempty\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout()));
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() ->
|
await().atMost(45, TimeUnit.SECONDS).until(() ->
|
||||||
"tesempty\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/testf1").getStdout()));
|
"tesempty\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout()));
|
||||||
|
|
||||||
var client = DockerClientFactory.instance().client();
|
var client = DockerClientFactory.instance().client();
|
||||||
client.pauseContainerCmd(container2.getContainerId()).exec();
|
client.pauseContainerCmd(container2.getContainerId()).exec();
|
||||||
|
|
||||||
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS);
|
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS);
|
||||||
|
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo rewritten > /root/dhfs_default/fuse/testf1").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo rewritten > /dhfs_test/fuse/testf1").getExitCode());
|
||||||
|
|
||||||
client.unpauseContainerCmd(container2.getContainerId()).exec();
|
client.unpauseContainerCmd(container2.getContainerId()).exec();
|
||||||
|
|
||||||
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS);
|
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS);
|
||||||
|
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() ->
|
await().atMost(45, TimeUnit.SECONDS).until(() ->
|
||||||
"rewritten\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/testf1").getStdout()));
|
"rewritten\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout()));
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() ->
|
await().atMost(45, TimeUnit.SECONDS).until(() ->
|
||||||
"rewritten\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/testf1").getStdout()));
|
"rewritten\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout()));
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: How this fits with the tree?
|
// TODO: How this fits with the tree?
|
||||||
@Test
|
@Test
|
||||||
@Disabled
|
@Disabled
|
||||||
void deleteDelayedTest() throws IOException, InterruptedException, TimeoutException {
|
void deleteDelayedTest() throws IOException, InterruptedException, TimeoutException {
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /root/dhfs_default/fuse/testf1").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /dhfs_test/fuse/testf1").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/testf1").getStdout()));
|
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout()));
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/testf1").getStdout()));
|
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout()));
|
||||||
|
|
||||||
var client = DockerClientFactory.instance().client();
|
var client = DockerClientFactory.instance().client();
|
||||||
client.pauseContainerCmd(container2.getContainerId()).exec();
|
client.pauseContainerCmd(container2.getContainerId()).exec();
|
||||||
|
|
||||||
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS);
|
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS);
|
||||||
|
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "rm /root/dhfs_default/fuse/testf1").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "rm /dhfs_test/fuse/testf1").getExitCode());
|
||||||
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Delaying deletion check"), 60, TimeUnit.SECONDS, 1);
|
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Delaying deletion check"), 60, TimeUnit.SECONDS, 1);
|
||||||
|
|
||||||
client.unpauseContainerCmd(container2.getContainerId()).exec();
|
client.unpauseContainerCmd(container2.getContainerId()).exec();
|
||||||
|
|
||||||
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS);
|
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS);
|
||||||
|
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "ls /root/dhfs_default/fuse").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse").getExitCode());
|
||||||
|
|
||||||
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Deleting from persistent"), 60, TimeUnit.SECONDS, 1);
|
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Deleting from persistent"), 60, TimeUnit.SECONDS, 1);
|
||||||
waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Deleting from persistent"), 60, TimeUnit.SECONDS, 3);
|
waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Deleting from persistent"), 60, TimeUnit.SECONDS, 3);
|
||||||
|
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 1 == container2.execInContainer("/bin/sh", "-c", "test -f /root/dhfs_default/fuse/testf1").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 1 == container2.execInContainer("/bin/sh", "-c", "test -f /dhfs_test/fuse/testf1").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 1 == container1.execInContainer("/bin/sh", "-c", "test -f /root/dhfs_default/fuse/testf1").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 1 == container1.execInContainer("/bin/sh", "-c", "test -f /dhfs_test/fuse/testf1").getExitCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void deleteTest() throws IOException, InterruptedException, TimeoutException {
|
void deleteTest() throws IOException, InterruptedException, TimeoutException {
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /root/dhfs_default/fuse/testf1").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /dhfs_test/fuse/testf1").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() ->
|
await().atMost(45, TimeUnit.SECONDS).until(() ->
|
||||||
"tesempty\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/testf1").getStdout()));
|
"tesempty\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout()));
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() ->
|
await().atMost(45, TimeUnit.SECONDS).until(() ->
|
||||||
"tesempty\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/testf1").getStdout()));
|
"tesempty\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout()));
|
||||||
|
|
||||||
Log.info("Deleting");
|
Log.info("Deleting");
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "rm /root/dhfs_default/fuse/testf1").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "rm /dhfs_test/fuse/testf1").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() ->
|
await().atMost(45, TimeUnit.SECONDS).until(() ->
|
||||||
0 == container2.execInContainer("/bin/sh", "-c", "ls /root/dhfs_default/fuse").getExitCode());
|
0 == container2.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse").getExitCode());
|
||||||
Log.info("Deleted");
|
Log.info("Deleted");
|
||||||
|
|
||||||
// FIXME?
|
// FIXME?
|
||||||
@@ -197,50 +197,50 @@ public class DhfsFuseIT {
|
|||||||
waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Deleting from persistent"), 60, TimeUnit.SECONDS, 3);
|
waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Deleting from persistent"), 60, TimeUnit.SECONDS, 3);
|
||||||
|
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() ->
|
await().atMost(45, TimeUnit.SECONDS).until(() ->
|
||||||
1 == container2.execInContainer("/bin/sh", "-c", "test -f /root/dhfs_default/fuse/testf1").getExitCode());
|
1 == container2.execInContainer("/bin/sh", "-c", "test -f /dhfs_test/fuse/testf1").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() ->
|
await().atMost(45, TimeUnit.SECONDS).until(() ->
|
||||||
1 == container1.execInContainer("/bin/sh", "-c", "test -f /root/dhfs_default/fuse/testf1").getExitCode());
|
1 == container1.execInContainer("/bin/sh", "-c", "test -f /dhfs_test/fuse/testf1").getExitCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void moveFileTest() throws IOException, InterruptedException, TimeoutException {
|
void moveFileTest() throws IOException, InterruptedException, TimeoutException {
|
||||||
Log.info("Creating");
|
Log.info("Creating");
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /root/dhfs_default/fuse/testf1").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /dhfs_test/fuse/testf1").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/testf1").getStdout()));
|
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout()));
|
||||||
Log.info("Listing");
|
Log.info("Listing");
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "ls /root/dhfs_default/fuse/").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse/").getExitCode());
|
||||||
Log.info("Moving");
|
Log.info("Moving");
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "mv /root/dhfs_default/fuse/testf1 /root/dhfs_default/fuse/testf2").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "mv /dhfs_test/fuse/testf1 /dhfs_test/fuse/testf2").getExitCode());
|
||||||
Log.info("Listing");
|
Log.info("Listing");
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "ls /root/dhfs_default/fuse/").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse/").getExitCode());
|
||||||
Log.info("Reading");
|
Log.info("Reading");
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/testf2").getStdout()));
|
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf2").getStdout()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void moveDirTest() throws IOException, InterruptedException, TimeoutException {
|
void moveDirTest() throws IOException, InterruptedException, TimeoutException {
|
||||||
Log.info("Creating");
|
Log.info("Creating");
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "mkdir /root/dhfs_default/fuse/testdir").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "mkdir /dhfs_test/fuse/testdir").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /root/dhfs_default/fuse/testdir/testf1").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /dhfs_test/fuse/testdir/testf1").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/testdir/testf1").getStdout()));
|
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testdir/testf1").getStdout()));
|
||||||
Log.info("Listing");
|
Log.info("Listing");
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "ls /root/dhfs_default/fuse/").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse/").getExitCode());
|
||||||
Log.info("Moving");
|
Log.info("Moving");
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "mkdir /root/dhfs_default/fuse/testdir2").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "mkdir /dhfs_test/fuse/testdir2").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "mv /root/dhfs_default/fuse/testdir /root/dhfs_default/fuse/testdir2/testdirm").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "mv /dhfs_test/fuse/testdir /dhfs_test/fuse/testdir2/testdirm").getExitCode());
|
||||||
Log.info("Listing");
|
Log.info("Listing");
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "ls /root/dhfs_default/fuse/").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse/").getExitCode());
|
||||||
Log.info("Reading");
|
Log.info("Reading");
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/testdir2/testdirm/testf1").getStdout()));
|
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testdir2/testdirm/testf1").getStdout()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// TODO: This probably shouldn't be working right now
|
// TODO: This probably shouldn't be working right now
|
||||||
@Test
|
@Test
|
||||||
void removeAddHostTest() throws IOException, InterruptedException, TimeoutException {
|
void removeAddHostTest() throws IOException, InterruptedException, TimeoutException {
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /root/dhfs_default/fuse/testf1").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /dhfs_test/fuse/testf1").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/testf1").getStdout()));
|
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout()));
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/testf1").getStdout()));
|
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout()));
|
||||||
|
|
||||||
var c2curl = container2.execInContainer("/bin/sh", "-c",
|
var c2curl = container2.execInContainer("/bin/sh", "-c",
|
||||||
"curl --header \"Content-Type: application/json\" " +
|
"curl --header \"Content-Type: application/json\" " +
|
||||||
@@ -248,14 +248,14 @@ public class DhfsFuseIT {
|
|||||||
" --data '{\"uuid\":\"" + c1uuid + "\"}' " +
|
" --data '{\"uuid\":\"" + c1uuid + "\"}' " +
|
||||||
" http://localhost:8080/peers-manage/known-peers");
|
" http://localhost:8080/peers-manage/known-peers");
|
||||||
|
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "echo rewritten > /root/dhfs_default/fuse/testf1").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "echo rewritten > /dhfs_test/fuse/testf1").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "echo jioadsd > /root/dhfs_default/fuse/newfile1").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "echo jioadsd > /dhfs_test/fuse/newfile1").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo asvdkljm > /root/dhfs_default/fuse/newfile1").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo asvdkljm > /dhfs_test/fuse/newfile1").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/testf1").getStdout()));
|
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout()));
|
||||||
|
|
||||||
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS);
|
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS);
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "echo dfgvh > /root/dhfs_default/fuse/newfile2").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "echo dfgvh > /dhfs_test/fuse/newfile2").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo dscfg > /root/dhfs_default/fuse/newfile2").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo dscfg > /dhfs_test/fuse/newfile2").getExitCode());
|
||||||
|
|
||||||
Log.info("Re-adding");
|
Log.info("Re-adding");
|
||||||
container2.execInContainer("/bin/sh", "-c",
|
container2.execInContainer("/bin/sh", "-c",
|
||||||
@@ -266,14 +266,14 @@ public class DhfsFuseIT {
|
|||||||
waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS);
|
waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS);
|
||||||
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS);
|
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS);
|
||||||
|
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> "rewritten\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/testf1").getStdout()));
|
await().atMost(45, TimeUnit.SECONDS).until(() -> "rewritten\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout()));
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> "rewritten\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/testf1").getStdout()));
|
await().atMost(45, TimeUnit.SECONDS).until(() -> "rewritten\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout()));
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> {
|
await().atMost(45, TimeUnit.SECONDS).until(() -> {
|
||||||
Log.info("Listing removeAddHostTest");
|
Log.info("Listing removeAddHostTest");
|
||||||
var cat1 = container1.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/*");
|
var cat1 = container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/*");
|
||||||
var cat2 = container2.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/*");
|
var cat2 = container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/*");
|
||||||
var ls1 = container1.execInContainer("/bin/sh", "-c", "ls /root/dhfs_default/fuse/");
|
var ls1 = container1.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse/");
|
||||||
var ls2 = container2.execInContainer("/bin/sh", "-c", "ls /root/dhfs_default/fuse/");
|
var ls2 = container2.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse/");
|
||||||
Log.info(cat1);
|
Log.info(cat1);
|
||||||
Log.info(cat2);
|
Log.info(cat2);
|
||||||
Log.info(ls1);
|
Log.info(ls1);
|
||||||
@@ -286,10 +286,10 @@ public class DhfsFuseIT {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
void dirConflictTest() throws IOException, InterruptedException, TimeoutException {
|
void dirConflictTest() throws IOException, InterruptedException, TimeoutException {
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "ls /root/dhfs_default/fuse").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "ls /root/dhfs_default/fuse").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse").getExitCode());
|
||||||
boolean createFail = Stream.of(Pair.of(container1, "echo test1 >> /root/dhfs_default/fuse/testf"),
|
boolean createFail = Stream.of(Pair.of(container1, "echo test1 >> /dhfs_test/fuse/testf"),
|
||||||
Pair.of(container2, "echo test2 >> /root/dhfs_default/fuse/testf")).parallel().map(p -> {
|
Pair.of(container2, "echo test2 >> /dhfs_test/fuse/testf")).parallel().map(p -> {
|
||||||
try {
|
try {
|
||||||
return p.getLeft().execInContainer("/bin/sh", "-c", p.getRight()).getExitCode();
|
return p.getLeft().execInContainer("/bin/sh", "-c", p.getRight()).getExitCode();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@@ -298,8 +298,8 @@ public class DhfsFuseIT {
|
|||||||
}).anyMatch(r -> r != 0);
|
}).anyMatch(r -> r != 0);
|
||||||
Assumptions.assumeTrue(!createFail, "Failed creating one or more files");
|
Assumptions.assumeTrue(!createFail, "Failed creating one or more files");
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> {
|
await().atMost(45, TimeUnit.SECONDS).until(() -> {
|
||||||
var ls = container2.execInContainer("/bin/sh", "-c", "ls /root/dhfs_default/fuse");
|
var ls = container2.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse");
|
||||||
var cat = container2.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/*");
|
var cat = container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/*");
|
||||||
Log.info(ls);
|
Log.info(ls);
|
||||||
Log.info(cat);
|
Log.info(cat);
|
||||||
return cat.getStdout().contains("test1") && cat.getStdout().contains("test2");
|
return cat.getStdout().contains("test1") && cat.getStdout().contains("test2");
|
||||||
@@ -308,38 +308,38 @@ public class DhfsFuseIT {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
void dirCycleTest() throws IOException, InterruptedException, TimeoutException {
|
void dirCycleTest() throws IOException, InterruptedException, TimeoutException {
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "ls /root/dhfs_default/fuse").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "mkdir /root/dhfs_default/fuse/a").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "mkdir /dhfs_test/fuse/a").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "mkdir /root/dhfs_default/fuse/b").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "mkdir /dhfs_test/fuse/b").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo xqr489 >> /root/dhfs_default/fuse/a/testfa").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo xqr489 >> /dhfs_test/fuse/a/testfa").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo ahinou >> /root/dhfs_default/fuse/b/testfb").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo ahinou >> /dhfs_test/fuse/b/testfb").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "ls -lavh /root/dhfs_default/fuse").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "ls -lavh /dhfs_test/fuse").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> {
|
await().atMost(45, TimeUnit.SECONDS).until(() -> {
|
||||||
var c2ls = container2.execInContainer("/bin/sh", "-c", "find /root/dhfs_default/fuse -type f -exec cat {} \\;");
|
var c2ls = container2.execInContainer("/bin/sh", "-c", "find /dhfs_test/fuse -type f -exec cat {} \\;");
|
||||||
return c2ls.getExitCode() == 0 && c2ls.getStdout().contains("xqr489") && c2ls.getStdout().contains("ahinou");
|
return c2ls.getExitCode() == 0 && c2ls.getStdout().contains("xqr489") && c2ls.getStdout().contains("ahinou");
|
||||||
});
|
});
|
||||||
|
|
||||||
var client = DockerClientFactory.instance().client();
|
var client = DockerClientFactory.instance().client();
|
||||||
client.pauseContainerCmd(container1.getContainerId()).exec();
|
client.pauseContainerCmd(container1.getContainerId()).exec();
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "mv /root/dhfs_default/fuse/a /root/dhfs_default/fuse/b").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "mv /dhfs_test/fuse/a /dhfs_test/fuse/b").getExitCode());
|
||||||
client.pauseContainerCmd(container2.getContainerId()).exec();
|
client.pauseContainerCmd(container2.getContainerId()).exec();
|
||||||
client.unpauseContainerCmd(container1.getContainerId()).exec();
|
client.unpauseContainerCmd(container1.getContainerId()).exec();
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "mv /root/dhfs_default/fuse/b /root/dhfs_default/fuse/a").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "mv /dhfs_test/fuse/b /dhfs_test/fuse/a").getExitCode());
|
||||||
client.unpauseContainerCmd(container2.getContainerId()).exec();
|
client.unpauseContainerCmd(container2.getContainerId()).exec();
|
||||||
|
|
||||||
|
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> {
|
await().atMost(45, TimeUnit.SECONDS).until(() -> {
|
||||||
Log.info("Listing dirCycleTest");
|
Log.info("Listing dirCycleTest");
|
||||||
Log.info(container1.execInContainer("/bin/sh", "-c", "ls /root/dhfs_default/fuse"));
|
Log.info(container1.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse"));
|
||||||
Log.info(container1.execInContainer("/bin/sh", "-c", "ls /root/dhfs_default/fuse/a"));
|
Log.info(container1.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse/a"));
|
||||||
Log.info(container1.execInContainer("/bin/sh", "-c", "ls /root/dhfs_default/fuse/b"));
|
Log.info(container1.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse/b"));
|
||||||
Log.info(container2.execInContainer("/bin/sh", "-c", "ls /root/dhfs_default/fuse"));
|
Log.info(container2.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse"));
|
||||||
Log.info(container2.execInContainer("/bin/sh", "-c", "ls /root/dhfs_default/fuse/a"));
|
Log.info(container2.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse/a"));
|
||||||
Log.info(container2.execInContainer("/bin/sh", "-c", "ls /root/dhfs_default/fuse/b"));
|
Log.info(container2.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse/b"));
|
||||||
|
|
||||||
var c1ls2 = container1.execInContainer("/bin/sh", "-c", "find /root/dhfs_default/fuse -maxdepth 3 -type f -exec cat {} \\;");
|
var c1ls2 = container1.execInContainer("/bin/sh", "-c", "find /dhfs_test/fuse -maxdepth 3 -type f -exec cat {} \\;");
|
||||||
Log.info(c1ls2);
|
Log.info(c1ls2);
|
||||||
var c2ls2 = container1.execInContainer("/bin/sh", "-c", "find /root/dhfs_default/fuse -maxdepth 3 -type f -exec cat {} \\;");
|
var c2ls2 = container1.execInContainer("/bin/sh", "-c", "find /dhfs_test/fuse -maxdepth 3 -type f -exec cat {} \\;");
|
||||||
Log.info(c2ls2);
|
Log.info(c2ls2);
|
||||||
|
|
||||||
return c1ls2.getStdout().contains("xqr489") && c1ls2.getStdout().contains("ahinou")
|
return c1ls2.getStdout().contains("xqr489") && c1ls2.getStdout().contains("ahinou")
|
||||||
@@ -353,27 +353,27 @@ public class DhfsFuseIT {
|
|||||||
void removeAndMove() throws IOException, InterruptedException, TimeoutException {
|
void removeAndMove() throws IOException, InterruptedException, TimeoutException {
|
||||||
var client = DockerClientFactory.instance().client();
|
var client = DockerClientFactory.instance().client();
|
||||||
Log.info("Creating");
|
Log.info("Creating");
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /root/dhfs_default/fuse/testf1").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /dhfs_test/fuse/testf1").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/testf1").getStdout()));
|
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout()));
|
||||||
Log.info("Listing");
|
Log.info("Listing");
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "ls /root/dhfs_default/fuse/").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse/").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/testf1").getStdout()));
|
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout()));
|
||||||
|
|
||||||
client.pauseContainerCmd(container1.getContainerId()).exec();
|
client.pauseContainerCmd(container1.getContainerId()).exec();
|
||||||
waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS, 1);
|
waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS, 1);
|
||||||
|
|
||||||
Log.info("Removing");
|
Log.info("Removing");
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "rm /root/dhfs_default/fuse/testf1").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "rm /dhfs_test/fuse/testf1").getExitCode());
|
||||||
|
|
||||||
client.pauseContainerCmd(container2.getContainerId()).exec();
|
client.pauseContainerCmd(container2.getContainerId()).exec();
|
||||||
client.unpauseContainerCmd(container1.getContainerId()).exec();
|
client.unpauseContainerCmd(container1.getContainerId()).exec();
|
||||||
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS, 1);
|
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS, 1);
|
||||||
Log.info("Moving");
|
Log.info("Moving");
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "mv /root/dhfs_default/fuse/testf1 /root/dhfs_default/fuse/testf2").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "mv /dhfs_test/fuse/testf1 /dhfs_test/fuse/testf2").getExitCode());
|
||||||
Log.info("Listing");
|
Log.info("Listing");
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "ls /root/dhfs_default/fuse/").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse/").getExitCode());
|
||||||
Log.info("Reading");
|
Log.info("Reading");
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/testf2").getStdout()));
|
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf2").getStdout()));
|
||||||
client.unpauseContainerCmd(container2.getContainerId()).exec();
|
client.unpauseContainerCmd(container2.getContainerId()).exec();
|
||||||
|
|
||||||
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS, 1);
|
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS, 1);
|
||||||
@@ -382,10 +382,10 @@ public class DhfsFuseIT {
|
|||||||
// TODO: it always seems to be removed?
|
// TODO: it always seems to be removed?
|
||||||
Log.info("Reading both");
|
Log.info("Reading both");
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> {
|
await().atMost(45, TimeUnit.SECONDS).until(() -> {
|
||||||
var ls1 = container1.execInContainer("/bin/sh", "-c", "ls /root/dhfs_default/fuse/");
|
var ls1 = container1.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse/");
|
||||||
var ls2 = container2.execInContainer("/bin/sh", "-c", "ls /root/dhfs_default/fuse/");
|
var ls2 = container2.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse/");
|
||||||
var cat1 = container1.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/*");
|
var cat1 = container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/*");
|
||||||
var cat2 = container2.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/*");
|
var cat2 = container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/*");
|
||||||
Log.info("cat1: " + cat1);
|
Log.info("cat1: " + cat1);
|
||||||
Log.info("cat2: " + cat2);
|
Log.info("cat2: " + cat2);
|
||||||
Log.info("ls1: " + ls1);
|
Log.info("ls1: " + ls1);
|
||||||
|
|||||||
@@ -59,9 +59,9 @@ public class DhfsFusex3IT {
|
|||||||
|
|
||||||
Stream.of(container1, container2, container3).parallel().forEach(GenericContainer::start);
|
Stream.of(container1, container2, container3).parallel().forEach(GenericContainer::start);
|
||||||
|
|
||||||
c1uuid = container1.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/data/stuff/self_uuid").getStdout();
|
c1uuid = container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/data/stuff/self_uuid").getStdout();
|
||||||
c2uuid = container2.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/data/stuff/self_uuid").getStdout();
|
c2uuid = container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/data/stuff/self_uuid").getStdout();
|
||||||
c3uuid = container3.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/data/stuff/self_uuid").getStdout();
|
c3uuid = container3.execInContainer("/bin/sh", "-c", "cat /dhfs_test/data/stuff/self_uuid").getStdout();
|
||||||
|
|
||||||
Log.info(container1.getContainerId() + "=" + c1uuid);
|
Log.info(container1.getContainerId() + "=" + c1uuid);
|
||||||
Log.info(container2.getContainerId() + "=" + c2uuid);
|
Log.info(container2.getContainerId() + "=" + c2uuid);
|
||||||
@@ -119,8 +119,8 @@ public class DhfsFusex3IT {
|
|||||||
|
|
||||||
private boolean checkEmpty() throws IOException, InterruptedException {
|
private boolean checkEmpty() throws IOException, InterruptedException {
|
||||||
for (var container : List.of(container1, container2, container3)) {
|
for (var container : List.of(container1, container2, container3)) {
|
||||||
var found = container.execInContainer("/bin/sh", "-c", "find /root/dhfs_default/data/objs -type f");
|
var found = container.execInContainer("/bin/sh", "-c", "find /dhfs_test/data/objs -type f");
|
||||||
var foundWc = container.execInContainer("/bin/sh", "-c", "find /root/dhfs_default/data/objs -type f | wc -l");
|
var foundWc = container.execInContainer("/bin/sh", "-c", "find /dhfs_test/data/objs -type f | wc -l");
|
||||||
Log.info("Remaining objects in " + container.getContainerId() + ": " + found.toString() + " " + foundWc.toString());
|
Log.info("Remaining objects in " + container.getContainerId() + ": " + found.toString() + " " + foundWc.toString());
|
||||||
if (!(found.getExitCode() == 0 && foundWc.getExitCode() == 0 && Integer.parseInt(foundWc.getStdout().strip()) == emptyFileCount))
|
if (!(found.getExitCode() == 0 && foundWc.getExitCode() == 0 && Integer.parseInt(foundWc.getStdout().strip()) == emptyFileCount))
|
||||||
return false;
|
return false;
|
||||||
@@ -135,47 +135,47 @@ public class DhfsFusex3IT {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
void readWriteFileTest() throws IOException, InterruptedException, TimeoutException {
|
void readWriteFileTest() throws IOException, InterruptedException, TimeoutException {
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /root/dhfs_default/fuse/testf1").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /dhfs_test/fuse/testf1").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/testf1").getStdout()));
|
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout()));
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container3.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/testf1").getStdout()));
|
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container3.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout()));
|
||||||
}
|
}
|
||||||
|
|
||||||
// FIXME:
|
// FIXME:
|
||||||
@Test
|
@Test
|
||||||
@Disabled
|
@Disabled
|
||||||
void largerFileDeleteTest() throws IOException, InterruptedException, TimeoutException {
|
void largerFileDeleteTest() throws IOException, InterruptedException, TimeoutException {
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "cd /root/dhfs_default/fuse && dd if=/dev/urandom of=10MB.bin bs=1M count=10").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "cd /dhfs_test/fuse && dd if=/dev/urandom of=10MB.bin bs=1M count=10").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "head -c 10 /root/dhfs_default/fuse/10MB.bin").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "head -c 10 /dhfs_test/fuse/10MB.bin").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container3.execInContainer("/bin/sh", "-c", "rm /root/dhfs_default/fuse/10MB.bin").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container3.execInContainer("/bin/sh", "-c", "rm /dhfs_test/fuse/10MB.bin").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> checkEmpty());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> checkEmpty());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@Disabled
|
@Disabled
|
||||||
void largerFileDeleteTestNoDelays() throws IOException, InterruptedException, TimeoutException {
|
void largerFileDeleteTestNoDelays() throws IOException, InterruptedException, TimeoutException {
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "cd /root/dhfs_default/fuse && dd if=/dev/urandom of=10MB.bin bs=1M count=10").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "cd /dhfs_test/fuse && dd if=/dev/urandom of=10MB.bin bs=1M count=10").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "head -c 10 /root/dhfs_default/fuse/10MB.bin").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "head -c 10 /dhfs_test/fuse/10MB.bin").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container3.execInContainer("/bin/sh", "-c", "rm /root/dhfs_default/fuse/10MB.bin").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container3.execInContainer("/bin/sh", "-c", "rm /dhfs_test/fuse/10MB.bin").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> checkEmpty());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> checkEmpty());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void gccHelloWorldTest() throws IOException, InterruptedException, TimeoutException {
|
void gccHelloWorldTest() throws IOException, InterruptedException, TimeoutException {
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo '#include<stdio.h>\nint main(){printf(\"hello world\"); return 0;}' > /root/dhfs_default/fuse/hello.c").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo '#include<stdio.h>\nint main(){printf(\"hello world\"); return 0;}' > /dhfs_test/fuse/hello.c").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "cd /root/dhfs_default/fuse && gcc hello.c").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "cd /dhfs_test/fuse && gcc hello.c").getExitCode());
|
||||||
|
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> {
|
await().atMost(45, TimeUnit.SECONDS).until(() -> {
|
||||||
var helloOut = container1.execInContainer("/bin/sh", "-c", "/root/dhfs_default/fuse/a.out");
|
var helloOut = container1.execInContainer("/bin/sh", "-c", "/dhfs_test/fuse/a.out");
|
||||||
Log.info(helloOut);
|
Log.info(helloOut);
|
||||||
return helloOut.getExitCode() == 0 && helloOut.getStdout().equals("hello world");
|
return helloOut.getExitCode() == 0 && helloOut.getStdout().equals("hello world");
|
||||||
});
|
});
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> {
|
await().atMost(45, TimeUnit.SECONDS).until(() -> {
|
||||||
var helloOut = container2.execInContainer("/bin/sh", "-c", "/root/dhfs_default/fuse/a.out");
|
var helloOut = container2.execInContainer("/bin/sh", "-c", "/dhfs_test/fuse/a.out");
|
||||||
Log.info(helloOut);
|
Log.info(helloOut);
|
||||||
return helloOut.getExitCode() == 0 && helloOut.getStdout().equals("hello world");
|
return helloOut.getExitCode() == 0 && helloOut.getStdout().equals("hello world");
|
||||||
});
|
});
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> {
|
await().atMost(45, TimeUnit.SECONDS).until(() -> {
|
||||||
var helloOut = container3.execInContainer("/bin/sh", "-c", "/root/dhfs_default/fuse/a.out");
|
var helloOut = container3.execInContainer("/bin/sh", "-c", "/dhfs_test/fuse/a.out");
|
||||||
Log.info(helloOut);
|
Log.info(helloOut);
|
||||||
return helloOut.getExitCode() == 0 && helloOut.getStdout().equals("hello world");
|
return helloOut.getExitCode() == 0 && helloOut.getStdout().equals("hello world");
|
||||||
});
|
});
|
||||||
@@ -183,9 +183,9 @@ public class DhfsFusex3IT {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
void removeHostTest() throws IOException, InterruptedException, TimeoutException {
|
void removeHostTest() throws IOException, InterruptedException, TimeoutException {
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /root/dhfs_default/fuse/testf1").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /dhfs_test/fuse/testf1").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/testf1").getStdout()));
|
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout()));
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container3.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/testf1").getStdout()));
|
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container3.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout()));
|
||||||
|
|
||||||
var c3curl = container3.execInContainer("/bin/sh", "-c",
|
var c3curl = container3.execInContainer("/bin/sh", "-c",
|
||||||
"curl --header \"Content-Type: application/json\" " +
|
"curl --header \"Content-Type: application/json\" " +
|
||||||
@@ -195,10 +195,10 @@ public class DhfsFusex3IT {
|
|||||||
|
|
||||||
Thread.sleep(10000);
|
Thread.sleep(10000);
|
||||||
|
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "echo rewritten > /root/dhfs_default/fuse/testf1").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "echo rewritten > /dhfs_test/fuse/testf1").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> "rewritten\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/testf1").getStdout()));
|
await().atMost(45, TimeUnit.SECONDS).until(() -> "rewritten\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout()));
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/testf1").getStdout()));
|
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout()));
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container3.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/testf1").getStdout()));
|
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container3.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -208,15 +208,15 @@ public class DhfsFusex3IT {
|
|||||||
client.pauseContainerCmd(container2.getContainerId()).exec();
|
client.pauseContainerCmd(container2.getContainerId()).exec();
|
||||||
// Pauses needed as otherwise docker buffers some incoming packets
|
// Pauses needed as otherwise docker buffers some incoming packets
|
||||||
waitingConsumer3.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS, 2);
|
waitingConsumer3.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS, 2);
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container3.execInContainer("/bin/sh", "-c", "echo test3 >> /root/dhfs_default/fuse/testf").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container3.execInContainer("/bin/sh", "-c", "echo test3 >> /dhfs_test/fuse/testf").getExitCode());
|
||||||
client.pauseContainerCmd(container3.getContainerId()).exec();
|
client.pauseContainerCmd(container3.getContainerId()).exec();
|
||||||
client.unpauseContainerCmd(container2.getContainerId()).exec();
|
client.unpauseContainerCmd(container2.getContainerId()).exec();
|
||||||
waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS, 2);
|
waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS, 2);
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "echo test2 >> /root/dhfs_default/fuse/testf").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "echo test2 >> /dhfs_test/fuse/testf").getExitCode());
|
||||||
client.pauseContainerCmd(container2.getContainerId()).exec();
|
client.pauseContainerCmd(container2.getContainerId()).exec();
|
||||||
client.unpauseContainerCmd(container1.getContainerId()).exec();
|
client.unpauseContainerCmd(container1.getContainerId()).exec();
|
||||||
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS, 2);
|
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS, 2);
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo test1 >> /root/dhfs_default/fuse/testf").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo test1 >> /dhfs_test/fuse/testf").getExitCode());
|
||||||
client.unpauseContainerCmd(container2.getContainerId()).exec();
|
client.unpauseContainerCmd(container2.getContainerId()).exec();
|
||||||
client.unpauseContainerCmd(container3.getContainerId()).exec();
|
client.unpauseContainerCmd(container3.getContainerId()).exec();
|
||||||
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS, 2);
|
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS, 2);
|
||||||
@@ -225,8 +225,8 @@ public class DhfsFusex3IT {
|
|||||||
|
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> {
|
await().atMost(45, TimeUnit.SECONDS).until(() -> {
|
||||||
for (var c : List.of(container1, container2, container3)) {
|
for (var c : List.of(container1, container2, container3)) {
|
||||||
var ls = c.execInContainer("/bin/sh", "-c", "ls /root/dhfs_default/fuse");
|
var ls = c.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse");
|
||||||
var cat = c.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/*");
|
var cat = c.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/*");
|
||||||
Log.info(ls);
|
Log.info(ls);
|
||||||
Log.info(cat);
|
Log.info(cat);
|
||||||
if (!(cat.getStdout().contains("test1") && cat.getStdout().contains("test2") && cat.getStdout().contains("test3")))
|
if (!(cat.getStdout().contains("test1") && cat.getStdout().contains("test2") && cat.getStdout().contains("test3")))
|
||||||
@@ -236,35 +236,35 @@ public class DhfsFusex3IT {
|
|||||||
});
|
});
|
||||||
|
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> {
|
await().atMost(45, TimeUnit.SECONDS).until(() -> {
|
||||||
return container1.execInContainer("/bin/sh", "-c", "ls /root/dhfs_default/fuse").getStdout().equals(
|
return container1.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse").getStdout().equals(
|
||||||
container2.execInContainer("/bin/sh", "-c", "ls /root/dhfs_default/fuse").getStdout()) &&
|
container2.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse").getStdout()) &&
|
||||||
container3.execInContainer("/bin/sh", "-c", "ls /root/dhfs_default/fuse").getStdout().equals(
|
container3.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse").getStdout().equals(
|
||||||
container2.execInContainer("/bin/sh", "-c", "ls /root/dhfs_default/fuse").getStdout()) &&
|
container2.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse").getStdout()) &&
|
||||||
container3.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/*").getStdout().equals(
|
container3.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/*").getStdout().equals(
|
||||||
container2.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/*").getStdout());
|
container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/*").getStdout());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void fileConflictTest() throws IOException, InterruptedException, TimeoutException {
|
void fileConflictTest() throws IOException, InterruptedException, TimeoutException {
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /root/dhfs_default/fuse/testf").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /dhfs_test/fuse/testf").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/testf").getStdout()));
|
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf").getStdout()));
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container3.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/testf").getStdout()));
|
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container3.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf").getStdout()));
|
||||||
|
|
||||||
var client = DockerClientFactory.instance().client();
|
var client = DockerClientFactory.instance().client();
|
||||||
client.pauseContainerCmd(container1.getContainerId()).exec();
|
client.pauseContainerCmd(container1.getContainerId()).exec();
|
||||||
client.pauseContainerCmd(container2.getContainerId()).exec();
|
client.pauseContainerCmd(container2.getContainerId()).exec();
|
||||||
// Pauses needed as otherwise docker buffers some incoming packets
|
// Pauses needed as otherwise docker buffers some incoming packets
|
||||||
waitingConsumer3.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS, 2);
|
waitingConsumer3.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS, 2);
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container3.execInContainer("/bin/sh", "-c", "echo test3 >> /root/dhfs_default/fuse/testf").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container3.execInContainer("/bin/sh", "-c", "echo test3 >> /dhfs_test/fuse/testf").getExitCode());
|
||||||
client.pauseContainerCmd(container3.getContainerId()).exec();
|
client.pauseContainerCmd(container3.getContainerId()).exec();
|
||||||
client.unpauseContainerCmd(container2.getContainerId()).exec();
|
client.unpauseContainerCmd(container2.getContainerId()).exec();
|
||||||
waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS, 2);
|
waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS, 2);
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "echo test2 >> /root/dhfs_default/fuse/testf").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container2.execInContainer("/bin/sh", "-c", "echo test2 >> /dhfs_test/fuse/testf").getExitCode());
|
||||||
client.pauseContainerCmd(container2.getContainerId()).exec();
|
client.pauseContainerCmd(container2.getContainerId()).exec();
|
||||||
client.unpauseContainerCmd(container1.getContainerId()).exec();
|
client.unpauseContainerCmd(container1.getContainerId()).exec();
|
||||||
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS, 2);
|
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Lost connection to"), 60, TimeUnit.SECONDS, 2);
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo test1 >> /root/dhfs_default/fuse/testf").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo test1 >> /dhfs_test/fuse/testf").getExitCode());
|
||||||
client.unpauseContainerCmd(container2.getContainerId()).exec();
|
client.unpauseContainerCmd(container2.getContainerId()).exec();
|
||||||
client.unpauseContainerCmd(container3.getContainerId()).exec();
|
client.unpauseContainerCmd(container3.getContainerId()).exec();
|
||||||
Log.warn("Waiting for connections");
|
Log.warn("Waiting for connections");
|
||||||
@@ -276,9 +276,9 @@ public class DhfsFusex3IT {
|
|||||||
// TODO: There's some issue with cache, so avoid file reads
|
// TODO: There's some issue with cache, so avoid file reads
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> {
|
await().atMost(45, TimeUnit.SECONDS).until(() -> {
|
||||||
Log.info("Listing consistency 1");
|
Log.info("Listing consistency 1");
|
||||||
var ls1 = container1.execInContainer("/bin/sh", "-c", "ls /root/dhfs_default/fuse");
|
var ls1 = container1.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse");
|
||||||
var ls2 = container2.execInContainer("/bin/sh", "-c", "ls /root/dhfs_default/fuse");
|
var ls2 = container2.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse");
|
||||||
var ls3 = container3.execInContainer("/bin/sh", "-c", "ls /root/dhfs_default/fuse");
|
var ls3 = container3.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse");
|
||||||
Log.info(ls1);
|
Log.info(ls1);
|
||||||
Log.info(ls2);
|
Log.info(ls2);
|
||||||
Log.info(ls3);
|
Log.info(ls3);
|
||||||
@@ -290,8 +290,8 @@ public class DhfsFusex3IT {
|
|||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> {
|
await().atMost(45, TimeUnit.SECONDS).until(() -> {
|
||||||
Log.info("Listing");
|
Log.info("Listing");
|
||||||
for (var c : List.of(container1, container2, container3)) {
|
for (var c : List.of(container1, container2, container3)) {
|
||||||
var ls = c.execInContainer("/bin/sh", "-c", "ls /root/dhfs_default/fuse");
|
var ls = c.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse");
|
||||||
var cat = c.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/*");
|
var cat = c.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/*");
|
||||||
Log.info(ls);
|
Log.info(ls);
|
||||||
Log.info(cat);
|
Log.info(cat);
|
||||||
if (!(cat.getExitCode() == 0 && ls.getExitCode() == 0))
|
if (!(cat.getExitCode() == 0 && ls.getExitCode() == 0))
|
||||||
@@ -304,12 +304,12 @@ public class DhfsFusex3IT {
|
|||||||
|
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> {
|
await().atMost(45, TimeUnit.SECONDS).until(() -> {
|
||||||
Log.info("Listing consistency");
|
Log.info("Listing consistency");
|
||||||
var ls1 = container1.execInContainer("/bin/sh", "-c", "ls /root/dhfs_default/fuse");
|
var ls1 = container1.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse");
|
||||||
var cat1 = container1.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/*");
|
var cat1 = container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/*");
|
||||||
var ls2 = container2.execInContainer("/bin/sh", "-c", "ls /root/dhfs_default/fuse");
|
var ls2 = container2.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse");
|
||||||
var cat2 = container2.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/*");
|
var cat2 = container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/*");
|
||||||
var ls3 = container3.execInContainer("/bin/sh", "-c", "ls /root/dhfs_default/fuse");
|
var ls3 = container3.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse");
|
||||||
var cat3 = container3.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/*");
|
var cat3 = container3.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/*");
|
||||||
Log.info(ls1);
|
Log.info(ls1);
|
||||||
Log.info(cat1);
|
Log.info(cat1);
|
||||||
Log.info(ls2);
|
Log.info(ls2);
|
||||||
|
|||||||
@@ -83,7 +83,11 @@ public class DhfsImage implements Future<String> {
|
|||||||
"-Dquarkus.log.category.\"com.usatiuk\".level=TRACE",
|
"-Dquarkus.log.category.\"com.usatiuk\".level=TRACE",
|
||||||
"-Dquarkus.log.category.\"com.usatiuk.dhfs\".level=TRACE",
|
"-Dquarkus.log.category.\"com.usatiuk.dhfs\".level=TRACE",
|
||||||
"-Ddhfs.objects.periodic-push-op-interval=5s",
|
"-Ddhfs.objects.periodic-push-op-interval=5s",
|
||||||
|
"-Ddhfs.fuse.root=/dhfs_test/fuse",
|
||||||
|
"-Ddhfs.objects.persistence.files.root=/dhfs_test/data",
|
||||||
|
"-Ddhfs.objects.persistence.stuff.root=/dhfs_test/data/stuff",
|
||||||
"-jar", "/app/quarkus-run.jar")
|
"-jar", "/app/quarkus-run.jar")
|
||||||
|
.run("mkdir /dhfs_test && chmod 777 /dhfs_test")
|
||||||
.build())
|
.build())
|
||||||
.withFileFromPath("/app", Paths.get(buildPath, "quarkus-app"))
|
.withFileFromPath("/app", Paths.get(buildPath, "quarkus-app"))
|
||||||
.withFileFromPath("/libs", Paths.get(nativeLibsDirectory));
|
.withFileFromPath("/libs", Paths.get(nativeLibsDirectory));
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ public class KillIT {
|
|||||||
.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(), "/root/dhfs_default/data");
|
.withFileSystemBind(data1.getAbsolutePath(), "/dhfs_test/data");
|
||||||
if (testcontainersUser != null) {
|
if (testcontainersUser != null) {
|
||||||
container1.withCreateContainerCmdModifier(cmd -> cmd.withUser(testcontainersUser));
|
container1.withCreateContainerCmdModifier(cmd -> cmd.withUser(testcontainersUser));
|
||||||
}
|
}
|
||||||
@@ -58,7 +58,7 @@ public class KillIT {
|
|||||||
.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(), "/root/dhfs_default/data");
|
.withFileSystemBind(data2.getAbsolutePath(), "/dhfs_test/data");
|
||||||
if (testcontainersUser != null) {
|
if (testcontainersUser != null) {
|
||||||
container2.withCreateContainerCmdModifier(cmd -> cmd.withUser(testcontainersUser));
|
container2.withCreateContainerCmdModifier(cmd -> cmd.withUser(testcontainersUser));
|
||||||
}
|
}
|
||||||
@@ -72,8 +72,8 @@ public class KillIT {
|
|||||||
var loggingConsumer2 = new Slf4jLogConsumer(LoggerFactory.getLogger(KillIT.class)).withPrefix("2-" + testInfo.getDisplayName());
|
var loggingConsumer2 = new Slf4jLogConsumer(LoggerFactory.getLogger(KillIT.class)).withPrefix("2-" + testInfo.getDisplayName());
|
||||||
container2.followOutput(loggingConsumer2.andThen(waitingConsumer2));
|
container2.followOutput(loggingConsumer2.andThen(waitingConsumer2));
|
||||||
|
|
||||||
c1uuid = container1.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/data/stuff/self_uuid").getStdout();
|
c1uuid = container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/data/stuff/self_uuid").getStdout();
|
||||||
c2uuid = container2.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/data/stuff/self_uuid").getStdout();
|
c2uuid = container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/data/stuff/self_uuid").getStdout();
|
||||||
|
|
||||||
Assertions.assertDoesNotThrow(() -> UUID.fromString(c1uuid));
|
Assertions.assertDoesNotThrow(() -> UUID.fromString(c1uuid));
|
||||||
Assertions.assertDoesNotThrow(() -> UUID.fromString(c2uuid));
|
Assertions.assertDoesNotThrow(() -> UUID.fromString(c2uuid));
|
||||||
@@ -110,7 +110,7 @@ public class KillIT {
|
|||||||
try {
|
try {
|
||||||
Log.info("Writing to container 1");
|
Log.info("Writing to container 1");
|
||||||
barrier.await();
|
barrier.await();
|
||||||
container1.execInContainer("/bin/sh", "-c", "counter=0; while true; do counter=`expr $counter + 1`; echo $counter >> /root/dhfs_default/fuse/test1; done");
|
container1.execInContainer("/bin/sh", "-c", "counter=0; while true; do counter=`expr $counter + 1`; echo $counter >> /dhfs_test/fuse/test1; done");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
@@ -130,10 +130,10 @@ public class KillIT {
|
|||||||
|
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> {
|
await().atMost(45, TimeUnit.SECONDS).until(() -> {
|
||||||
Log.info("Listing consistency");
|
Log.info("Listing consistency");
|
||||||
var ls1 = container1.execInContainer("/bin/sh", "-c", "ls /root/dhfs_default/fuse");
|
var ls1 = container1.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse");
|
||||||
var cat1 = container1.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/*");
|
var cat1 = container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/*");
|
||||||
var ls2 = container2.execInContainer("/bin/sh", "-c", "ls /root/dhfs_default/fuse");
|
var ls2 = container2.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse");
|
||||||
var cat2 = container2.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/*");
|
var cat2 = container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/*");
|
||||||
Log.info(ls1);
|
Log.info(ls1);
|
||||||
Log.info(cat1);
|
Log.info(cat1);
|
||||||
Log.info(ls2);
|
Log.info(ls2);
|
||||||
@@ -151,7 +151,7 @@ public class KillIT {
|
|||||||
try {
|
try {
|
||||||
Log.info("Writing to container 1");
|
Log.info("Writing to container 1");
|
||||||
barrier.await();
|
barrier.await();
|
||||||
container1.execInContainer("/bin/sh", "-c", "counter=0; while true; do counter=`expr $counter + 1`; echo $counter >> /root/dhfs_default/fuse/test$counter; done");
|
container1.execInContainer("/bin/sh", "-c", "counter=0; while true; do counter=`expr $counter + 1`; echo $counter >> /dhfs_test/fuse/test$counter; done");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
@@ -171,10 +171,10 @@ public class KillIT {
|
|||||||
|
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> {
|
await().atMost(45, TimeUnit.SECONDS).until(() -> {
|
||||||
Log.info("Listing consistency");
|
Log.info("Listing consistency");
|
||||||
var ls1 = container1.execInContainer("/bin/sh", "-c", "ls /root/dhfs_default/fuse");
|
var ls1 = container1.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse");
|
||||||
var cat1 = container1.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/*");
|
var cat1 = container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/*");
|
||||||
var ls2 = container2.execInContainer("/bin/sh", "-c", "ls /root/dhfs_default/fuse");
|
var ls2 = container2.execInContainer("/bin/sh", "-c", "ls /dhfs_test/fuse");
|
||||||
var cat2 = container2.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/*");
|
var cat2 = container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/*");
|
||||||
Log.info(ls1);
|
Log.info(ls1);
|
||||||
Log.info(cat1);
|
Log.info(cat1);
|
||||||
Log.info(ls2);
|
Log.info(ls2);
|
||||||
|
|||||||
@@ -59,9 +59,9 @@ public class ResyncIT {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
void readWriteFileTest() throws IOException, InterruptedException, TimeoutException {
|
void readWriteFileTest() throws IOException, InterruptedException, TimeoutException {
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /root/dhfs_default/fuse/testf1").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty > /dhfs_test/fuse/testf1").getExitCode());
|
||||||
c1uuid = container1.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/data/stuff/self_uuid").getStdout();
|
c1uuid = container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/data/stuff/self_uuid").getStdout();
|
||||||
c2uuid = container2.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/data/stuff/self_uuid").getStdout();
|
c2uuid = container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/data/stuff/self_uuid").getStdout();
|
||||||
|
|
||||||
Assertions.assertDoesNotThrow(() -> UUID.fromString(c1uuid));
|
Assertions.assertDoesNotThrow(() -> UUID.fromString(c1uuid));
|
||||||
Assertions.assertDoesNotThrow(() -> UUID.fromString(c2uuid));
|
Assertions.assertDoesNotThrow(() -> UUID.fromString(c2uuid));
|
||||||
@@ -84,24 +84,24 @@ public class ResyncIT {
|
|||||||
waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS);
|
waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS);
|
||||||
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS);
|
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS);
|
||||||
|
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/testf1").getStdout()));
|
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testf1").getStdout()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void manyFiles() throws IOException, InterruptedException, TimeoutException {
|
void manyFiles() throws IOException, InterruptedException, TimeoutException {
|
||||||
var ret = container1.execInContainer("/bin/sh", "-c", "for i in $(seq 1 200); do echo $i > /root/dhfs_default/fuse/test$i; done");
|
var ret = container1.execInContainer("/bin/sh", "-c", "for i in $(seq 1 200); do echo $i > /dhfs_test/fuse/test$i; done");
|
||||||
Assertions.assertEquals(0, ret.getExitCode());
|
Assertions.assertEquals(0, ret.getExitCode());
|
||||||
var foundWc = container1.execInContainer("/bin/sh", "-c", "find /root/dhfs_default/fuse -type f | wc -l");
|
var foundWc = container1.execInContainer("/bin/sh", "-c", "find /dhfs_test/fuse -type f | wc -l");
|
||||||
Assertions.assertEquals(200, Integer.valueOf(foundWc.getStdout().strip()));
|
Assertions.assertEquals(200, Integer.valueOf(foundWc.getStdout().strip()));
|
||||||
|
|
||||||
ret = container2.execInContainer("/bin/sh", "-c", "for i in $(seq 1 200); do echo $i > /root/dhfs_default/fuse/test-2-$i; done");
|
ret = container2.execInContainer("/bin/sh", "-c", "for i in $(seq 1 200); do echo $i > /dhfs_test/fuse/test-2-$i; done");
|
||||||
Assertions.assertEquals(0, ret.getExitCode());
|
Assertions.assertEquals(0, ret.getExitCode());
|
||||||
foundWc = container2.execInContainer("/bin/sh", "-c", "find /root/dhfs_default/fuse -type f | wc -l");
|
foundWc = container2.execInContainer("/bin/sh", "-c", "find /dhfs_test/fuse -type f | wc -l");
|
||||||
Assertions.assertEquals(200, Integer.valueOf(foundWc.getStdout().strip()));
|
Assertions.assertEquals(200, Integer.valueOf(foundWc.getStdout().strip()));
|
||||||
|
|
||||||
c1uuid = container1.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/data/stuff/self_uuid").getStdout();
|
c1uuid = container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/data/stuff/self_uuid").getStdout();
|
||||||
c2uuid = container2.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/data/stuff/self_uuid").getStdout();
|
c2uuid = container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/data/stuff/self_uuid").getStdout();
|
||||||
|
|
||||||
Assertions.assertDoesNotThrow(() -> UUID.fromString(c1uuid));
|
Assertions.assertDoesNotThrow(() -> UUID.fromString(c1uuid));
|
||||||
Assertions.assertDoesNotThrow(() -> UUID.fromString(c2uuid));
|
Assertions.assertDoesNotThrow(() -> UUID.fromString(c2uuid));
|
||||||
@@ -124,24 +124,24 @@ public class ResyncIT {
|
|||||||
waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS);
|
waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS);
|
||||||
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS);
|
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS);
|
||||||
await().atMost(120, TimeUnit.SECONDS).until(() -> {
|
await().atMost(120, TimeUnit.SECONDS).until(() -> {
|
||||||
var foundWc2 = container2.execInContainer("/bin/sh", "-c", "find /root/dhfs_default/fuse -type f | wc -l");
|
var foundWc2 = container2.execInContainer("/bin/sh", "-c", "find /dhfs_test/fuse -type f | wc -l");
|
||||||
return 400 == Integer.valueOf(foundWc2.getStdout().strip());
|
return 400 == Integer.valueOf(foundWc2.getStdout().strip());
|
||||||
});
|
});
|
||||||
await().atMost(120, TimeUnit.SECONDS).until(() -> {
|
await().atMost(120, TimeUnit.SECONDS).until(() -> {
|
||||||
var foundWc2 = container1.execInContainer("/bin/sh", "-c", "find /root/dhfs_default/fuse -type f | wc -l");
|
var foundWc2 = container1.execInContainer("/bin/sh", "-c", "find /dhfs_test/fuse -type f | wc -l");
|
||||||
return 400 == Integer.valueOf(foundWc2.getStdout().strip());
|
return 400 == Integer.valueOf(foundWc2.getStdout().strip());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void folderAfterMove() throws IOException, InterruptedException, TimeoutException {
|
void folderAfterMove() throws IOException, InterruptedException, TimeoutException {
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "mkdir /root/dhfs_default/fuse/testd1").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "mkdir /dhfs_test/fuse/testd1").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty1 > /root/dhfs_default/fuse/testd1/testf1").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty1 > /dhfs_test/fuse/testd1/testf1").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "mv /root/dhfs_default/fuse/testd1 /root/dhfs_default/fuse/testd2").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "mv /dhfs_test/fuse/testd1 /dhfs_test/fuse/testd2").getExitCode());
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty2 > /root/dhfs_default/fuse/testd2/testf2").getExitCode());
|
await().atMost(45, TimeUnit.SECONDS).until(() -> 0 == container1.execInContainer("/bin/sh", "-c", "echo tesempty2 > /dhfs_test/fuse/testd2/testf2").getExitCode());
|
||||||
|
|
||||||
c1uuid = container1.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/data/stuff/self_uuid").getStdout();
|
c1uuid = container1.execInContainer("/bin/sh", "-c", "cat /dhfs_test/data/stuff/self_uuid").getStdout();
|
||||||
c2uuid = container2.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/data/stuff/self_uuid").getStdout();
|
c2uuid = container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/data/stuff/self_uuid").getStdout();
|
||||||
|
|
||||||
Assertions.assertDoesNotThrow(() -> UUID.fromString(c1uuid));
|
Assertions.assertDoesNotThrow(() -> UUID.fromString(c1uuid));
|
||||||
Assertions.assertDoesNotThrow(() -> UUID.fromString(c2uuid));
|
Assertions.assertDoesNotThrow(() -> UUID.fromString(c2uuid));
|
||||||
@@ -164,8 +164,8 @@ public class ResyncIT {
|
|||||||
waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS);
|
waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS);
|
||||||
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS);
|
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Connected"), 60, TimeUnit.SECONDS);
|
||||||
|
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty1\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/testd2/testf1").getStdout()));
|
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty1\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testd2/testf1").getStdout()));
|
||||||
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty2\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /root/dhfs_default/fuse/testd2/testf2").getStdout()));
|
await().atMost(45, TimeUnit.SECONDS).until(() -> "tesempty2\n".equals(container2.execInContainer("/bin/sh", "-c", "cat /dhfs_test/fuse/testd2/testf2").getStdout()));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -74,6 +74,10 @@ public class DhfsFuse extends FuseStubFS {
|
|||||||
void init(@Observes @Priority(100000) StartupEvent event) {
|
void init(@Observes @Priority(100000) StartupEvent event) {
|
||||||
if (!enabled) return;
|
if (!enabled) return;
|
||||||
Paths.get(root).toFile().mkdirs();
|
Paths.get(root).toFile().mkdirs();
|
||||||
|
|
||||||
|
if (!Paths.get(root).toFile().isDirectory())
|
||||||
|
throw new IllegalStateException("Could not create directory " + root);
|
||||||
|
|
||||||
Log.info("Mounting with root " + root);
|
Log.info("Mounting with root " + root);
|
||||||
|
|
||||||
var uid = new UnixSystem().getUid();
|
var uid = new UnixSystem().getUid();
|
||||||
|
|||||||
@@ -21,6 +21,10 @@ public class ShutdownChecker {
|
|||||||
|
|
||||||
void init(@Observes @Priority(2) StartupEvent event) throws IOException {
|
void init(@Observes @Priority(2) StartupEvent event) throws IOException {
|
||||||
Paths.get(dataRoot).toFile().mkdirs();
|
Paths.get(dataRoot).toFile().mkdirs();
|
||||||
|
|
||||||
|
if (!Paths.get(dataRoot).toFile().isDirectory())
|
||||||
|
throw new IllegalStateException("Could not create directory " + dataRoot);
|
||||||
|
|
||||||
Log.info("Initializing with root " + dataRoot);
|
Log.info("Initializing with root " + dataRoot);
|
||||||
if (Paths.get(dataRoot).resolve(dataFileName).toFile().exists()) {
|
if (Paths.get(dataRoot).resolve(dataFileName).toFile().exists()) {
|
||||||
_cleanShutdown = false;
|
_cleanShutdown = false;
|
||||||
|
|||||||
Reference in New Issue
Block a user