diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2018-04-03 09:42:27 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-03 09:42:27 +0200 |
commit | 57a22250dd584eec38652b559ff5adb6f394ba8d (patch) | |
tree | a6e6b4f91bada54d64f5da863d030b025cfd73cf /filedistribution | |
parent | 9db3a3c03accfec29f78c5e389c0648ceb95ce0d (diff) | |
parent | a07839e57af28b1529f41722fd958f16210f377f (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')
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); |