private static boolean noChanges(NodeState oldWantedState, NodeState newWantedState) {
        // If the new state and description equals the existing, we're done. This is done for 2 cases:
        // - We can short-circuit setting of a new wanted state, which e.g. hits ZooKeeper.
        // - We ensure that clients that have previously set the wanted state, continue
        //   to see the same conclusion, even though they possibly would have been
        //   DISALLOWED if re-evaluated. This is important for implementing idempotent clients.
        return newWantedState.getState().equals(oldWantedState.getState())
               && Objects.equals(newWantedState.getDescription(), oldWantedState.getDescription());
    }
Checks if a node can be upgraded.

@author Haakon Dybdahl
clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/NodeStateChangeChecker.java