diff options
author | Lester Solbakken <lesters@users.noreply.github.com> | 2021-01-26 12:51:06 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-26 12:51:06 +0100 |
commit | 3e3de199bd191b08e63bde89471cfee452ae8986 (patch) | |
tree | 22e4b0b3d291feb4743011ef4b0521d871f20d28 /config-model/src | |
parent | aba7dec14e8cb4cbd6c93a78b42f857246ff854b (diff) | |
parent | b6be9dac90a5c0a27b82be8b80bc6667ab97caf9 (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.java | 17 |
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; |