summaryrefslogtreecommitdiffstats
path: root/node-repository
diff options
context:
space:
mode:
authorJon Marius Venstad <jonmv@users.noreply.github.com>2018-03-12 13:21:31 +0100
committerGitHub <noreply@github.com>2018-03-12 13:21:31 +0100
commit86a54b6abe2130d36f29a3f3f9f7ace66ab41a2f (patch)
treea8f76744d3cb809b1ae2b38af5cb4c667f2990f3 /node-repository
parentd9e80c179d0aca141825db1dc9d9febca0e4d753 (diff)
parentaf8322ccd85d30559d432ad845b14049a49aecdc (diff)
Merge pull request #5287 from vespa-engine/mpolden/test-history-update
Test reservation event update
Diffstat (limited to 'node-repository')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClient.java7
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java9
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)));