diff options
author | Martin Polden <mpolden@mpolden.no> | 2020-10-01 12:49:23 +0200 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2020-10-01 12:49:23 +0200 |
commit | b5fb609bd6cfd732d09006d857e2157fa4ad447d (patch) | |
tree | ccf567103e36b02c9162524df5f56ca5f33a5517 /node-repository/src | |
parent | 0b93aefb3ef8933d19cacf63d982808c384a6e7d (diff) |
Store correct agent when adding nodes
Diffstat (limited to 'node-repository/src')
9 files changed, 13 insertions, 16 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java index 77ae6ecf1a7..e8a4620b520 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java @@ -428,7 +428,7 @@ public class NodeRepository extends AbstractComponent { existing.get() + ", " + existing.get().history() + "). Node to be added: " + node + ", " + node.history()); } - return db.addNodesInState(nodes.asList(), State.reserved); + return db.addNodesInState(nodes.asList(), State.reserved, Agent.system); } /** @@ -463,8 +463,7 @@ public class NodeRepository extends AbstractComponent { nodesToAdd.add(node); } - List<Node> resultingNodes = new ArrayList<>(); - resultingNodes.addAll(db.addNodesInState(IP.Config.verify(nodesToAdd, list(lock)), State.provisioned)); + List<Node> resultingNodes = db.addNodesInState(IP.Config.verify(nodesToAdd, list(lock)), State.provisioned, agent); db.removeNodes(nodesToRemove); return resultingNodes; } 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 56f7c951025..160ab86591a 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 @@ -108,17 +108,15 @@ public class CuratorDatabaseClient { provisionIndexCounter.initialize(100); } - /** - * Adds a set of nodes. Rollbacks/fails transaction if any node is not in the expected state. - */ - public List<Node> addNodesInState(List<Node> nodes, Node.State expectedState) { + /** Adds a set of nodes. Rollbacks/fails transaction if any node is not in the expected state. */ + public List<Node> addNodesInState(List<Node> nodes, Node.State expectedState, Agent agent) { NestedTransaction transaction = new NestedTransaction(); CuratorTransaction curatorTransaction = db.newCuratorTransactionIn(transaction); for (Node node : nodes) { if (node.state() != expectedState) throw new IllegalArgumentException(node + " is not in the " + expectedState + " state"); - node = node.with(node.history().recordStateTransition(null, expectedState, Agent.system, clock.instant())); + node = node.with(node.history().recordStateTransition(null, expectedState, agent, clock.instant())); curatorTransaction.add(CuratorOperations.create(toPath(node).getAbsolute(), nodeSerializer.toJson(node))); } transaction.commit(); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/DynamicProvisioningMaintainerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/DynamicProvisioningMaintainerTest.java index 7cc81f218ec..8b3b6aee5c1 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/DynamicProvisioningMaintainerTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/DynamicProvisioningMaintainerTest.java @@ -249,7 +249,7 @@ public class DynamicProvisioningMaintainerTest { createNode("proxyhost1", Optional.empty(), NodeType.proxyhost, Node.State.provisioned, Optional.empty()), createNode("proxyhost2", Optional.empty(), NodeType.proxyhost, Node.State.active, Optional.of(proxyHostApp)), createNode("proxy2", Optional.of("proxyhost2"), NodeType.proxy, Node.State.active, Optional.of(proxyApp))) - .forEach(node -> nodeRepository.database().addNodesInState(List.of(node), node.state())); + .forEach(node -> nodeRepository.database().addNodesInState(List.of(node), node.state(), Agent.system)); return this; } @@ -259,7 +259,7 @@ public class DynamicProvisioningMaintainerTest { private Node addNode(String hostname, Optional<String> parentHostname, NodeType nodeType, Node.State state, ApplicationId application) { Node node = createNode(hostname, parentHostname, nodeType, state, Optional.ofNullable(application)); - return nodeRepository.database().addNodesInState(List.of(node), node.state()).get(0); + return nodeRepository.database().addNodesInState(List.of(node), node.state(), Agent.system).get(0); } private Node createNode(String hostname, Optional<String> parentHostname, NodeType nodeType, Node.State state, Optional<ApplicationId> application) { diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisionerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisionerTest.java index 29a121b8a21..88f5d41a4f0 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisionerTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisionerTest.java @@ -273,7 +273,7 @@ public class LoadBalancerProvisionerTest { nodeType); nodes.add(node); } - nodes = tester.nodeRepository().database().addNodesInState(nodes, Node.State.reserved); + nodes = tester.nodeRepository().database().addNodesInState(nodes, Node.State.reserved, Agent.system); nodes = tester.nodeRepository().setDirty(nodes, Agent.system, getClass().getSimpleName()); tester.nodeRepository().setReady(nodes, Agent.system, getClass().getSimpleName()); } diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/controller1.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/controller1.json index 035e15ead49..413c1af0c71 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/controller1.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/controller1.json @@ -18,7 +18,7 @@ { "event": "provisioned", "at": 123, - "agent": "system" + "agent": "operator" } ], "ipAddresses": [ diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/node11.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/node11.json index 17f8210fa4d..baf0325b284 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/node11.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/node11.json @@ -18,7 +18,7 @@ { "event": "provisioned", "at": 123, - "agent": "system" + "agent": "operator" } ], "ipAddresses": [ diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/node8.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/node8.json index aa2b2acdb9f..8951d1905ab 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/node8.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/node8.json @@ -18,7 +18,7 @@ { "event": "provisioned", "at": 123, - "agent": "system" + "agent": "operator" } ], "ipAddresses": [ diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/node9.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/node9.json index a5672f25d57..dac9fd30267 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/node9.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/node9.json @@ -18,7 +18,7 @@ { "event": "provisioned", "at": 123, - "agent": "system" + "agent": "operator" } ], "ipAddresses": [ diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/parent2.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/parent2.json index ecc497172c7..2e20d1a8f35 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/parent2.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/parent2.json @@ -19,7 +19,7 @@ { "event": "provisioned", "at": 123, - "agent": "system" + "agent": "operator" } ], "ipAddresses": [ |