From 5cd6ac466a14a140ebcc9a6f9bcc775cba232ade Mon Sep 17 00:00:00 2001 From: Valerij Fredriksen Date: Wed, 21 Feb 2018 16:15:15 +0100 Subject: Always set agent and reason when reactivating --- .../main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java | 4 ++-- .../com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java | 2 +- .../yahoo/vespa/hosted/provision/restapi/v2/NodesApiHandler.java | 2 +- .../provision/maintenance/PeriodicApplicationMaintainerTest.java | 6 +++--- 4 files changed, 7 insertions(+), 7 deletions(-) (limited to 'node-repository') 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 0420ee5d64e..9bb8c1f28a1 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 @@ -439,8 +439,8 @@ public class NodeRepository extends AbstractComponent { * @return the node in its new state * @throws NoSuchNodeException if the node is not found */ - public Node reactivate(String hostname, Agent agent) { - return move(hostname, Node.State.active, agent, Optional.empty()); + public Node reactivate(String hostname, Agent agent, String reason) { + return move(hostname, Node.State.active, agent, Optional.of(reason)); } private List moveRecursively(String hostname, Node.State toState, Agent agent, Optional reason) { diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java index 7726311ab2c..a21bd3ff1a1 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java @@ -266,7 +266,7 @@ public class NodeFailer extends Maintainer { catch (RuntimeException e) { // The expected reason for deployment to fail here is that there is no capacity available to redeploy. // In that case we should leave the node in the active state to avoid failing additional nodes. - nodeRepository().reactivate(node.hostname(), Agent.system); + nodeRepository().reactivate(node.hostname(), Agent.system, "Failed to redeploy after being failed by NodeFailer"); log.log(Level.WARNING, "Attempted to fail " + node + " for " + node.allocation().get().owner() + ", but redeploying without the node failed", e); return false; diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesApiHandler.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesApiHandler.java index 0371cfec337..cd646f293f7 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesApiHandler.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesApiHandler.java @@ -126,7 +126,7 @@ public class NodesApiHandler extends LoggingRequestHandler { return new MessageResponse("Moved " + lastElement(path) + " to dirty"); } else if (path.startsWith("/nodes/v2/state/active/")) { - nodeRepository.reactivate(lastElement(path), Agent.operator); + nodeRepository.reactivate(lastElement(path), Agent.operator, "Reactivated through nodes/v2 API"); return new MessageResponse("Moved " + lastElement(path) + " to active"); } else if (path.startsWith("/nodes/v2/state/availablefornewallocations/")) { diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainerTest.java index 8eec5e4c2f1..7812e9752b7 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainerTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainerTest.java @@ -88,9 +88,9 @@ public class PeriodicApplicationMaintainerTest { assertEquals(0, nodeRepository.getNodes(NodeType.tenant, Node.State.ready).size()); // Reactivate the previously failed nodes - nodeRepository.reactivate(nodeRepository.getNodes(NodeType.tenant, Node.State.failed).get(0).hostname(), Agent.system); - nodeRepository.reactivate(nodeRepository.getNodes(NodeType.tenant, Node.State.failed).get(0).hostname(), Agent.system); - nodeRepository.reactivate(nodeRepository.getNodes(NodeType.tenant, Node.State.parked).get(0).hostname(), Agent.system); + nodeRepository.reactivate(nodeRepository.getNodes(NodeType.tenant, Node.State.failed).get(0).hostname(), Agent.system, getClass().getSimpleName()); + nodeRepository.reactivate(nodeRepository.getNodes(NodeType.tenant, Node.State.failed).get(0).hostname(), Agent.system, getClass().getSimpleName()); + nodeRepository.reactivate(nodeRepository.getNodes(NodeType.tenant, Node.State.parked).get(0).hostname(), Agent.system, getClass().getSimpleName()); int reactivatedInApp1 = 1; int reactivatedInApp2 = 2; assertEquals(0, nodeRepository.getNodes(NodeType.tenant, Node.State.failed).size()); -- cgit v1.2.3