summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2020-12-02 07:53:44 +0100
committerJon Bratseth <bratseth@gmail.com>2020-12-02 07:53:44 +0100
commitd5982ee7479179b6754b1b9cd4cdbc8140c5e961 (patch)
tree721db18f73b48066dfe9ad4e18066ac2b7955b65 /config-model
parent4cf13bc7db215e77f7688e429f700880c115fe76 (diff)
Revert "Merge pull request #15581 from vespa-engine/revert-15578-bratseth/apply-on-restart-take-10"
This reverts commit 4cf13bc7db215e77f7688e429f700880c115fe76, reversing changes made to e21f385bd4f21326608f3a69325df4e96d4a65e5.
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/InstanceResolver.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java15
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/Container.java5
-rwxr-xr-xconfig-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java1
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/RestartChangesDefersConfigChangesTest.java10
5 files changed, 27 insertions, 9 deletions
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 extends ConfigInstance> CONFIGTYPE getConfig(Class<CONFIGTYPE> 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");
@@ -405,6 +407,19 @@ public final class VespaModel extends AbstractConfigProducerRoot implements Seri
}
/**
+ * 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<CONTAINER extends Container>
@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) {