summaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
authorØyvind Grønnesby <oyving@yahooinc.com>2023-02-28 11:01:40 +0100
committerØyvind Grønnesby <oyving@yahooinc.com>2023-02-28 11:01:40 +0100
commit3c325c2ee25bc1d39190dfe7ee5b43eadc6225c0 (patch)
tree111d33e1d857dcdf3885220e2da4b50efc8964ca /controller-server
parent3204ecd71bed82fe25bbc50688aa5516b55b989a (diff)
Consider major version in node -> snapshot conversion
Diffstat (limited to 'controller-server')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceMeterMaintainer.java32
1 files changed, 18 insertions, 14 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceMeterMaintainer.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceMeterMaintainer.java
index 059986072f3..26edd210075 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceMeterMaintainer.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceMeterMaintainer.java
@@ -201,10 +201,11 @@ public class ResourceMeterMaintainer extends ControllerMaintainer {
// Grouping by ApplicationId -> Architecture -> ResourceSnapshot
.collect(Collectors.groupingBy(node ->
node.owner().get(),
- groupSnapshotsByArchitecture(zoneId)))
+ groupSnapshotsByArchitectureAndMajorVersion(zoneId)))
.values()
.stream()
- .flatMap(list -> list.values().stream())
+ .flatMap(byArch -> byArch.values().stream())
+ .flatMap(byMajor -> byMajor.values().stream())
.toList();
}
@@ -284,19 +285,22 @@ public class ResourceMeterMaintainer extends ControllerMaintainer {
));
}
- private Collector<Node, ?, Map<NodeResources.Architecture, ResourceSnapshot>> groupSnapshotsByArchitecture(ZoneId zoneId) {
- return Collectors.collectingAndThen(
- Collectors.groupingBy(node -> node.resources().architecture()),
- convertNodeListToResourceSnapshot(zoneId)
- );
+ private Collector<Node, ?, Map<NodeResources.Architecture, Map<Integer, ResourceSnapshot>>> groupSnapshotsByArchitectureAndMajorVersion(ZoneId zoneId) {
+ return Collectors.groupingBy(
+ (Node node) -> node.resources().architecture(),
+ Collectors.collectingAndThen(
+ Collectors.groupingBy(
+ (Node node) -> node.currentVersion().getMajor(),
+ Collectors.toList()),
+ convertNodeListToResourceSnapshot(zoneId)));
}
- private Function<Map<NodeResources.Architecture, List<Node>>, Map<NodeResources.Architecture, ResourceSnapshot>> convertNodeListToResourceSnapshot(ZoneId zoneId) {
- return nodeMap -> nodeMap.entrySet()
- .stream()
- .collect(Collectors.toMap(
- Map.Entry::getKey,
- entry -> ResourceSnapshot.from(entry.getValue(), clock.instant(), zoneId))
- );
+ private Function<Map<Integer, List<Node>>, Map<Integer, ResourceSnapshot>> convertNodeListToResourceSnapshot(ZoneId zoneId) {
+ return nodesByMajor -> {
+ return nodesByMajor.entrySet().stream()
+ .collect(Collectors.toMap(
+ entry -> entry.getKey(),
+ entry -> ResourceSnapshot.from(entry.getValue(), clock.instant(), zoneId)));
+ };
}
}