summaryrefslogtreecommitdiffstats
path: root/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/AutoscalingMaintainer.java
diff options
context:
space:
mode:
Diffstat (limited to 'node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/AutoscalingMaintainer.java')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/AutoscalingMaintainer.java19
1 files changed, 10 insertions, 9 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/AutoscalingMaintainer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/AutoscalingMaintainer.java
index 1197a01b9c7..809c54146d0 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/AutoscalingMaintainer.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/AutoscalingMaintainer.java
@@ -14,7 +14,6 @@ import com.yahoo.vespa.hosted.provision.applications.Cluster;
import com.yahoo.vespa.hosted.provision.autoscale.AllocatableClusterResources;
import com.yahoo.vespa.hosted.provision.autoscale.Autoscaler;
import com.yahoo.vespa.hosted.provision.autoscale.MetricsDb;
-import com.yahoo.vespa.orchestrator.status.ApplicationLock;
import java.time.Duration;
import java.util.List;
@@ -67,17 +66,19 @@ public class AutoscalingMaintainer extends NodeRepositoryMaintainer {
List<Node> clusterNodes,
MaintenanceDeployment deployment) {
Application application = nodeRepository().applications().get(applicationId).orElse(new Application(applicationId));
- if (application.cluster(clusterId).isEmpty()) return;
- Cluster cluster = application.cluster(clusterId).get();
+ Optional<Cluster> cluster = application.cluster(clusterId);
+ if (cluster.isEmpty()) return;
- var advice = autoscaler.autoscale(cluster, clusterNodes);
- cluster = cluster.withAutoscalingStatus(advice.reason());
+ var advice = autoscaler.autoscale(cluster.get(), clusterNodes);
+
+ application = application.with(cluster.get().withAutoscalingStatus(advice.reason()));
if (advice.isEmpty()) {
- applications().put(application.with(cluster), deployment.applicationLock().get());
- } else if (!cluster.targetResources().equals(advice.target())) {
- applications().put(application.with(cluster.withTarget(advice.target())), deployment.applicationLock().get());
+ applications().put(application, deployment.applicationLock().get());
+ }
+ else if ( ! cluster.get().targetResources().equals(advice.target())) {
+ applications().put(application.with(cluster.get().withTarget(advice.target())), deployment.applicationLock().get());
if (advice.target().isPresent()) {
- logAutoscaling(advice.target().get(), applicationId, cluster, clusterNodes);
+ logAutoscaling(advice.target().get(), applicationId, cluster.get(), clusterNodes);
deployment.activate();
}
}