make some tests work

This commit is contained in:
2025-02-21 17:49:34 +01:00
parent b0e43ad7d2
commit 37fe39d99e
7 changed files with 17 additions and 4 deletions

View File

@@ -15,7 +15,11 @@ import jakarta.inject.Inject;
import org.eclipse.microprofile.config.inject.ConfigProperty;
import org.pcollections.HashTreePSet;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardOpenOption;
import java.security.KeyPair;
import java.security.cert.CertificateEncodingException;
import java.security.cert.X509Certificate;
@@ -44,6 +48,8 @@ public class PersistentPeerDataService {
@ConfigProperty(name = "dhfs.peerdiscovery.preset-uuid")
Optional<String> presetUuid;
@ConfigProperty(name = "dhfs.objects.persistence.stuff.root")
String stuffRoot;
private PeerId _selfUuid;
private X509Certificate _selfCertificate;
@@ -73,6 +79,8 @@ public class PersistentPeerDataService {
});
peerTrustManager.reloadTrustManagerHosts(peerInfoService.getPeers());
Log.info("Self uuid is: " + _selfUuid.toString());
new File(stuffRoot).mkdirs();
Files.write(Path.of(stuffRoot, "self_uuid"), _selfUuid.id().toString().getBytes(), StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING);
}
// private void pushPeerUpdates() {

View File

@@ -1,6 +1,7 @@
package com.usatiuk.dhfs.objects.repository.peerdiscovery;
import com.usatiuk.dhfs.objects.PeerId;
import io.quarkus.logging.Log;
import jakarta.enterprise.context.ApplicationScoped;
import org.apache.commons.collections4.MultiValuedMap;
import org.apache.commons.collections4.multimap.HashSetValuedHashMap;
@@ -37,6 +38,7 @@ public class PeerDiscoveryDirectory {
private final MultiValuedMap<PeerId, PeerEntry> _entries = new HashSetValuedHashMap<>();
public void notifyAddr(PeerAddress addr) {
Log.tracev("New address {0}", addr);
synchronized (_entries) {
var peer = addr.peer();
_entries.removeMapping(peer, new PeerEntry(addr, 0));

View File

@@ -3,6 +3,7 @@ package com.usatiuk.dhfs.objects.repository.peerdiscovery.local;
import com.usatiuk.dhfs.objects.repository.PersistentPeerDataService;
import com.usatiuk.dhfs.objects.repository.peerdiscovery.PeerDiscoveryInfo;
import io.quarkus.arc.properties.IfBuildProperty;
import io.quarkus.logging.Log;
import io.quarkus.runtime.ShutdownEvent;
import io.quarkus.runtime.Startup;
import io.quarkus.scheduler.Scheduled;
@@ -90,6 +91,7 @@ public class LocalPeerDiscoveryBroadcaster {
try {
sendPacket = new DatagramPacket(sendBytes, sendBytes.length, broadcast, broadcastPort);
_socket.send(sendPacket);
Log.tracev("Broadcast sent to: {0}, at: {1}", broadcast.getHostAddress(), networkInterface.getDisplayName());
} catch (Exception ignored) {
continue;
}

View File

@@ -18,7 +18,6 @@ import org.eclipse.microprofile.config.inject.ConfigProperty;
import java.net.*;
import java.nio.ByteBuffer;
import java.util.UUID;
@ApplicationScoped
@IfBuildProperty(name = "dhfs.local-discovery", stringValue = "true")
@@ -70,6 +69,7 @@ public class LocalPeerDiscoveryClient {
try {
var got = PeerDiscoveryInfo.parseFrom(ByteBuffer.wrap(buf, 0, packet.getLength()));
Log.tracev("Got peer discovery packet from {0}", packet.getAddress());
peerDiscoveryDirectory.notifyAddr(
new IpPeerAddress(
PeerId.of(got.getUuid()),

View File

@@ -10,6 +10,7 @@ dhfs.objects.reconnect_interval=5s
dhfs.objects.write_log=false
dhfs.objects.periodic-push-op-interval=5m
dhfs.fuse.root=${HOME}/dhfs_default/fuse
dhfs.objects.persistence.stuff.root=${HOME}/dhfs_default/data/stuff
dhfs.fuse.debug=false
dhfs.fuse.enabled=true
dhfs.files.allow_recursive_delete=false

View File

@@ -59,8 +59,8 @@ public class DhfsFuseIT {
Assertions.assertDoesNotThrow(() -> UUID.fromString(c1uuid));
Assertions.assertDoesNotThrow(() -> UUID.fromString(c2uuid));
waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("Ignoring new address"), 60, TimeUnit.SECONDS);
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("Ignoring new address"), 60, TimeUnit.SECONDS);
waitingConsumer2.waitUntil(frame -> frame.getUtf8String().contains("New address"), 60, TimeUnit.SECONDS);
waitingConsumer1.waitUntil(frame -> frame.getUtf8String().contains("New address"), 60, TimeUnit.SECONDS);
var c1curl = container1.execInContainer("/bin/sh", "-c",
"curl --header \"Content-Type: application/json\" " +

View File

@@ -69,7 +69,7 @@ public class DhfsImage implements Future<String> {
.cmd("java", "-ea", "-Xmx128M",
"--add-exports", "java.base/sun.nio.ch=ALL-UNNAMED",
"--add-exports", "java.base/jdk.internal.access=ALL-UNNAMED",
"-Ddhfs.objects.peerdiscovery.interval=100",
"-Ddhfs.objects.peerdiscovery.interval=1s",
"-Ddhfs.objects.invalidation.delay=100",
"-Ddhfs.objects.deletion.delay=0",
"-Ddhfs.objects.deletion.can-delete-retry-delay=1000",