diff options
author | Ola Aunrønning <olaa@verizonmedia.com> | 2019-10-04 13:16:57 +0200 |
---|---|---|
committer | Ola Aunrønning <olaa@verizonmedia.com> | 2019-10-04 13:16:57 +0200 |
commit | cfb1ae9d80940c1867b4f4a096d51045ea5ec397 (patch) | |
tree | f0f0a50b516a58d1e6809683735cdca8b18971c7 | |
parent | bdd5039b768f2ad055e362ba5d1bb3dc9fb30d51 (diff) |
Refactoring
-rw-r--r-- | controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceMeterMaintainer.java | 31 |
1 files changed, 16 insertions, 15 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 95b95bed70a..0e14b61c5c5 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 @@ -17,6 +17,7 @@ import java.time.Duration; import java.util.Collection; import java.util.Collections; import java.util.List; +import java.util.function.Predicate; import java.util.stream.Collectors; /** @@ -66,27 +67,27 @@ public class ResourceMeterMaintainer extends Maintainer { .ofCloud(CloudName.from("aws")) .reachable().zones().stream() .map(ZoneApi::getId) - .map(zoneId -> { - List<Node> nodes = nodeRepository.list(zoneId).stream() - .filter(node -> node.owner().isPresent()) - .filter(node -> ! node.owner().get().tenant().value().equals("hosted-vespa")) - .collect(Collectors.toList()); - return createResourceSnapshotsFromNodes(zoneId, nodes); - }) + .map(zoneId -> createResourceSnapshotsFromNodes(zoneId, nodeRepository.list(zoneId))) .flatMap(Collection::stream) .collect(Collectors.toList()); } private Collection<ResourceSnapshot> createResourceSnapshotsFromNodes(ZoneId zoneId, List<Node> nodes) { return nodes.stream() - .collect(Collectors.groupingBy(node -> - node.owner().get(), - Collectors.collectingAndThen(Collectors.toList(), - nodeList -> ResourceSnapshot.from( - nodeList, - clock.instant(), - zoneId)) - )).values(); + .filter(unlessNodeOwnerIsHostedVespa()) + .collect(Collectors.groupingBy(node -> + node.owner().get(), + Collectors.collectingAndThen(Collectors.toList(), + nodeList -> ResourceSnapshot.from( + nodeList, + clock.instant(), + zoneId)) + )).values(); } + private Predicate<Node> unlessNodeOwnerIsHostedVespa() { + return node -> node.owner().map(owner -> + !owner.tenant().value().equals("hosted-vespa") + ).orElse(false); + } } |