private static void setNewNodeState(int index,
                                        NodeType nodeType,
                                        State newState,
                                        String description,
                                        NodeStateReason nodeStateReason,
                                        ClusterState workingState,
                                        Map<Node, NodeStateReason> nodeStateReasons) {
        final Node node = new Node(nodeType, index);
        final NodeState newNodeState = new NodeState(nodeType, newState).setDescription(description);
        workingState.setNodeState(node, newNodeState);
        nodeStateReasons.put(node, nodeStateReason);
    }
Determines whether a given storage node should be implicitly set as being
in a maintenance state despite its reported state being Down. This is
predominantly a case when contact has just been lost with a node, but we
do not want to immediately set it to Down just yet (where "yet" is a configurable
amount of time; see params.transitionTime). This is to prevent common node
restart/upgrade scenarios from triggering redistribution and data replication
that would be useless work if the node comes back up immediately afterwards.

Only makes sense to call for storage nodes, since distributors don't support
being in maintenance mode.
clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ClusterStateGenerator.java