diff options
author | Jon Bratseth <bratseth@oath.com> | 2018-06-19 12:21:08 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-19 12:21:08 +0200 |
commit | 8a520db9ba4897cd2a97d5b36d61e998765ffa36 (patch) | |
tree | 43966d66a8d7922feaac07b6b5924e6e57952b20 | |
parent | 017d615e0aee5cb9210f2af9403819f51349f07a (diff) | |
parent | aebc3edabe3e06a90600b5204f2a9d5b2506ce2e (diff) |
Merge pull request #6231 from vespa-engine/bratseth/reuse-allocation-decision
Reuse allocation decisions
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/session/RemoteSession.java | 8 | ||||
-rw-r--r-- | vespajlib/src/main/java/com/yahoo/lang/SettableOptional.java | 5 |
2 files changed, 12 insertions, 1 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/RemoteSession.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/RemoteSession.java index 454b98ddc05..9374d68a6ac 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/RemoteSession.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/RemoteSession.java @@ -1,6 +1,7 @@ // 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.session; +import com.yahoo.config.application.api.ApplicationPackage; import com.yahoo.config.provision.*; import com.yahoo.lang.SettableOptional; import com.yahoo.vespa.config.server.*; @@ -54,10 +55,15 @@ public class RemoteSession extends Session { } private ApplicationSet loadApplication() { + ApplicationPackage applicationPackage = zooKeeperClient.loadApplicationPackage(); + + // Read hosts allocated on the config server instance which created this + Optional<AllocatedHosts> allocatedHosts = applicationPackage.getAllocatedHosts(); + return ApplicationSet.fromList(applicationLoader.buildModels(zooKeeperClient.readApplicationId(), zooKeeperClient.readVespaVersion(), zooKeeperClient.loadApplicationPackage(), - new SettableOptional<>(), + new SettableOptional<>(allocatedHosts), clock.instant())); } diff --git a/vespajlib/src/main/java/com/yahoo/lang/SettableOptional.java b/vespajlib/src/main/java/com/yahoo/lang/SettableOptional.java index db5dd76c124..e83a6c3f308 100644 --- a/vespajlib/src/main/java/com/yahoo/lang/SettableOptional.java +++ b/vespajlib/src/main/java/com/yahoo/lang/SettableOptional.java @@ -19,6 +19,11 @@ public final class SettableOptional<T> { /** Creates a new settable optional with the given value */ public SettableOptional(T value) { this.value = value; } + /** Creates a new settable optional with the given value, or an empty */ + public SettableOptional(Optional<T> value) { + this.value = value.isPresent() ? value.get() : null; + } + public boolean isPresent() { return value != null; } |