private boolean nodeStillUnavailableAfterTransitionTimeExceeded(
            long currentTime,
            NodeInfo node,
            NodeState currentStateInSystem,
            NodeState lastReportedState)
    {
        return currentStateInSystem.getState().equals(State.MAINTENANCE)
            && node.getWantedState().above(new NodeState(node.getNode().getType(), DOWN))
            && (lastReportedState.getState().equals(DOWN) || node.isNotInSlobrok())
            && node.getTransitionTime() + maxTransitionTime.get(node.getNode().getType()) < currentTime;
    }
Propose a new state for a node. This may happen due to an administrator action, orchestration, or
a configuration change.

If the newly proposed state differs from the state the node currently has in the system,
a cluster state regeneration will be triggered.
clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/StateChangeHandler.java