diff options
author | Harald Musum <musum@verizonmedia.com> | 2020-03-31 17:10:23 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-31 17:10:23 +0200 |
commit | ede7a4ac09e169813087b05d8b98818332b6578c (patch) | |
tree | 3c3b3361fa03998ddfc6d364b7b9583bc6943270 | |
parent | e4487a7626fab2dbe969de424fc3bdcdfed8067e (diff) | |
parent | e4452dab408f03b275c09dda06267142b50f39d9 (diff) |
Merge pull request #12782 from vespa-engine/andreer/count-capacity-on-active-nodes-only
count capacity on active hosts only
2 files changed, 10 insertions, 4 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporter.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporter.java index e107abf8fbb..098d706bf05 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporter.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporter.java @@ -29,6 +29,7 @@ import java.util.function.Supplier; import java.util.stream.Collectors; import static com.yahoo.config.provision.NodeResources.DiskSpeed.any; +import static com.yahoo.vespa.hosted.provision.Node.State.active; /** * @author oyving @@ -249,16 +250,16 @@ public class MetricsReporter extends Maintainer { } private static NodeResources getCapacityTotal(NodeList nodes) { - return nodes.nodeType(NodeType.host).asList().stream() + return nodes.nodeType(NodeType.host).state(active).asList().stream() .map(host -> host.flavor().resources()) - .map(resources -> resources.justNumbers()) + .map(NodeResources::justNumbers) .reduce(new NodeResources(0, 0, 0, 0, any), NodeResources::add); } private static NodeResources getFreeCapacityTotal(NodeList nodes) { - return nodes.nodeType(NodeType.host).asList().stream() + return nodes.nodeType(NodeType.host).state(active).asList().stream() .map(n -> freeCapacityOf(nodes, n)) - .map(resources -> resources.justNumbers()) + .map(NodeResources::justNumbers) .reduce(new NodeResources(0, 0, 0, 0, any), NodeResources::add); } diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporterTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporterTest.java index aa262bdf751..ca7c33f96bd 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporterTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporterTest.java @@ -11,6 +11,7 @@ import com.yahoo.config.provision.NodeType; import com.yahoo.config.provision.Zone; import com.yahoo.jdisc.Metric; import com.yahoo.test.ManualClock; +import com.yahoo.transaction.NestedTransaction; import com.yahoo.vespa.applicationmodel.ApplicationInstance; import com.yahoo.vespa.applicationmodel.ApplicationInstanceReference; import com.yahoo.vespa.curator.Curator; @@ -163,6 +164,10 @@ public class MetricsReporterTest { container2 = container2.with(allocation(Optional.of("app2"), container2).get()); nodeRepository.addDockerNodes(new LockedNodeList(List.of(container2), nodeRepository.lockUnallocated())); + NestedTransaction transaction = new NestedTransaction(); + nodeRepository.activate(nodeRepository.getNodes(NodeType.host), transaction); + transaction.commit(); + Orchestrator orchestrator = mock(Orchestrator.class); when(orchestrator.getHostInfo(eq(reference), any())).thenReturn(HostInfo.createNoRemarks()); |