RebalancerConfig rebalancerConfig = resourceConfig.getRebalancerConfig();
IdealState idealState = resourceConfig.getIdealState();
StateModelDefinition stateModelDef = stateModelDefs.get(idealState.getStateModelDefId());
ResourceAssignment resourceAssignment = null;
// use a cached rebalancer if possible
RebalancerRef ref = idealState.getRebalancerRef();
HelixRebalancer rebalancer = null;
if (_rebalancerMap.containsKey(resourceId)) {
HelixRebalancer candidateRebalancer = _rebalancerMap.get(resourceId);
if (ref != null && candidateRebalancer.getClass().equals(ref.toString())) {
rebalancer = candidateRebalancer;
}
}
// otherwise instantiate a new one
if (rebalancer == null) {
if (ref != null) {
rebalancer = ref.getRebalancer();
}
HelixManager manager = event.getAttribute("helixmanager");
ControllerContextProvider provider =
event.getAttribute(AttributeName.CONTEXT_PROVIDER.toString());
if (rebalancer == null) {