diff options
author | Jon Marius Venstad <venstad@gmail.com> | 2020-11-06 10:37:28 +0100 |
---|---|---|
committer | Jon Marius Venstad <venstad@gmail.com> | 2020-11-06 10:37:28 +0100 |
commit | 2e8baa10562e51234eb74fa24a172b65433d9692 (patch) | |
tree | 303b987ca3c5aaec9a2f946c60a6da63d6b84daf | |
parent | 2af8fa629d15cb11a26c04658676357f5c8f5a7c (diff) |
Wire reindexing status into model
6 files changed, 19 insertions, 0 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 44f1e92bb79..ea7da919e10 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 @@ -37,6 +37,7 @@ public interface ModelContext { DeployLogger deployLogger(); ConfigDefinitionRepo configDefinitionRepo(); FileRegistry getFileRegistry(); + default Optional<? extends Reindexing> reindexing() { return Optional.empty(); } Properties properties(); default Optional<File> appDir() { return Optional.empty();} 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 c122c7e7d17..6fb17e7cb72 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 @@ -15,6 +15,7 @@ import com.yahoo.config.model.api.Model; import com.yahoo.config.model.api.ModelContext; import com.yahoo.config.model.api.Provisioned; import com.yahoo.config.model.api.Quota; +import com.yahoo.config.model.api.Reindexing; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.AthenzDomain; import com.yahoo.config.provision.DockerImage; @@ -46,6 +47,7 @@ public class ModelContextImpl implements ModelContext { private final FileRegistry fileRegistry; private final Optional<HostProvisioner> hostProvisioner; private final Provisioned provisioned; + private final Optional<? extends Reindexing> reindexing; private final ModelContext.Properties properties; private final Optional<File> appDir; @@ -69,6 +71,7 @@ public class ModelContextImpl implements ModelContext { DeployLogger deployLogger, ConfigDefinitionRepo configDefinitionRepo, FileRegistry fileRegistry, + Optional<? extends Reindexing> reindexing, Optional<HostProvisioner> hostProvisioner, Provisioned provisioned, ModelContext.Properties properties, @@ -82,6 +85,7 @@ public class ModelContextImpl implements ModelContext { this.deployLogger = deployLogger; this.configDefinitionRepo = configDefinitionRepo; this.fileRegistry = fileRegistry; + this.reindexing = reindexing; this.hostProvisioner = hostProvisioner; this.provisioned = provisioned; this.properties = properties; @@ -121,6 +125,9 @@ public class ModelContextImpl implements ModelContext { public FileRegistry getFileRegistry() { return fileRegistry; } @Override + public Optional<? extends Reindexing> reindexing() { return reindexing; } + + @Override public ModelContext.Properties properties() { return properties; } @Override 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 7601d90043e..acdea54edbc 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 @@ -19,6 +19,7 @@ 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.application.Application; +import com.yahoo.vespa.config.server.application.ApplicationCuratorDatabase; import com.yahoo.vespa.config.server.application.PermanentApplicationPackage; import com.yahoo.vespa.config.server.deploy.ModelContextImpl; import com.yahoo.vespa.config.server.monitoring.MetricUpdater; @@ -97,6 +98,7 @@ public class ActivatedModelsBuilder extends ModelsBuilder<Application> { new SilentDeployLogger(), configDefinitionRepo, getForVersionOrLatest(applicationPackage.getFileRegistries(), modelFactory.version()).orElse(new MockFileRegistry()), + new ApplicationCuratorDatabase(tenant, curator).readReindexingStatus(applicationId), createStaticProvisioner(applicationPackage.getAllocatedHosts(), modelContextProperties.applicationId(), provisioned), diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/PreparedModelsBuilder.java b/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/PreparedModelsBuilder.java index 16f455d5e0a..a064e8a9cac 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/PreparedModelsBuilder.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/PreparedModelsBuilder.java @@ -21,6 +21,7 @@ import com.yahoo.config.provision.AllocatedHosts; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.DockerImage; import com.yahoo.vespa.config.server.application.Application; +import com.yahoo.vespa.config.server.application.ApplicationCuratorDatabase; import com.yahoo.vespa.config.server.application.ApplicationSet; import com.yahoo.vespa.config.server.application.PermanentApplicationPackage; import com.yahoo.vespa.config.server.deploy.ModelContextImpl; @@ -29,6 +30,7 @@ import com.yahoo.vespa.config.server.host.HostValidator; import com.yahoo.vespa.config.server.provision.HostProvisionerProvider; import com.yahoo.vespa.config.server.provision.StaticProvisioner; import com.yahoo.vespa.config.server.session.PrepareParams; +import com.yahoo.vespa.curator.Curator; import java.io.File; import java.io.IOException; @@ -53,12 +55,14 @@ public class PreparedModelsBuilder extends ModelsBuilder<PreparedModelsBuilder.P private final FileDistributionProvider fileDistributionProvider; private final Optional<ApplicationSet> currentActiveApplicationSet; private final ModelContext.Properties properties; + private final Curator curator; public PreparedModelsBuilder(ModelFactoryRegistry modelFactoryRegistry, PermanentApplicationPackage permanentApplicationPackage, ConfigDefinitionRepo configDefinitionRepo, FileDistributionProvider fileDistributionProvider, HostProvisionerProvider hostProvisionerProvider, + Curator curator, HostValidator<ApplicationId> hostValidator, DeployLogger logger, PrepareParams params, @@ -70,6 +74,7 @@ public class PreparedModelsBuilder extends ModelsBuilder<PreparedModelsBuilder.P this.configDefinitionRepo = configDefinitionRepo; this.fileDistributionProvider = fileDistributionProvider; this.hostValidator = hostValidator; + this.curator = curator; this.logger = logger; this.params = params; this.currentActiveApplicationSet = currentActiveApplicationSet; @@ -95,6 +100,7 @@ public class PreparedModelsBuilder extends ModelsBuilder<PreparedModelsBuilder.P logger, configDefinitionRepo, fileDistributionProvider.getFileRegistry(), + new ApplicationCuratorDatabase(applicationId.tenant(), curator).readReindexingStatus(applicationId), createHostProvisioner(allocatedHosts, provisioned), provisioned, properties, 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 f54343f2dc1..941f52d0830 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 @@ -30,6 +30,7 @@ import com.yahoo.lang.SettableOptional; import com.yahoo.path.Path; import com.yahoo.vespa.config.server.ConfigServerSpec; import com.yahoo.vespa.config.server.TimeoutBudget; +import com.yahoo.vespa.config.server.application.ApplicationCuratorDatabase; import com.yahoo.vespa.config.server.application.ApplicationSet; import com.yahoo.vespa.config.server.application.PermanentApplicationPackage; import com.yahoo.vespa.config.server.configchange.ConfigChangeActions; @@ -221,6 +222,7 @@ public class SessionPreparer { configDefinitionRepo, fileDistributionProvider, hostProvisionerProvider, + curator, hostValidator, logger, params, 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 dd219ce7b95..120736fba51 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 @@ -47,6 +47,7 @@ public class ModelContextImplTest { new StaticConfigDefinitionRepo(), new MockFileRegistry(), Optional.empty(), + Optional.empty(), new Provisioned(), new ModelContextImpl.Properties( ApplicationId.defaultId(), |