private boolean dataNodeHasPartitionsInFullAutoResources(String instanceName, String dcName,
      boolean resourcesAreFullAutoCompatible) {
    if (!resourcesAreFullAutoCompatible) {
      return false;
    }
    if (!instanceToDiskReplicasMap.containsKey(instanceName)) {
      // No replicas are assigned to this instance
      return false;
    }
    Map<String, Integer> partitionToResourceId = dcToPartitionToResourceId.get(dcName);
    Map<Integer, IdealState> resourceIdToIdealState = dcToResourceIdToIdealState.get(dcName);
    Map<DiskId, SortedSet<Replica>> diskReplicaMap = instanceToDiskReplicasMap.get(instanceName);
    List<String> partitions = diskReplicaMap.values()
        .stream()
        .flatMap(replicas -> replicas.stream().map(ReplicaId::getPartitionId))
        .map(PartitionId::toPathString)
        .collect(Collectors.toList());
    for (String partition : partitions) {
      if (partitionToResourceId.containsKey(partition)) {
        int resourceId = partitionToResourceId.get(partition);
        if (resourceIdToIdealState.get(resourceId).getRebalanceMode() == IdealState.RebalanceMode.FULL_AUTO) {
          // Any partition that belongs to a FULL AUTO resource would return true
          info("Partition {} in instance {} in dcName {} belong to resource {} that is in FULL AUTO", partition,
              instanceName, dcName, resourceId);
          return true;
        }
      }
    }
    return false;
  }
This is for data node that are in static clustermap.
@param instanceName
@param dcName
@param resourcesAreFullAutoCompatible
@return
ambry-clustermap/src/main/java/com/github/ambry/clustermap/HelixBootstrapUpgradeUtil.java