void handleIdealStateChange(List<IdealState> idealStates, String dcName) {
      if (!idealStateInitialized) {
        logger.info("Received initial notification for IdealState change from helix cluster {} in dc {}",
            helixClusterName, dcName);
        idealStateInitialized = true;
      } else {
        logger.info("IdealState change triggered from helix cluster {} in dc {}", helixClusterName, dcName);
      }
      logger.debug("Detailed ideal states from helix cluster {} in dc {} are: {}", helixClusterName, dcName,
          idealStates);
      updatePartitionResourceMappingFromIdealStates(idealStates, dcName);
      helixClusterManagerMetrics.idealStateChangeTriggerCount.inc();
    }
Triggered whenever the IdealState in current data center has changed (for now, it is usually updated by Helix
Bootstrap tool).
@param idealStates a list of {@link IdealState} that specifies ideal location of replicas.
@param dcName data center name.
ambry-clustermap/src/main/java/com/github/ambry/clustermap/HelixClusterManager.java