summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2020-11-06 10:37:28 +0100
committerJon Marius Venstad <venstad@gmail.com>2020-11-06 10:37:28 +0100
commit2e8baa10562e51234eb74fa24a172b65433d9692 (patch)
tree303b987ca3c5aaec9a2f946c60a6da63d6b84daf
parent2af8fa629d15cb11a26c04658676357f5c8f5a7c (diff)
Wire reindexing status into model
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java1
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java7
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/ActivatedModelsBuilder.java2
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/PreparedModelsBuilder.java6
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java2
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/ModelContextImplTest.java1
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(),