diff options
author | Martin Polden <mpolden@mpolden.no> | 2024-01-24 11:03:59 +0100 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2024-01-24 11:05:57 +0100 |
commit | 93130ab1cba443c3953893de31b2a36021403d77 (patch) | |
tree | ac386c6e7f5d042710d9fb098cb86d3d329b0df6 /node-repository/src/main/java/com | |
parent | 056a486a55fd66c39b9b30065865d29655f338f7 (diff) |
Add additional fields to application response
Controller needs to know this information when calculating cost. Today it lists
all nodes in the zone (multiple times) to get the information, which is slow.
Diffstat (limited to 'node-repository/src/main/java/com')
-rw-r--r-- | node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/ApplicationSerializer.java | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/ApplicationSerializer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/ApplicationSerializer.java index 89853896104..bbe6ef772fb 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/ApplicationSerializer.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/ApplicationSerializer.java @@ -1,10 +1,12 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.hosted.provision.restapi; -import com.yahoo.config.provision.IntRange; +import com.yahoo.component.Version; import com.yahoo.config.provision.ClusterResources; +import com.yahoo.config.provision.IntRange; import com.yahoo.slime.Cursor; import com.yahoo.slime.Slime; +import com.yahoo.vespa.hosted.provision.Node; import com.yahoo.vespa.hosted.provision.NodeList; import com.yahoo.vespa.hosted.provision.NodeRepository; import com.yahoo.vespa.hosted.provision.applications.Application; @@ -15,6 +17,7 @@ import com.yahoo.vespa.hosted.provision.autoscale.Limits; import com.yahoo.vespa.hosted.provision.autoscale.Load; import java.net.URI; +import java.util.Comparator; import java.util.List; /** @@ -40,6 +43,13 @@ public class ApplicationSerializer { URI applicationUri) { object.setString("url", applicationUri.toString()); object.setString("id", application.id().toFullString()); + Version version = applicationNodes.stream() + .map(node -> node.status().vespaVersion() + .orElse(node.allocation().get().membership().cluster().vespaVersion())) + .min(Comparator.naturalOrder()) + .get(); + object.setString("version", version.toFullString()); + object.setString("cloudAccount", applicationNodes.stream().findFirst().map(Node::cloudAccount).get().value()); clustersToSlime(application, applicationNodes, nodeRepository, object.setObject("clusters")); } |