diff options
Diffstat (limited to 'configserver/src/main/java/com/yahoo/vespa/config/server')
7 files changed, 17 insertions, 45 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/SuperModelController.java b/configserver/src/main/java/com/yahoo/vespa/config/server/SuperModelController.java index 933a8d86230..0bddd8d0637 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/SuperModelController.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/SuperModelController.java @@ -46,7 +46,7 @@ public class SuperModelController { ConfigKey<?> configKey = request.getConfigKey(); validateConfigDefinition(request.getConfigKey(), request.getDefContent()); ConfigPayload payload = model.getConfig(configKey); - return responseFactory.createResponse(payload, generation, false, false); + return responseFactory.createResponse(payload, generation, false); } private void validateConfigDefinition(ConfigKey<?> configKey, DefContent defContent) { diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/application/Application.java b/configserver/src/main/java/com/yahoo/vespa/config/server/application/Application.java index 4b61021bc38..8d001d5d5df 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/application/Application.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/application/Application.java @@ -2,7 +2,6 @@ package com.yahoo.vespa.config.server.application; import com.yahoo.component.Version; -import com.yahoo.config.ConfigInstance; import com.yahoo.config.ConfigurationRuntimeException; import com.yahoo.config.model.api.ApplicationInfo; import com.yahoo.config.model.api.Model; @@ -12,8 +11,6 @@ import com.yahoo.vespa.config.ConfigCacheKey; import com.yahoo.vespa.config.ConfigDefinitionKey; import com.yahoo.vespa.config.ConfigKey; import com.yahoo.vespa.config.ConfigPayload; -import com.yahoo.vespa.config.ConfigPayloadBuilder; -import com.yahoo.vespa.config.GenericConfig; import com.yahoo.vespa.config.GetConfigRequest; import com.yahoo.vespa.config.buildergen.ConfigDefinition; import com.yahoo.vespa.config.protocol.ConfigResponse; @@ -26,7 +23,6 @@ import com.yahoo.vespa.config.server.rpc.ConfigResponseFactory; import com.yahoo.vespa.config.server.rpc.UncompressedConfigResponseFactory; import com.yahoo.vespa.config.server.tenant.TenantRepository; import com.yahoo.vespa.config.util.ConfigUtils; -import com.yahoo.yolean.Exceptions; import java.util.Objects; import java.util.Set; @@ -135,35 +131,18 @@ public class Application implements ModelResult { debug("Resolving " + configKey + " with config definition " + def); } - ConfigInstance.Builder builder; - ConfigPayload payload; + ConfigPayload payload = null; try { - builder = model.getConfigInstance(configKey, def); - if (builder instanceof GenericConfig.GenericConfigBuilder) { - payload = ((GenericConfig.GenericConfigBuilder) builder).getPayload(); - } - else { - try { - ConfigInstance instance = builder.buildInstance(def.getCNode()); - payload = ConfigPayload.fromInstance(instance); - } catch (ConfigurationRuntimeException e) { - // This can happen in cases where services ask for config that no longer exist before they have been able - // to reconfigure themselves - log.log(Level.INFO, "Error resolving instance for builder '" + builder.getClass().getName() + - "', returning empty config: " + Exceptions.toMessageString(e)); - payload = ConfigPayload.fromBuilder(new ConfigPayloadBuilder()); - } - if (def.getCNode() != null) - payload.applyDefaultsFromDef(def.getCNode()); - } + payload = model.getConfig(configKey, def); } catch (Exception e) { throw new ConfigurationRuntimeException("Unable to get config for " + app, e); } + if (payload == null) { + metricUpdater.incrementFailedRequests(); + throw new ConfigurationRuntimeException("Unable to resolve config " + configKey); + } - ConfigResponse configResponse = responseFactory.createResponse(payload, - applicationGeneration, - internalRedeploy, - builder.getApplyOnRestart()); + ConfigResponse configResponse = responseFactory.createResponse(payload, applicationGeneration, internalRedeploy); metricUpdater.incrementProcTime(System.currentTimeMillis() - start); if (useCache(req)) { cache.put(cacheKey, configResponse, configResponse.getConfigMd5()); diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/ConfigResponseFactory.java b/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/ConfigResponseFactory.java index 00a0e6f8f2e..415fa764823 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/ConfigResponseFactory.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/ConfigResponseFactory.java @@ -26,15 +26,12 @@ public interface ConfigResponseFactory { /** * Creates a {@link ConfigResponse} for a given payload and generation. - * * @param payload the {@link ConfigPayload} to put in the response * @param generation the payload generation * @param internalRedeploy whether this config generation was produced by an internal redeployment * not a change to the application package - * @param applyOnRestart true if this config change should only be applied on restart, - * false if it should be applied immediately * @return a {@link ConfigResponse} that can be sent to the client */ - ConfigResponse createResponse(ConfigPayload payload, long generation, boolean internalRedeploy, boolean applyOnRestart); + ConfigResponse createResponse(ConfigPayload payload, long generation, boolean internalRedeploy); } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/GetConfigProcessor.java b/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/GetConfigProcessor.java index 5d637c0e0bd..62f7d3ce5d0 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/GetConfigProcessor.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/GetConfigProcessor.java @@ -125,7 +125,7 @@ class GetConfigProcessor implements Runnable { // config == null is not an error, but indicates that the config will be returned later. if ((config != null) && (!config.hasEqualConfig(request) || config.hasNewerGeneration(request) || forceResponse)) { // debugLog(trace, "config response before encoding:" + config.toString()); - request.addOkResponse(request.payloadFromResponse(config), config.getGeneration(), config.isInternalRedeploy(), config.applyOnRestart(), config.getConfigMd5()); + request.addOkResponse(request.payloadFromResponse(config), config.getGeneration(), config.isInternalRedeploy(), config.getConfigMd5()); if (logDebug(trace)) { debugLog(trace, "return response: " + request.getShortDescription()); } @@ -166,8 +166,8 @@ class GetConfigProcessor implements Runnable { log.log(Level.FINE, () -> "Returning empty sentinel config for request from " + request.getClientHostName()); ConfigPayload emptyPayload = ConfigPayload.empty(); String configMd5 = ConfigUtils.getMd5(emptyPayload); - ConfigResponse config = SlimeConfigResponse.fromConfigPayload(emptyPayload, 0, false, false, configMd5); - request.addOkResponse(request.payloadFromResponse(config), config.getGeneration(), false, false, config.getConfigMd5()); + ConfigResponse config = SlimeConfigResponse.fromConfigPayload(emptyPayload, 0, false, configMd5); + request.addOkResponse(request.payloadFromResponse(config), config.getGeneration(), false, config.getConfigMd5()); respond(request); } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/LZ4ConfigResponseFactory.java b/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/LZ4ConfigResponseFactory.java index a818eaeb8f5..cba1316a131 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/LZ4ConfigResponseFactory.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/LZ4ConfigResponseFactory.java @@ -22,13 +22,12 @@ public class LZ4ConfigResponseFactory implements ConfigResponseFactory { @Override public ConfigResponse createResponse(ConfigPayload payload, long generation, - boolean internalRedeploy, - boolean applyOnRestart) { + boolean internalRedeploy) { Utf8Array rawPayload = payload.toUtf8Array(true); String configMd5 = ConfigUtils.getMd5(rawPayload); CompressionInfo info = CompressionInfo.create(CompressionType.LZ4, rawPayload.getByteLength()); Utf8Array compressed = new Utf8Array(compressor.compress(rawPayload.getBytes())); - return new SlimeConfigResponse(compressed, generation, internalRedeploy, applyOnRestart, configMd5, info); + return new SlimeConfigResponse(compressed, generation, internalRedeploy, configMd5, info); } } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/UncompressedConfigResponseFactory.java b/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/UncompressedConfigResponseFactory.java index e3f3f1c1395..2de88ab44cc 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/UncompressedConfigResponseFactory.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/UncompressedConfigResponseFactory.java @@ -19,12 +19,11 @@ public class UncompressedConfigResponseFactory implements ConfigResponseFactory @Override public ConfigResponse createResponse(ConfigPayload payload, long generation, - boolean internalRedeploy, - boolean applyOnRestart) { + boolean internalRedeploy) { Utf8Array rawPayload = payload.toUtf8Array(true); String configMd5 = ConfigUtils.getMd5(rawPayload); CompressionInfo info = CompressionInfo.create(CompressionType.UNCOMPRESSED, rawPayload.getByteLength()); - return new SlimeConfigResponse(rawPayload, generation, internalRedeploy, applyOnRestart, configMd5, info); + return new SlimeConfigResponse(rawPayload, generation, internalRedeploy, configMd5, info); } } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java index dfe4055d844..93c1e4c2b50 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java @@ -171,9 +171,7 @@ public class SessionRepository { * @param timeoutBudget timeout for creating session and waiting for other servers. * @return a new session */ - public LocalSession createSessionFromExisting(Session existingSession, - boolean internalRedeploy, - TimeoutBudget timeoutBudget) { + public LocalSession createSessionFromExisting(Session existingSession, boolean internalRedeploy, TimeoutBudget timeoutBudget) { ApplicationId existingApplicationId = existingSession.getApplicationId(); File existingApp = getSessionAppDir(existingSession.getSessionId()); LocalSession session = createSessionFromApplication(existingApp, existingApplicationId, internalRedeploy, timeoutBudget); |