diff options
author | Jon Marius Venstad <venstad@gmail.com> | 2021-02-19 21:34:43 +0100 |
---|---|---|
committer | Jon Marius Venstad <venstad@gmail.com> | 2021-02-19 21:34:43 +0100 |
commit | 1286ef91207958f16753c7ee325932a4f501ed55 (patch) | |
tree | 3018be638387446430ece6a1bee7e4ec1d33bbc3 /controller-server | |
parent | 18955672d8c0a1cb95decdcedc9fb6e1c2a2b59b (diff) |
Make admin node non-meterable
Diffstat (limited to 'controller-server')
2 files changed, 32 insertions, 27 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 5efbb3cf31b..8de6bdbb99c 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 @@ -102,6 +102,7 @@ public class ResourceMeterMaintainer extends ControllerMaintainer { return nodes.stream() .filter(this::unlessNodeOwnerIsHostedVespa) .filter(this::isNodeStateMeterable) + .filter(this::isNodeTypeMeterable) .collect(Collectors.groupingBy(node -> node.owner().get(), Collectors.collectingAndThen(Collectors.toList(), @@ -132,6 +133,10 @@ public class ResourceMeterMaintainer extends ControllerMaintainer { return METERABLE_NODE_STATES.contains(node.state()); } + private boolean isNodeTypeMeterable(Node node) { + return node.clusterType() != Node.ClusterType.admin; // log servers and shared cluster controllers + } + private boolean needsRefresh(long lastRefreshTimestamp) { return clock.instant() .minusSeconds(METERING_REFRESH_INTERVAL_SECONDS) 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 451b9230f55..0deaa21d13b 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 @@ -19,6 +19,7 @@ import java.util.Arrays; import java.util.Collection; import java.util.List; import java.util.stream.Collectors; +import java.util.stream.Stream; import static org.junit.Assert.*; @@ -80,35 +81,34 @@ public class ResourceMeterMaintainerTest { tester.configServer().nodeRepository().setFixedNodes(awsZone2.getId()); tester.configServer().nodeRepository().putNodes( awsZone1.getId(), - createNodesInState( - Node.State.provisioned, - Node.State.ready, - Node.State.dirty, - Node.State.failed, - Node.State.parked - ) + createNodes() ); } - private List<Node> createNodesInState(Node.State ...states) { - return Arrays.stream(states) - .map(state -> { - return new Node.Builder() - .hostname(HostName.from("host" + state)) - .parentHostname(HostName.from("parenthost" + state)) - .state(state) - .type(NodeType.tenant) - .owner(ApplicationId.from("tenant1", "app1", "default")) - .currentVersion(Version.fromString("7.42")) - .wantedVersion(Version.fromString("7.42")) - .currentOsVersion(Version.fromString("7.6")) - .wantedOsVersion(Version.fromString("7.6")) - .serviceState(Node.ServiceState.expectedUp) - .resources(new NodeResources(24, 24, 500, 1)) - .clusterId("clusterA") - .clusterType(Node.ClusterType.container) - .build(); - }) - .collect(Collectors.toUnmodifiableList()); + private List<Node> createNodes() { + return Stream.of(Node.State.provisioned, + Node.State.ready, + Node.State.dirty, + Node.State.failed, + Node.State.parked, + Node.State.active) + .map(state -> { + return new Node.Builder() + .hostname(HostName.from("host" + state)) + .parentHostname(HostName.from("parenthost" + state)) + .state(state) + .type(NodeType.tenant) + .owner(ApplicationId.from("tenant1", "app1", "default")) + .currentVersion(Version.fromString("7.42")) + .wantedVersion(Version.fromString("7.42")) + .currentOsVersion(Version.fromString("7.6")) + .wantedOsVersion(Version.fromString("7.6")) + .serviceState(Node.ServiceState.expectedUp) + .resources(new NodeResources(24, 24, 500, 1)) + .clusterId("clusterA") + .clusterType(state == Node.State.active ? Node.ClusterType.admin : Node.ClusterType.container) + .build(); + }) + .collect(Collectors.toUnmodifiableList()); } } |