code: public static Cluster getInterimCluster(Cluster currentCluster, Cluster finalCluster) {
          List<Node> newNodeList = new ArrayList<Node>(currentCluster.getNodes());
          for(Node node: finalCluster.getNodes()) {
              if(!currentCluster.hasNodeWithId(node.getId())) {
                  newNodeList.add(UpdateClusterUtils.updateNode(node, new ArrayList<Integer>()));
              }
          }
          Collections.sort(newNodeList);
          return new Cluster(currentCluster.getName(),
                             newNodeList,
                             Lists.newArrayList(finalCluster.getZones()));
      }
docs: Given the current cluster and final cluster, generates an interim cluster
  with empty new nodes (and zones).
  
  @param currentCluster Current cluster metadata
  @param finalCluster Final cluster metadata
  @return Returns a new interim cluster which contains nodes and zones of
  final cluster, but with empty partition lists if they were not
  present in current cluster.