summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLester Solbakken <lesters@users.noreply.github.com>2022-05-21 19:48:21 +0200
committerGitHub <noreply@github.com>2022-05-21 19:48:21 +0200
commitd3df36d80de7b67f9dcbbf734b43038c7dae3f50 (patch)
treed17806b5a6c8bd3353e0ffb19162daad21bb226c
parent2c34544abef32f7da1c05a83a3648532afb53186 (diff)
parent77e3ffdbcb23316197f4f34d860c340c64a77178 (diff)
Merge pull request #22688 from vespa-engine/lesters/url-downloading-on-containers-only
Only donload url config on containers - not config server
-rw-r--r--config/src/main/java/com/yahoo/vespa/config/ConfigPayloadApplier.java12
-rw-r--r--config/src/main/java/com/yahoo/vespa/config/ConfigTransformer.java2
-rwxr-xr-xcontainer-core/src/main/java/com/yahoo/container/Container.java8
-rw-r--r--standalone-container/src/main/java/com/yahoo/container/standalone/StandaloneContainerApplication.java1
4 files changed, 19 insertions, 4 deletions
diff --git a/config/src/main/java/com/yahoo/vespa/config/ConfigPayloadApplier.java b/config/src/main/java/com/yahoo/vespa/config/ConfigPayloadApplier.java
index 9cd9a7c0981..5c0e9539f4f 100644
--- a/config/src/main/java/com/yahoo/vespa/config/ConfigPayloadApplier.java
+++ b/config/src/main/java/com/yahoo/vespa/config/ConfigPayloadApplier.java
@@ -273,8 +273,14 @@ public class ConfigPayloadApplier<T extends ConfigInstance.Builder> {
// Need to convert url into actual file if 'url' type is used
} else if (isUrlField(builder, methodName)) {
- UrlReference url = resolveUrl(Utf8.toString(value.asUtf8()));
- invokeSetter(builder, methodName, url);
+ String url = Utf8.toString(value.asUtf8());
+ if (url == null || url.length() == 0) {
+ invokeSetter(builder, methodName, "");
+ } else {
+ UrlReference urlref = resolveUrl(Utf8.toString(value.asUtf8()));
+ invokeSetter(builder, methodName, urlref);
+ }
+
} else {
Object object = getValueFromInspector(value);
@@ -294,7 +300,7 @@ public class ConfigPayloadApplier<T extends ConfigInstance.Builder> {
private UrlReference resolveUrl(String url) {
if (urlDownloader == null) {
- throw new RuntimeException("Resolving url field failed due to missing URL downloader.");
+ return new UrlReference(url); // assuming config server - just return the actual url.
}
File file = urlDownloader.waitFor(new UrlReference(url), 60 * 60);
return new UrlReference(file.getAbsolutePath());
diff --git a/config/src/main/java/com/yahoo/vespa/config/ConfigTransformer.java b/config/src/main/java/com/yahoo/vespa/config/ConfigTransformer.java
index 3d3a27da713..9ececb71c56 100644
--- a/config/src/main/java/com/yahoo/vespa/config/ConfigTransformer.java
+++ b/config/src/main/java/com/yahoo/vespa/config/ConfigTransformer.java
@@ -28,7 +28,7 @@ public class ConfigTransformer<T extends ConfigInstance> {
private final Class<T> clazz;
private static volatile PathAcquirer pathAcquirer = new IdentityPathAcquirer();
- private static volatile UrlDownloader urlDownloader;
+ private static volatile UrlDownloader urlDownloader = null;
/**
* For internal use only *
diff --git a/container-core/src/main/java/com/yahoo/container/Container.java b/container-core/src/main/java/com/yahoo/container/Container.java
index 3d3bf221528..47731761630 100755
--- a/container-core/src/main/java/com/yahoo/container/Container.java
+++ b/container-core/src/main/java/com/yahoo/container/Container.java
@@ -24,6 +24,7 @@ import java.util.logging.Logger;
public class Container {
private volatile boolean usingCustomFileAcquirer = false;
+ private volatile boolean disabledUrlDownloader = false;
private volatile ComponentRegistry<RequestHandler> requestHandlerRegistry;
private volatile ComponentRegistry<ClientProvider> clientProviderRegistry;
@@ -132,8 +133,15 @@ public class Container {
}
public void setupUrlDownloader() {
+ if (disabledUrlDownloader) {
+ return;
+ }
this.urlDownloader = new UrlDownloader();
ConfigTransformer.setUrlDownloader(urlDownloader);
}
+ public void disableUrlDownloader() {
+ disabledUrlDownloader = true;
+ }
+
}
diff --git a/standalone-container/src/main/java/com/yahoo/container/standalone/StandaloneContainerApplication.java b/standalone-container/src/main/java/com/yahoo/container/standalone/StandaloneContainerApplication.java
index fe3e8782973..a677c69cb79 100644
--- a/standalone-container/src/main/java/com/yahoo/container/standalone/StandaloneContainerApplication.java
+++ b/standalone-container/src/main/java/com/yahoo/container/standalone/StandaloneContainerApplication.java
@@ -154,6 +154,7 @@ public class StandaloneContainerApplication implements Application {
public void start() {
try {
com.yahoo.container.Container.get().setCustomFileAcquirer(distributedFiles);
+ com.yahoo.container.Container.get().disableUrlDownloader();
configuredApplication.start();
} catch (Exception e) {
com.yahoo.container.Container.resetInstance();