for (String resourceName : errStates.keySet()) {
ResourceId resourceId = ResourceId.from(resourceName);
Map<String, String> partErrStates = errStates.get(resourceName);
ResourceAssignment resourceAssignment = bestPossOutput.getResourceAssignment(resourceId);
ResourceAssignmentBuilder raBuilder = new ResourceAssignmentBuilder(resourceId);
List<? extends PartitionId> mappedPartitions = resourceAssignment.getMappedPartitionIds();
for (PartitionId partitionId : mappedPartitions) {
raBuilder.addAssignments(partitionId, resourceAssignment.getReplicaMap(partitionId));
}
for (String partitionName : partErrStates.keySet()) {
String instanceName = partErrStates.get(partitionName);
PartitionId partitionId = PartitionId.from(partitionName);
ParticipantId participantId = ParticipantId.from(instanceName);
raBuilder.addAssignment(partitionId, participantId,
State.from(HelixDefinedState.ERROR.toString()));
}
bestPossOutput.setResourceAssignment(resourceId, raBuilder.build());
}
}
// System.out.println("stateMap: " + bestPossStateMap);