summaryrefslogtreecommitdiffstats
path: root/config-model/src
diff options
context:
space:
mode:
authorLester Solbakken <lesters@users.noreply.github.com>2021-01-26 12:51:06 +0100
committerGitHub <noreply@github.com>2021-01-26 12:51:06 +0100
commit3e3de199bd191b08e63bde89471cfee452ae8986 (patch)
tree22e4b0b3d291feb4743011ef4b0521d871f20d28 /config-model/src
parentaba7dec14e8cb4cbd6c93a78b42f857246ff854b (diff)
parentb6be9dac90a5c0a27b82be8b80bc6667ab97caf9 (diff)
Merge pull request #16176 from vespa-engine/lesters/skip-global-model-import-if-failed
Skip, don't fail, if model can't be imported when put under models dir
Diffstat (limited to 'config-model/src')
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/deploy/DeployState.java17
1 files changed, 15 insertions, 2 deletions
diff --git a/config-model/src/main/java/com/yahoo/config/model/deploy/DeployState.java b/config-model/src/main/java/com/yahoo/config/model/deploy/DeployState.java
index 13222e323f7..046eef65eb5 100644
--- a/config-model/src/main/java/com/yahoo/config/model/deploy/DeployState.java
+++ b/config-model/src/main/java/com/yahoo/config/model/deploy/DeployState.java
@@ -41,6 +41,7 @@ import com.yahoo.vespa.model.container.search.SemanticRuleBuilder;
import com.yahoo.vespa.model.container.search.SemanticRules;
import com.yahoo.vespa.model.search.NamedSchema;
+import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.Reader;
@@ -54,6 +55,7 @@ import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
+import java.util.logging.Level;
/**
* Contains various state during deploy that should be available in all builders of a {@link com.yahoo.config.model.ConfigModel}
@@ -138,8 +140,7 @@ public class DeployState implements ConfigDefinitionStore {
this.zone = zone;
this.queryProfiles = queryProfiles; // TODO: Remove this by seeing how pagetemplates are propagated
this.semanticRules = semanticRules; // TODO: Remove this by seeing how pagetemplates are propagated
- this.importedModels = new ImportedMlModels(applicationPackage.getFileReference(ApplicationPackage.MODELS_DIR),
- modelImporters);
+ this.importedModels = importMlModels(applicationPackage, modelImporters, deployLogger);
ValidationOverrides suppliedValidationOverrides = applicationPackage.getValidationOverrides().map(ValidationOverrides::fromXml)
.orElse(ValidationOverrides.empty);
@@ -206,6 +207,18 @@ public class DeployState implements ConfigDefinitionStore {
return keyToRepo;
}
+ private static ImportedMlModels importMlModels(ApplicationPackage applicationPackage,
+ Collection<MlModelImporter> modelImporters,
+ DeployLogger deployLogger) {
+ File importFrom = applicationPackage.getFileReference(ApplicationPackage.MODELS_DIR);
+ ImportedMlModels importedModels = new ImportedMlModels(importFrom, modelImporters);
+ for (var entry : importedModels.getSkippedModels().entrySet()) {
+ deployLogger.log(Level.WARNING, "Skipping import of model " + entry.getKey() + " as an exception " +
+ "occurred during import. Error: " + entry.getValue());
+ }
+ return importedModels;
+ }
+
// Global registry of rank profiles.
// TODO: I think this can be removed when we remove "<search version=2.0>" and only support content.
private final RankProfileRegistry rankProfileRegistry;