diff options
4 files changed, 17 insertions, 12 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/resource/MeteringClient.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/resource/MeteringClient.java index 90f1741a2f1..632dbaad419 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/resource/MeteringClient.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/resource/MeteringClient.java @@ -1,6 +1,7 @@ // Copyright 2019 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.hosted.controller.api.integration.resource; +import java.util.Collection; import java.util.List; /** @@ -10,7 +11,7 @@ import java.util.List; */ public interface MeteringClient { - void consume(List<ResourceSnapshot> resources); + void consume(Collection<ResourceSnapshot> resources); MeteringInfo getResourceSnapshots(String tenantName, String applicationName); diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/stubs/MockMeteringClient.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/stubs/MockMeteringClient.java index ed9c95bb795..10e1eb39c8a 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/stubs/MockMeteringClient.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/stubs/MockMeteringClient.java @@ -7,6 +7,7 @@ import com.yahoo.vespa.hosted.controller.api.integration.resource.ResourceSnapsh import com.yahoo.vespa.hosted.controller.api.integration.resource.MeteringClient; import java.util.ArrayList; +import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Optional; @@ -16,11 +17,11 @@ import java.util.Optional; */ public class MockMeteringClient implements MeteringClient { - private List<ResourceSnapshot> resources = new ArrayList<>(); + private Collection<ResourceSnapshot> resources = new ArrayList<>(); private Optional<MeteringInfo> meteringInfo; @Override - public void consume(List<ResourceSnapshot> resources){ + public void consume(Collection<ResourceSnapshot> resources){ this.resources = resources; } @@ -32,7 +33,7 @@ public class MockMeteringClient implements MeteringClient { }); } - public List<ResourceSnapshot> consumedResources() { + public Collection<ResourceSnapshot> consumedResources() { return this.resources; } 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 098bac0c72c..a5df684912a 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 @@ -13,6 +13,7 @@ import com.yahoo.vespa.hosted.controller.api.integration.resource.ResourceSnapsh import java.time.Clock; import java.time.Duration; import java.util.ArrayList; +import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.stream.Collectors; @@ -47,7 +48,7 @@ public class ResourceMeterMaintainer extends Maintainer { @Override protected void maintain() { - List<ResourceSnapshot> resourceSnapshots = getResourceSnapshots(allocatedNodes()); + Collection<ResourceSnapshot> resourceSnapshots = getResourceSnapshots(allocatedNodes()); meteringClient.consume(resourceSnapshots); @@ -68,12 +69,13 @@ public class ResourceMeterMaintainer extends Maintainer { .collect(Collectors.toList()); } - private List<ResourceSnapshot> getResourceSnapshots(List<Node> nodes) { - return new ArrayList<>(nodes.stream() - .collect(Collectors.groupingBy(node -> node.owner().get(), - Collectors.collectingAndThen(Collectors.toList(), - nodeList -> ResourceSnapshot.from(nodeList, clock.instant())) - )).values()); + private Collection<ResourceSnapshot> getResourceSnapshots(List<Node> nodes) { + return nodes.stream() + .collect(Collectors.groupingBy(node -> node.owner().get(), + Collectors.collectingAndThen(Collectors.toList(), + nodeList -> ResourceSnapshot.from(nodeList, + clock.instant())) + )).values(); } } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceMeterMaintainerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceMeterMaintainerTest.java index d8d7995f382..f28ce83e643 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceMeterMaintainerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceMeterMaintainerTest.java @@ -10,6 +10,7 @@ import com.yahoo.vespa.hosted.controller.integration.ZoneApiMock; import org.junit.Test; import java.time.Duration; +import java.util.Collection; import java.util.List; import static org.junit.Assert.assertEquals; @@ -36,7 +37,7 @@ public class ResourceMeterMaintainerTest { ResourceMeterMaintainer resourceMeterMaintainer = new ResourceMeterMaintainer(tester.controller(), Duration.ofMinutes(5), new JobControl(tester.curator()), metrics, snapshotConsumer); resourceMeterMaintainer.maintain(); - List<ResourceSnapshot> consumedResources = snapshotConsumer.consumedResources(); + Collection<ResourceSnapshot> consumedResources = snapshotConsumer.consumedResources(); // The mocked repository contains two applications, so we should also consume two ResourceSnapshots assertEquals(2, consumedResources.size()); |