From a140a180467ccc2c2325f0ef0396db7a07022f5d Mon Sep 17 00:00:00 2001 From: Jon Bratseth Date: Mon, 30 Nov 2020 16:09:32 +0100 Subject: Revert "Merge pull request #15542 from vespa-engine/revert-15540-bratseth/apply-on-restart-take-6" This reverts commit cf34278a1f367301a740d9781cd07d32175bbd49, reversing changes made to 9d64924f89a48e712403fb73808e2280bfe3dfe3. --- .../main/java/com/yahoo/vespa/model/InstanceResolver.java | 5 +++-- .../src/main/java/com/yahoo/vespa/model/VespaModel.java | 15 +++++++++++++++ .../java/com/yahoo/vespa/model/container/Container.java | 5 ++--- .../com/yahoo/vespa/model/container/ContainerCluster.java | 1 + .../change/RestartChangesDefersConfigChangesTest.java | 10 ++++++---- 5 files changed, 27 insertions(+), 9 deletions(-) (limited to 'config-model') diff --git a/config-model/src/main/java/com/yahoo/vespa/model/InstanceResolver.java b/config-model/src/main/java/com/yahoo/vespa/model/InstanceResolver.java index a8404b076d4..11e97bc8a95 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/InstanceResolver.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/InstanceResolver.java @@ -31,7 +31,8 @@ import java.util.Map; * * @author Vegard Havdal */ -// TODO This functionality should be on VespaModel itself, but we don't have a way right now to apply a config override to a ConfigInstance.Builder +// TODO: Most of this has been copied to ConfigInstance.Builder.buildInstance() and can be removed from here +// when Model.getConfig is removed class InstanceResolver { private static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(InstanceResolver.class.getName()); @@ -138,7 +139,6 @@ class InstanceResolver { return packagePrefix.value + cKey.getNamespace(); } - enum PackagePrefix { COM_YAHOO("com.yahoo."), NONE(""); @@ -148,4 +148,5 @@ class InstanceResolver { this.value = value; } } + } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java b/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java index 2ffc24239f9..9fdaaff9d5e 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java @@ -313,6 +313,7 @@ public final class VespaModel extends AbstractConfigProducerRoot implements Seri * @param configId the config id * @return a config instance of the given type */ + @Override public CONFIGTYPE getConfig(Class clazz, String configId) { try { ConfigInstance.Builder builder = newBuilder(clazz); @@ -393,6 +394,7 @@ public final class VespaModel extends AbstractConfigProducerRoot implements Seri * @param targetDef The config definition to use for the schema * @return The payload as a list of strings */ + @Deprecated // TODO: Remove after December 2020 @Override public ConfigPayload getConfig(ConfigKey configKey, com.yahoo.vespa.config.buildergen.ConfigDefinition targetDef) { Objects.requireNonNull(targetDef, "config definition cannot be null"); @@ -404,6 +406,19 @@ public final class VespaModel extends AbstractConfigProducerRoot implements Seri return (innerCNode != null) ? payload.applyDefaultsFromDef(innerCNode) : payload; } + /** + * Resolve config for a given key and config definition + * + * @param configKey the key to resolve. + * @param targetDef the config definition to use for the schema + * @return the resolved config instance + */ + @Override + public ConfigInstance.Builder getConfigInstance(ConfigKey configKey, com.yahoo.vespa.config.buildergen.ConfigDefinition targetDef) { + Objects.requireNonNull(targetDef, "config definition cannot be null"); + return resolveToBuilder(configKey); + } + /** * Resolves the given config key into a correctly typed ConfigBuilder * and fills in the config from this model. diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/Container.java b/config-model/src/main/java/com/yahoo/vespa/model/container/Container.java index 6e470b24f9f..5e95403313c 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/Container.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/Container.java @@ -306,9 +306,7 @@ public abstract class Container extends AbstractService implements .port(getRpcPort()) .slobrokId(serviceSlobrokId())) .filedistributor(filedistributorConfig()) - .discriminator((clusterName != null ? clusterName + "." : "" ) + name) - .restartOnDeploy(owner != null && owner.getDeferChangesUntilRestart()); - + .discriminator((clusterName != null ? clusterName + "." : "" ) + name); } /** Returns the jvm args set explicitly for this node */ @@ -330,6 +328,7 @@ public abstract class Container extends AbstractService implements @Override public void getConfig(ComponentsConfig.Builder builder) { + builder.setApplyOnRestart(owner.getDeferChangesUntilRestart()); // Sufficient to set on one config builder.components.addAll(ComponentsConfigGenerator.generate(allEnabledComponents())); } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java index 813247d1ae9..c0fd4eb7b05 100755 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java @@ -413,6 +413,7 @@ public abstract class ContainerCluster @Override public void getConfig(ComponentsConfig.Builder builder) { + builder.setApplyOnRestart(getDeferChangesUntilRestart()); // Sufficient to set on one config builder.components.addAll(ComponentsConfigGenerator.generate(getAllComponents())); builder.components(new ComponentsConfig.Components.Builder().id("com.yahoo.container.core.config.HandlersConfigurerDi$RegistriesHack")); } diff --git a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/RestartChangesDefersConfigChangesTest.java b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/RestartChangesDefersConfigChangesTest.java index 35aa9a3c988..fda4c54c154 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/RestartChangesDefersConfigChangesTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/RestartChangesDefersConfigChangesTest.java @@ -1,9 +1,11 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.model.application.validation.change; +import com.yahoo.cloud.config.log.LogdConfig; import com.yahoo.config.model.provision.InMemoryProvisioner; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.NodeResources; +import com.yahoo.container.ComponentsConfig; import com.yahoo.container.QrConfig; import com.yahoo.vespa.model.VespaModel; import com.yahoo.vespa.model.application.validation.ValidationTester; @@ -26,15 +28,15 @@ public class RestartChangesDefersConfigChangesTest { // Change node count - no restart VespaModel gen2 = tester.deploy(gen1, getServices(4, 3), Environment.prod, null).getFirst(); - var config2 = new QrConfig.Builder(); + var config2 = new ComponentsConfig.Builder(); gen2.getContainerClusters().get("default").getContainers().get(0).getConfig(config2); - assertFalse(config2.build().restartOnDeploy()); + assertFalse(config2.getApplyOnRestart()); // Change memory amount - requires restart VespaModel gen3 = tester.deploy(gen2, getServices(4, 2), Environment.prod, null).getFirst(); - var config3 = new QrConfig.Builder(); + var config3 = new ComponentsConfig.Builder(); gen3.getContainerClusters().get("default").getContainers().get(0).getConfig(config3); - assertTrue(config3.build().restartOnDeploy()); + assertTrue(config3.getApplyOnRestart()); } private static String getServices(int nodes, int memory) { -- cgit v1.2.3