aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/resource/MeteringClient.java3
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/stubs/MockMeteringClient.java7
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceMeterMaintainer.java16
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceMeterMaintainerTest.java3
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());