diff options
author | Håkon Hallingstad <hakon@oath.com> | 2019-01-17 11:20:30 +0100 |
---|---|---|
committer | Håkon Hallingstad <hakon@oath.com> | 2019-01-17 11:20:30 +0100 |
commit | b1a1038d66df81646bed462295761d1aeed2c1e9 (patch) | |
tree | 55d20787c079517ec9185f1cb180457ea883ec9b | |
parent | 2c9b2d5b0a32bef040e7aca72b205712cd35832f (diff) |
Get useDedicatedNodeForLogserver from flag
16 files changed, 29 insertions, 80 deletions
diff --git a/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java b/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java index d75423859c3..6d5804ab700 100644 --- a/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java +++ b/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java @@ -52,7 +52,6 @@ public interface ModelContext { boolean isBootstrap(); boolean isFirstTimeDeployment(); boolean useDedicatedNodeForLogserver(); - boolean enableLogServer(); } } diff --git a/config-model/src/main/java/com/yahoo/config/model/ConfigModelContext.java b/config-model/src/main/java/com/yahoo/config/model/ConfigModelContext.java index 0cda1a2eb80..c39eb15b027 100644 --- a/config-model/src/main/java/com/yahoo/config/model/ConfigModelContext.java +++ b/config-model/src/main/java/com/yahoo/config/model/ConfigModelContext.java @@ -26,8 +26,7 @@ public final class ConfigModelContext { private ConfigModelContext(ApplicationType applicationType, DeployState deployState, - VespaModel vespaModel, - ConfigModelRepoAdder configModelRepoAdder, + VespaModel vespaModel, ConfigModelRepoAdder configModelRepoAdder, AbstractConfigProducer parent, String producerId) { this.applicationType = applicationType; diff --git a/config-model/src/main/java/com/yahoo/config/model/deploy/DeployProperties.java b/config-model/src/main/java/com/yahoo/config/model/deploy/DeployProperties.java index d0bc04db08e..626b5bfbf5c 100644 --- a/config-model/src/main/java/com/yahoo/config/model/deploy/DeployProperties.java +++ b/config-model/src/main/java/com/yahoo/config/model/deploy/DeployProperties.java @@ -1,11 +1,10 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.config.model.deploy; -import com.yahoo.component.Version; import com.yahoo.config.model.api.ConfigServerSpec; -import com.yahoo.config.model.api.ModelContext; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.HostName; +import com.yahoo.component.Version; import java.net.URI; import java.util.ArrayList; @@ -26,8 +25,6 @@ public class DeployProperties { private final String athenzDnsSuffix; private final boolean hostedVespa; private final Version vespaVersion; - private final boolean enableLogServer; - private final ModelContext.Properties modelContextProperties; private final boolean isBootstrap; private final boolean isFirstTimeDeployment; private final boolean useDedicatedNodeForLogserver; @@ -43,15 +40,11 @@ public class DeployProperties { Version vespaVersion, boolean isBootstrap, boolean isFirstTimeDeployment, - boolean useDedicatedNodeForLogserver, - boolean enableLogServer, - ModelContext.Properties modelContextProperties) { + boolean useDedicatedNodeForLogserver) { this.loadBalancerName = loadBalancerName; this.ztsUrl = ztsUrl; this.athenzDnsSuffix = athenzDnsSuffix; this.vespaVersion = vespaVersion; - this.enableLogServer = enableLogServer; - this.modelContextProperties = modelContextProperties; this.multitenant = multitenant || hostedVespa || Boolean.getBoolean("multitenant"); this.applicationId = applicationId; this.serverSpecs.addAll(configServerSpecs); @@ -102,10 +95,6 @@ public class DeployProperties { public boolean useDedicatedNodeForLogserver() { return useDedicatedNodeForLogserver; } - public boolean enableLogServer() { return enableLogServer; } - - public ModelContext.Properties getModelContextProperties() { return modelContextProperties; } - public static class Builder { private ApplicationId applicationId = ApplicationId.defaultId(); @@ -119,8 +108,6 @@ public class DeployProperties { private boolean isBootstrap = false; private boolean isFirstTimeDeployment = false; private boolean useDedicatedNodeForLogserver = false; - private boolean enableLogServer; - private ModelContext.Properties properties; public Builder applicationId(ApplicationId applicationId) { this.applicationId = applicationId; @@ -177,20 +164,10 @@ public class DeployProperties { return this; } - public Builder enableLogServer(boolean enableLogServer) { - this.enableLogServer = enableLogServer; - return this; - } - - public Builder modelContextProperties(ModelContext.Properties properties) { - this.properties = properties; - return this; - } - public DeployProperties build() { return new DeployProperties(multitenant, applicationId, configServerSpecs, loadBalancerName, hostedVespa, ztsUrl, athenzDnsSuffix, vespaVersion, isBootstrap, isFirstTimeDeployment, - useDedicatedNodeForLogserver, enableLogServer, properties); + useDedicatedNodeForLogserver); } } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/VespaModelFactory.java b/config-model/src/main/java/com/yahoo/vespa/model/VespaModelFactory.java index 5609b96bdb6..d3f4a122b1e 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/VespaModelFactory.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/VespaModelFactory.java @@ -161,8 +161,6 @@ public class VespaModelFactory implements ModelFactory { .isBootstrap(properties.isBootstrap()) .isFirstTimeDeployment(properties.isFirstTimeDeployment()) .useDedicatedNodeForLogserver(properties.useDedicatedNodeForLogserver()) - .enableLogServer(properties.enableLogServer()) - .modelContextProperties(properties) .build(); } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java index fd266e7d771..db5409cdcdb 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java @@ -97,8 +97,7 @@ public class DomAdminV4Builder extends DomAdminBuilderBase { DeployState deployState = context.getDeployState(); if (deployState.getProperties().useDedicatedNodeForLogserver() && context.getApplicationType() == ConfigModelContext.ApplicationType.DEFAULT && - deployState.isHosted() && - deployState.getProperties().enableLogServer()) + deployState.isHosted()) return NodesSpecification.dedicated(1, context); else return NodesSpecification.nonDedicated(1, context); diff --git a/config-model/src/test/java/com/yahoo/config/model/MockModelContext.java b/config-model/src/test/java/com/yahoo/config/model/MockModelContext.java index 4ae6b242063..948c62c2343 100644 --- a/config-model/src/test/java/com/yahoo/config/model/MockModelContext.java +++ b/config-model/src/test/java/com/yahoo/config/model/MockModelContext.java @@ -136,11 +136,6 @@ public class MockModelContext implements ModelContext { @Override public boolean useDedicatedNodeForLogserver() { return false; } - - @Override - public boolean enableLogServer() { - return false; - } }; } } diff --git a/config-model/src/test/java/com/yahoo/vespa/model/VespaModelFactoryTest.java b/config-model/src/test/java/com/yahoo/vespa/model/VespaModelFactoryTest.java index 9ede65b8a13..e4198115b2a 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/VespaModelFactoryTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/VespaModelFactoryTest.java @@ -150,7 +150,6 @@ public class VespaModelFactoryTest { } private ModelContext createMockModelContext(String hosts, String services, HostProvisioner provisionerToOverride) { - return new MockModelContext() { @Override public ApplicationPackage applicationPackage() { @@ -220,11 +219,6 @@ public class VespaModelFactoryTest { @Override public boolean useDedicatedNodeForLogserver() { return false; } - - @Override - public boolean enableLogServer() { - return false; - } }; } }; diff --git a/config-model/src/test/java/com/yahoo/vespa/model/test/VespaModelTester.java b/config-model/src/test/java/com/yahoo/vespa/model/test/VespaModelTester.java index 089d5d3e374..060fe96100d 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/test/VespaModelTester.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/test/VespaModelTester.java @@ -2,6 +2,7 @@ package com.yahoo.vespa.model.test; import com.google.common.collect.ImmutableList; +import com.yahoo.cloud.config.ConfigserverConfig; import com.yahoo.config.application.api.ApplicationPackage; import com.yahoo.config.model.ConfigModelRegistry; import com.yahoo.config.model.NullConfigModelRegistry; @@ -137,7 +138,6 @@ public class VespaModelTester { .hostedVespa(hosted) .applicationId(applicationId) .useDedicatedNodeForLogserver(useDedicatedNodeForLogserver) - .enableLogServer(true) .build(); DeployState deployState = new DeployState.Builder() diff --git a/configdefinitions/src/vespa/configserver.def b/configdefinitions/src/vespa/configserver.def index de626d5f3fa..bef16627c16 100644 --- a/configdefinitions/src/vespa/configserver.def +++ b/configdefinitions/src/vespa/configserver.def @@ -68,5 +68,4 @@ sleepTimeWhenRedeployingFails long default=30 # Feature Flags (poor man's feature flags, to be overridden in configserver-config.xml if needed) buildMinimalSetOfConfigModels bool default=true -useDedicatedNodeForLogserver bool default=true throwIfBootstrappingTenantRepoFails bool default=true diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java b/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java index d3901b342d6..771c223c332 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java @@ -129,10 +129,8 @@ public class ModelContextImpl implements ModelContext { private final boolean isBootstrap; private final boolean isFirstTimeDeployment; private final boolean useDedicatedNodeForLogserver; - private final boolean enableLogServer; public Properties(ApplicationId applicationId, - FlagSource flagSource, boolean multitenant, List<ConfigServerSpec> configServerSpecs, HostName loadBalancerName, @@ -143,7 +141,7 @@ public class ModelContextImpl implements ModelContext { Set<Rotation> rotations, boolean isBootstrap, boolean isFirstTimeDeployment, - boolean useDedicatedNodeForLogserver) { + FlagSource flagSource) { this.applicationId = applicationId; this.multitenant = multitenant; this.configServerSpecs = configServerSpecs; @@ -155,8 +153,7 @@ public class ModelContextImpl implements ModelContext { this.rotations = rotations; this.isBootstrap = isBootstrap; this.isFirstTimeDeployment = isFirstTimeDeployment; - this.useDedicatedNodeForLogserver = useDedicatedNodeForLogserver; - this.enableLogServer = Flags.ENABLE_LOGSERVER + this.useDedicatedNodeForLogserver = Flags.USE_DEDICATED_NODE_FOR_LOGSERVER .bindTo(flagSource) .with(FetchVector.Dimension.APPLICATION_ID, applicationId.serializedForm()) .value(); @@ -201,11 +198,6 @@ public class ModelContextImpl implements ModelContext { @Override public boolean useDedicatedNodeForLogserver() { return useDedicatedNodeForLogserver; } - - @Override - public boolean enableLogServer() { - return enableLogServer; - } } } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/ActivatedModelsBuilder.java b/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/ActivatedModelsBuilder.java index f7a500e5bf6..8083834ad17 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/ActivatedModelsBuilder.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/ActivatedModelsBuilder.java @@ -1,31 +1,31 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.config.server.modelfactory; +import com.yahoo.component.Version; import com.yahoo.config.application.api.ApplicationPackage; import com.yahoo.config.application.api.DeployLogger; import com.yahoo.config.model.api.ConfigDefinitionRepo; import com.yahoo.config.model.api.ModelContext; import com.yahoo.config.model.api.ModelFactory; import com.yahoo.config.model.application.provider.MockFileRegistry; -import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.AllocatedHosts; +import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.HostName; import com.yahoo.config.provision.TenantName; -import com.yahoo.component.Version; import com.yahoo.log.LogLevel; import com.yahoo.vespa.config.server.ConfigServerSpec; import com.yahoo.vespa.config.server.GlobalComponentRegistry; import com.yahoo.vespa.config.server.ServerCache; -import com.yahoo.vespa.config.server.provision.HostProvisionerProvider; -import com.yahoo.vespa.config.server.tenant.Rotations; -import com.yahoo.vespa.config.server.tenant.TenantRepository; import com.yahoo.vespa.config.server.application.Application; import com.yahoo.vespa.config.server.application.PermanentApplicationPackage; import com.yahoo.vespa.config.server.deploy.ModelContextImpl; import com.yahoo.vespa.config.server.monitoring.MetricUpdater; import com.yahoo.vespa.config.server.monitoring.Metrics; +import com.yahoo.vespa.config.server.provision.HostProvisionerProvider; import com.yahoo.vespa.config.server.session.SessionZooKeeperClient; import com.yahoo.vespa.config.server.session.SilentDeployLogger; +import com.yahoo.vespa.config.server.tenant.Rotations; +import com.yahoo.vespa.config.server.tenant.TenantRepository; import com.yahoo.vespa.curator.Curator; import com.yahoo.vespa.flags.FlagSource; @@ -120,7 +120,6 @@ public class ActivatedModelsBuilder extends ModelsBuilder<Application> { private ModelContext.Properties createModelContextProperties(ApplicationId applicationId) { return new ModelContextImpl.Properties(applicationId, - flagSource, configserverConfig.multitenant(), ConfigServerSpec.fromConfig(configserverConfig), HostName.from(configserverConfig.loadBalancerAddress()), @@ -131,7 +130,7 @@ public class ActivatedModelsBuilder extends ModelsBuilder<Application> { new Rotations(curator, TenantRepository.getTenantPath(tenant)).readRotationsFromZooKeeper(applicationId), false, // We may be bootstrapping, but we only know and care during prepare false, // Always false, assume no one uses it when activating - configserverConfig.useDedicatedNodeForLogserver()); + flagSource); } } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/LocalSession.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/LocalSession.java index 5d9665c9815..0f9f8b72de1 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/LocalSession.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/LocalSession.java @@ -3,19 +3,18 @@ package com.yahoo.vespa.config.server.session; import com.yahoo.component.Version; import com.yahoo.config.application.api.ApplicationFile; -import com.yahoo.config.application.api.ApplicationMetaData; import com.yahoo.config.application.api.ApplicationPackage; +import com.yahoo.config.application.api.ApplicationMetaData; import com.yahoo.config.application.api.DeployLogger; import com.yahoo.config.provision.AllocatedHosts; -import com.yahoo.config.provision.ApplicationId; -import com.yahoo.config.provision.TenantName; -import com.yahoo.io.IOUtils; -import com.yahoo.path.Path; import com.yahoo.transaction.AbstractTransaction; import com.yahoo.transaction.NestedTransaction; import com.yahoo.transaction.Transaction; -import com.yahoo.vespa.config.server.SuperModelGenerationCounter; -import com.yahoo.vespa.config.server.TimeoutBudget; +import com.yahoo.io.IOUtils; +import com.yahoo.path.Path; +import com.yahoo.vespa.config.server.*; +import com.yahoo.config.provision.ApplicationId; +import com.yahoo.config.provision.TenantName; import com.yahoo.vespa.config.server.application.ApplicationSet; import com.yahoo.vespa.config.server.application.TenantApplications; import com.yahoo.vespa.config.server.configchange.ConfigChangeActions; diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java index 5c834686c8c..43a5ff6d0c2 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java @@ -156,7 +156,6 @@ public class SessionPreparer { this.rotations = new Rotations(curator, tenantPath); this.rotationsSet = getRotations(params.rotations()); this.properties = new ModelContextImpl.Properties(params.getApplicationId(), - context.getFlagSource(), configserverConfig.multitenant(), ConfigServerSpec.fromConfig(configserverConfig), HostName.from(configserverConfig.loadBalancerAddress()), @@ -167,7 +166,7 @@ public class SessionPreparer { rotationsSet, params.isBootstrap(), ! currentActiveApplicationSet.isPresent(), - configserverConfig.useDedicatedNodeForLogserver()); + context.getFlagSource()); this.preparedModelsBuilder = new PreparedModelsBuilder(modelFactoryRegistry, permanentApplicationPackage, configDefinitionRepo, diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/ModelContextImplTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/ModelContextImplTest.java index 82d1bd3b622..1b4ed2283ba 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/ModelContextImplTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/ModelContextImplTest.java @@ -10,7 +10,6 @@ import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.Rotation; import com.yahoo.config.provision.Zone; import com.yahoo.vespa.config.server.deploy.ModelContextImpl; - import com.yahoo.vespa.flags.InMemoryFlagSource; import org.junit.Test; @@ -21,6 +20,7 @@ import java.util.Set; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; @@ -33,6 +33,7 @@ public class ModelContextImplTest { final Rotation rotation = new Rotation("this.is.a.mock.rotation"); final Set<Rotation> rotations = Collections.singleton(rotation); + final InMemoryFlagSource flagSource = new InMemoryFlagSource(); ModelContext context = new ModelContextImpl( MockApplicationPackage.createEmpty(), @@ -44,7 +45,6 @@ public class ModelContextImplTest { Optional.empty(), new ModelContextImpl.Properties( ApplicationId.defaultId(), - new InMemoryFlagSource(), true, Collections.emptyList(), null, @@ -55,7 +55,7 @@ public class ModelContextImplTest { rotations, false, false, - false), + flagSource), Optional.empty(), new Version(6), new Version(6)); @@ -68,7 +68,7 @@ public class ModelContextImplTest { assertThat(context.properties().applicationId(), is(ApplicationId.defaultId())); assertTrue(context.properties().configServerSpecs().isEmpty()); assertTrue(context.properties().multitenant()); - assertTrue(context.properties().zone() instanceof Zone); + assertNotNull(context.properties().zone()); assertFalse(context.properties().hostedVespa()); assertThat(context.properties().rotations(), equalTo(rotations)); assertThat(context.properties().isFirstTimeDeployment(), equalTo(false)); diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareHandlerTest.java index 87dd87c3def..9007ef1abad 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareHandlerTest.java @@ -405,7 +405,7 @@ public class SessionPrepareHandlerTest extends SessionHandlerTest { null, new HostRegistry<>(), null, - null)); + null)); this.exception = exception; } diff --git a/flags/src/main/java/com/yahoo/vespa/flags/Flags.java b/flags/src/main/java/com/yahoo/vespa/flags/Flags.java index 733ab5b8f31..0f521649a6c 100644 --- a/flags/src/main/java/com/yahoo/vespa/flags/Flags.java +++ b/flags/src/main/java/com/yahoo/vespa/flags/Flags.java @@ -57,9 +57,9 @@ public class Flags { "Whether to enable CPU temperature task", "Takes effect on next host admin tick", HOSTNAME); - public static final UnboundBooleanFlag ENABLE_LOGSERVER = defineFeatureFlag( - "enable-logserver", false, - "Whether to enable logserver.", "Takes effect at redeployment", + public static final UnboundBooleanFlag USE_DEDICATED_NODE_FOR_LOGSERVER = defineFeatureFlag( + "use-dedicated-node-for-logserver", false, + "Whether to use a dedicated node for the logserver.", "Takes effect at redeployment", APPLICATION_ID); public static final UnboundDoubleFlag CONTAINER_CPU_CAP = defineDoubleFlag( |