diff options
author | jonmv <venstad@gmail.com> | 2022-04-20 13:24:01 +0200 |
---|---|---|
committer | jonmv <venstad@gmail.com> | 2022-04-20 13:24:01 +0200 |
commit | 67419ac004681a25fb9527849931fe3ded1959e2 (patch) | |
tree | 77fecc97f655cf99b77b9052b96781ed63dfb842 /configserver | |
parent | b8afc39c5314fe0c7a88fc6ce158a1e358c9af5f (diff) |
Disallow URI type resources for hosted Vespa
Diffstat (limited to 'configserver')
4 files changed, 16 insertions, 4 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/ApplicationFileManager.java b/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/ApplicationFileManager.java index 8072dab978f..727ca4c44d8 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/ApplicationFileManager.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/ApplicationFileManager.java @@ -26,10 +26,12 @@ public class ApplicationFileManager implements AddFileInterface { private final File applicationDir; private final FileDirectory fileDirectory; + private final boolean isHosted; - ApplicationFileManager(File applicationDir, FileDirectory fileDirectory) { + ApplicationFileManager(File applicationDir, FileDirectory fileDirectory, boolean isHosted) { this.applicationDir = applicationDir; this.fileDirectory = fileDirectory; + this.isHosted = isHosted; } @Override @@ -44,6 +46,7 @@ public class ApplicationFileManager implements AddFileInterface { @Override public FileReference addUri(String uri, Path path) { + if (isHosted) throw new IllegalArgumentException("URI type resources are not supported in this Vespa cloud"); try (TmpDir tmp = new TmpDir()) { return addFile(download(uri, tmp.dir, path)); } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDistributionFactory.java b/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDistributionFactory.java index 1027cc6a237..1d162b7af9a 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDistributionFactory.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDistributionFactory.java @@ -36,7 +36,7 @@ public class FileDistributionFactory implements AutoCloseable { } public AddFileInterface createFileManager(File applicationDir) { - return new ApplicationFileManager(applicationDir, new FileDirectory(getFileReferencesDir())); + return new ApplicationFileManager(applicationDir, new FileDirectory(getFileReferencesDir()), configserverConfig.hostedVespa()); } protected File getFileReferencesDir() { diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/filedistribution/FileDBRegistryTestCase.java b/configserver/src/test/java/com/yahoo/vespa/config/server/filedistribution/FileDBRegistryTestCase.java index 6d7074aef3c..7ed5388129d 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/filedistribution/FileDBRegistryTestCase.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/filedistribution/FileDBRegistryTestCase.java @@ -14,6 +14,7 @@ import java.nio.charset.StandardCharsets; import java.util.Set; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertThrows; import static org.junit.Assert.fail; /** @@ -32,10 +33,18 @@ public class FileDBRegistryTestCase { private static final FileReference FOO_REF = new FileReference("b5ce94ca1feae86c"); @Test + public void uriResourcesNotSupportedWhenHosted() { + assertEquals("URI type resources are not supported in this Vespa cloud", + assertThrows(IllegalArgumentException.class, + () -> new ApplicationFileManager(null, null, true).addUri(null, null)) + .getMessage()); + } + + @Test public void importAndExport() throws IOException { TemporaryFolder tmpDir = new TemporaryFolder(); tmpDir.create(); - AddFileInterface fileManager = new ApplicationFileManager(new File(APP), new FileDirectory(tmpDir.newFolder())); + AddFileInterface fileManager = new ApplicationFileManager(new File(APP), new FileDirectory(tmpDir.newFolder()), false); FileRegistry fileRegistry = new FileDBRegistry(fileManager); assertEquals(FOO_REF, fileRegistry.addFile(FOO_FILE)); try { diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/filedistribution/MockFileRegistry.java b/configserver/src/test/java/com/yahoo/vespa/config/server/filedistribution/MockFileRegistry.java index 9a9c224627a..5cda7521188 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/filedistribution/MockFileRegistry.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/filedistribution/MockFileRegistry.java @@ -23,7 +23,7 @@ public class MockFileRegistry implements FileRegistry { public MockFileRegistry(File applicationDir, File rootPath) { FileDirectory fileDirectory = new FileDirectory(rootPath); - this.addFileInterface = new ApplicationFileManager(applicationDir, fileDirectory); + this.addFileInterface = new ApplicationFileManager(applicationDir, fileDirectory, false); } public FileReference addFile(String relativePath) { |