public void setClusterStateBundleVersionAcknowledged(Integer version, boolean success) {
        if (version == null) {
            throw new Error("Should not clear info for last version acked");
        }
        if (!clusterStateVersionBundleSent.containsKey(version)) {
            throw new IllegalStateException("Got response for cluster state " + version + " which is not tracked as pending for node " + node);
        }
        var stateBundle = clusterStateVersionBundleSent.remove(version);
        if (success && (clusterStateVersionBundleAcknowledged == null || clusterStateVersionBundleAcknowledged.getVersion() < stateBundle.getVersion())) {
            clusterStateVersionBundleAcknowledged = stateBundle;
            if (wentDownWithStartTime != 0
                && (wentDownAtClusterState == null || wentDownAtClusterState.getVersion() < stateBundle.getVersion())
                && !stateBundle.getBaselineClusterState().getNodeState(node).getState().oneOf("dsm"))
            {
                log.log(Level.FINE, () -> String.format("Clearing going down timestamp of node %s after " +
                        "receiving ack of cluster state bundle %s", node, stateBundle));
                wentDownWithStartTime = 0;
            }
        }
    }
Sets the wanted state. The wanted state is taken as UP if a null argument is given
clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/NodeInfo.java