aboutsummaryrefslogtreecommitdiffstats
path: root/config-model/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'config-model/src/main')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/application/validation/UrlConfigValidator.java52
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/application/validation/Validation.java1
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/filedistribution/UserConfiguredFiles.java5
3 files changed, 1 insertions, 57 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/UrlConfigValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/UrlConfigValidator.java
deleted file mode 100644
index e6cd1a9e192..00000000000
--- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/UrlConfigValidator.java
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.vespa.model.application.validation;
-
-import com.yahoo.config.model.deploy.DeployState;
-import com.yahoo.vespa.model.VespaModel;
-import com.yahoo.vespa.model.container.ApplicationContainerCluster;
-
-import java.util.Optional;
-
-/**
- * Validates that config using s3:// urls is used in public system and with nodes that are exclusive.
- *
- * @author hmusum
- */
-public class UrlConfigValidator extends Validator {
-
- @Override
- public void validate(VespaModel model, DeployState state) {
- if (! state.isHostedTenantApplication(model.getAdmin().getApplicationType())) return;
-
- model.getContainerClusters().forEach((__, cluster) -> {
- var isExclusive = hasExclusiveNodes(model, cluster);
- validateS3UlsInConfig(state, cluster, isExclusive);
- });
- }
-
- private static boolean hasExclusiveNodes(VespaModel model, ApplicationContainerCluster cluster) {
- return model.hostSystem().getHosts()
- .stream()
- .flatMap(hostResource -> hostResource.spec().membership().stream())
- .filter(membership -> membership.cluster().id().equals(cluster.id()))
- .anyMatch(membership -> membership.cluster().isExclusive());
- }
-
- private static void validateS3UlsInConfig(DeployState state, ApplicationContainerCluster cluster, boolean isExclusive) {
- if (hasUrlInConfig(state)) {
- // TODO: Would be even better if we could add which config/field the url is set for in the error message
- String message = "Found s3:// urls in config for container cluster " + cluster.getName();
- if ( ! state.zone().system().isPublic())
- throw new IllegalArgumentException(message + ". This is only supported in public systems");
- else if ( ! isExclusive)
- throw new IllegalArgumentException(message + ". Nodes in the cluster need to be 'exclusive'," +
- " see https://cloud.vespa.ai/en/reference/services#nodes");
- }
- }
-
- private static boolean hasUrlInConfig(DeployState state) {
- return state.getFileRegistry().export().stream()
- .anyMatch(fileReference -> fileReference.relativePath.startsWith("s3://"));
- }
-
-}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/Validation.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/Validation.java
index 90616c99979..53a553ee624 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/Validation.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/Validation.java
@@ -87,7 +87,6 @@ public class Validation {
new AccessControlFilterExcludeValidator().validate(model, deployState);
new CloudUserFilterValidator().validate(model, deployState);
new CloudHttpConnectorValidator().validate(model, deployState);
- new UrlConfigValidator().validate(model, deployState);
additionalValidators.forEach(v -> v.validate(model, deployState));
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/UserConfiguredFiles.java b/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/UserConfiguredFiles.java
index 8d8b4d72f4d..8bed5e64bf5 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/UserConfiguredFiles.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/UserConfiguredFiles.java
@@ -133,10 +133,7 @@ public class UserConfiguredFiles implements Serializable {
Path path;
if (isModelType) {
var modelReference = ModelReference.valueOf(builder.getValue());
- if (modelReference.path().isEmpty()) {
- modelReference.url().ifPresent(url -> fileRegistry.addUri(url.value()));
- return;
- }
+ if (modelReference.path().isEmpty()) return;
path = Path.fromString(modelReference.path().get().value());
}
else {