summaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
authorjonmv <venstad@gmail.com>2022-04-20 13:24:01 +0200
committerjonmv <venstad@gmail.com>2022-04-20 13:24:01 +0200
commit67419ac004681a25fb9527849931fe3ded1959e2 (patch)
tree77fecc97f655cf99b77b9052b96781ed63dfb842 /configserver
parentb8afc39c5314fe0c7a88fc6ce158a1e358c9af5f (diff)
Disallow URI type resources for hosted Vespa
Diffstat (limited to 'configserver')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/ApplicationFileManager.java5
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDistributionFactory.java2
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/filedistribution/FileDBRegistryTestCase.java11
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/filedistribution/MockFileRegistry.java2
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) {