diff options
author | Jon Marius Venstad <jonmv@users.noreply.github.com> | 2018-03-12 13:21:31 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-12 13:21:31 +0100 |
commit | 86a54b6abe2130d36f29a3f3f9f7ace66ab41a2f (patch) | |
tree | a8f76744d3cb809b1ae2b38af5cb4c667f2990f3 /node-repository | |
parent | d9e80c179d0aca141825db1dc9d9febca0e4d753 (diff) | |
parent | af8322ccd85d30559d432ad845b14049a49aecdc (diff) |
Merge pull request #5287 from vespa-engine/mpolden/test-history-update
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))); |