private void doAddPartition(String partitionIdStr, Callback<Object> callback) {
    PartitionId partitionId = clusterMap.getPartitionIdByName(partitionIdStr);
    if (partitionId == null) {
      metrics.partitionIdNotInClusterMapOnAdd.inc();
      callback.onCompletion(null,
          new IllegalStateException("Partition not in clusterMap on add: Partition Id: " + partitionIdStr));
    } else {
      if (partitionIdMap.putIfAbsent(partitionIdStr, partitionId) == null) {
        // TODO: get rid of assignedPartitionIds
        assignedPartitionIds.add(partitionId);
        for (VcrClusterParticipantListener listener : listeners) {
          listener.onPartitionAdded(partitionId);
        }
        logger.debug("Assigned Partitions: {}", assignedPartitionIds);
      } else {
        logger.info("Partition {} exists on current VCR: {}", partitionIdStr, vcrInstanceName);
      }
      callback.onCompletion(null, null);
    }
  }
Add {@link PartitionId} to assignedPartitionIds set, if {@param partitionIdStr} valid.
Used in one of the vcr state model classes {@link OnlineOfflineHelixVcrStateModel} or
{@link LeaderStandbyHelixVcrStateModel} if current VCR is assigned a partition.
@param partitionIdStr The partitionIdStr notified by Helix.
ambry-cloud/src/main/java/com/github/ambry/cloud/HelixVcrClusterParticipant.java