aboutsummaryrefslogtreecommitdiffstats
path: root/filedistribution
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2018-04-03 09:42:27 +0200
committerGitHub <noreply@github.com>2018-04-03 09:42:27 +0200
commit57a22250dd584eec38652b559ff5adb6f394ba8d (patch)
treea6e6b4f91bada54d64f5da863d030b025cfd73cf /filedistribution
parent9db3a3c03accfec29f78c5e389c0648ceb95ce0d (diff)
parenta07839e57af28b1529f41722fd958f16210f377f (diff)
Merge pull request #5439 from vespa-engine/revert-5438-revert-5437-hmusum/remove-method-only-used-in-tests
Revert 5438 revert 5437 hmusum/remove method only used in tests
Diffstat (limited to 'filedistribution')
-rw-r--r--filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileDownloader.java4
-rw-r--r--filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReceiver.java32
-rw-r--r--filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceDownloader.java11
-rw-r--r--filedistribution/src/test/java/com/yahoo/vespa/filedistribution/FileDownloaderTest.java9
-rw-r--r--filedistribution/src/test/java/com/yahoo/vespa/filedistribution/FileReceiverTest.java6
5 files changed, 12 insertions, 50 deletions
diff --git a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileDownloader.java b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileDownloader.java
index f2a82ac6ead..c9f29197854 100644
--- a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileDownloader.java
+++ b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileDownloader.java
@@ -78,10 +78,6 @@ public class FileDownloader {
}
}
- void receiveFile(FileReferenceData fileReferenceData) {
- fileReferenceDownloader.receiveFile(fileReferenceData);
- }
-
double downloadStatus(FileReference fileReference) {
return fileReferenceDownloader.downloadStatus(fileReference.value());
}
diff --git a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReceiver.java b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReceiver.java
index 83cf4e1ad80..26a1cad2220 100644
--- a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReceiver.java
+++ b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReceiver.java
@@ -185,38 +185,6 @@ public class FileReceiver {
return methods;
}
- void receiveFile(FileReferenceData fileReferenceData) {
- long xxHashFromContent = fileReferenceData.xxhash();
- if (xxHashFromContent != fileReferenceData.xxhash()) {
- throw new RuntimeException("xxhash from content (" + xxHashFromContent + ") is not equal to xxhash in request (" + fileReferenceData.xxhash() + ")");
- }
-
- File fileReferenceDir = new File(downloadDirectory, fileReferenceData.fileReference().value());
- // file might be a directory (and then type is compressed)
- File file = new File(fileReferenceDir, fileReferenceData.filename());
- try {
- File tempDownloadedDir = Files.createTempDirectory(tmpDirectory.toPath(), "downloaded").toFile();
- File tempFile = new File(tempDownloadedDir, fileReferenceData.filename());
- Files.write(tempFile.toPath(), fileReferenceData.content().array());
-
- // Unpack if necessary
- if (fileReferenceData.type() == FileReferenceData.Type.compressed) {
- File decompressedDir = Files.createTempDirectory(tempDownloadedDir.toPath(), "decompressed").toFile();
- log.log(LogLevel.DEBUG, () -> "Compressed file, unpacking " + tempFile + " to " + decompressedDir);
- CompressedFileReference.decompress(tempFile, decompressedDir);
- moveFileToDestination(decompressedDir, fileReferenceDir);
- } else {
- log.log(LogLevel.DEBUG, () -> "Uncompressed file, moving to " + file.getAbsolutePath());
- Files.createDirectories(fileReferenceDir.toPath());
- moveFileToDestination(tempFile, file);
- }
- downloader.completedDownloading(fileReferenceData.fileReference(), file);
- } catch (IOException e) {
- log.log(LogLevel.ERROR, "Failed writing file: " + e.getMessage(), e);
- throw new RuntimeException("Failed writing file: ", e);
- }
- }
-
private static void moveFileToDestination(File tempFile, File destination) {
try {
Files.move(tempFile.toPath(), destination.toPath());
diff --git a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceDownloader.java b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceDownloader.java
index 1008df229f1..f8e990a264a 100644
--- a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceDownloader.java
+++ b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceDownloader.java
@@ -43,14 +43,13 @@ public class FileReferenceDownloader {
private final Map<FileReference, Double> downloadStatus = new HashMap<>(); // between 0 and 1
private final Duration downloadTimeout;
private final Duration sleepBetweenRetries;
- private final FileReceiver fileReceiver;
- FileReferenceDownloader(File downloadDirectory, File tmpDirectory, ConnectionPool connectionPool,
- Duration timeout, Duration sleepBetweenRetries) {
+ FileReferenceDownloader(File downloadDirectory, File tmpDirectory, ConnectionPool connectionPool, Duration timeout, Duration sleepBetweenRetries) {
this.connectionPool = connectionPool;
this.downloadTimeout = timeout;
this.sleepBetweenRetries = sleepBetweenRetries;
- this.fileReceiver = new FileReceiver(connectionPool.getSupervisor(), this, downloadDirectory, tmpDirectory);
+ // Needed to receive RPC calls receiveFile* from server after asking for files
+ new FileReceiver(connectionPool.getSupervisor(), this, downloadDirectory, tmpDirectory);
}
private void startDownload(Duration timeout, FileReferenceDownload fileReferenceDownload) {
@@ -86,10 +85,6 @@ public class FileReferenceDownloader {
downloadExecutor.submit(() -> startDownload(downloadTimeout, fileReferenceDownload));
}
- void receiveFile(FileReferenceData fileReferenceData) {
- fileReceiver.receiveFile(fileReferenceData);
- }
-
void completedDownloading(FileReference fileReference, File file) {
synchronized (downloads) {
FileReferenceDownload download = downloads.get(fileReference);
diff --git a/filedistribution/src/test/java/com/yahoo/vespa/filedistribution/FileDownloaderTest.java b/filedistribution/src/test/java/com/yahoo/vespa/filedistribution/FileDownloaderTest.java
index e0ef2ecf7e4..4351b796624 100644
--- a/filedistribution/src/test/java/com/yahoo/vespa/filedistribution/FileDownloaderTest.java
+++ b/filedistribution/src/test/java/com/yahoo/vespa/filedistribution/FileDownloaderTest.java
@@ -13,11 +13,14 @@ import com.yahoo.jrt.Transport;
import com.yahoo.text.Utf8;
import com.yahoo.vespa.config.Connection;
import com.yahoo.vespa.config.ConnectionPool;
+import net.jpountz.xxhash.XXHash64;
+import net.jpountz.xxhash.XXHashFactory;
import org.junit.Before;
import org.junit.Test;
import java.io.File;
import java.io.IOException;
+import java.nio.ByteBuffer;
import java.nio.file.Files;
import java.nio.file.Path;
import java.time.Duration;
@@ -225,7 +228,11 @@ public class FileDownloaderTest {
}
private void receiveFile(FileReference fileReference, String filename, FileReferenceData.Type type, byte[] content) {
- fileDownloader.receiveFile(new FileReferenceDataBlob(fileReference, filename, type, content));
+ XXHash64 hasher = XXHashFactory.fastestInstance().hash64();
+ FileReceiver.Session session =
+ new FileReceiver.Session(downloadDir, tempDir, 1, fileReference, type, filename, content.length);
+ session.addPart(0, content);
+ session.close(hasher.hash(ByteBuffer.wrap(content), 0));
}
private static class MockConnection implements ConnectionPool, com.yahoo.vespa.config.Connection {
diff --git a/filedistribution/src/test/java/com/yahoo/vespa/filedistribution/FileReceiverTest.java b/filedistribution/src/test/java/com/yahoo/vespa/filedistribution/FileReceiverTest.java
index 78fc094a9ef..8dda0bcce66 100644
--- a/filedistribution/src/test/java/com/yahoo/vespa/filedistribution/FileReceiverTest.java
+++ b/filedistribution/src/test/java/com/yahoo/vespa/filedistribution/FileReceiverTest.java
@@ -14,14 +14,10 @@ import org.junit.rules.TemporaryFolder;
import static org.junit.Assert.assertEquals;
import java.io.File;
-import java.io.FileOutputStream;
-import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
public class FileReceiverTest {
private File root;
@@ -92,7 +88,7 @@ public class FileReceiverTest {
assertEquals(all, Utf8.toString(allReadBytes));
}
- private void transferCompressedData(FileReference ref, String fileName, byte[] data) throws IOException {
+ private void transferCompressedData(FileReference ref, String fileName, byte[] data) {
FileReceiver.Session session =
new FileReceiver.Session(root, tempDir, 1, ref, FileReferenceData.Type.compressed, fileName, data.length);
session.addPart(0, data);