public Node fail(String hostname, boolean forceDeprovision, Agent agent, String reason) {
        try (NodeMutex lock = lockAndGetRequired(hostname)) {
            return move(hostname, Node.State.failed, agent, forceDeprovision, Optional.of(reason), lock);
        }
    }
Fails this node and returns it in its new state.

@return the node in its new state
@throws NoSuchNodeException if the node is not found
node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Nodes.java