diff options
author | Martin Polden <mpolden@mpolden.no> | 2018-03-12 11:39:04 +0100 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2018-03-12 11:42:42 +0100 |
commit | af8322ccd85d30559d432ad845b14049a49aecdc (patch) | |
tree | 4b2706bb48e2280954166bd8fd1deb95b769819e /node-repository | |
parent | 3dcbc8bd9783fb7836f3155ca353bd02b9cee836 (diff) |
Test reservation event update
Diffstat (limited to 'node-repository')
2 files changed, 8 insertions, 8 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClient.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClient.java index 4e4b29c8098..12a0f64aee1 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClient.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClient.java @@ -17,7 +17,6 @@ import com.yahoo.vespa.curator.transaction.CuratorOperations; import com.yahoo.vespa.curator.transaction.CuratorTransaction; import com.yahoo.vespa.hosted.provision.Node; import com.yahoo.vespa.hosted.provision.node.Agent; -import com.yahoo.vespa.hosted.provision.node.History; import com.yahoo.vespa.hosted.provision.node.Status; import java.nio.charset.StandardCharsets; @@ -193,7 +192,7 @@ public class CuratorDatabaseClient { newNodeStatus(node, toState), toState, toState.isAllocated() ? node.allocation() : Optional.empty(), - recordStateTransition(node, toState, agent), + node.history().recordStateTransition(node.state(), toState, agent, clock.instant()), node.type()); curatorTransaction.add(CuratorOperations.delete(toPath(node).getAbsolute())) .add(CuratorOperations.create(toPath(toState, newNode.hostname()).getAbsolute(), nodeSerializer.toJson(newNode))); @@ -209,10 +208,6 @@ public class CuratorDatabaseClient { return writtenNodes; } - private History recordStateTransition(Node node, Node.State toState, Agent agent) { - return node.history().recordStateTransition(node.state(), toState, agent, clock.instant()); - } - private Status newNodeStatus(Node node, Node.State toState) { if (node.state() != Node.State.failed && toState == Node.State.failed) return node.status().withIncreasedFailCount(); if (node.state() == Node.State.failed && toState == Node.State.active) return node.status().withDecreasedFailCount(); // fail undo diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java index b9a54b700a6..26e0e714201 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java @@ -708,8 +708,13 @@ public class ProvisioningTest { tester.clock().advance(Duration.ofMinutes(2)); SystemState state = prepare(application, 2, 0, 2, 0, "default", tester); - assertEquals("Reserved required nodes", 4, - tester.getNodes(application, Node.State.reserved).size()); + List<Node> reserved = tester.getNodes(application, Node.State.reserved).asList(); + assertEquals("Reserved required nodes", 4, reserved.size()); + assertTrue("Time of event is updated for all nodes", reserved.stream() + .allMatch(n -> n.history() + .event(History.Event.Type.reserved) + .get().at() + .equals(tester.clock().instant()))); // Over 10 minutes pass since first reservation. First set of reserved nodes are not expired tester.clock().advance(Duration.ofMinutes(8).plus(Duration.ofSeconds(1))); |