int numberOfPartitions = idealState.getRecord().getListFields().size();
String stateModelDefName = idealState.getStateModelDefId().stringify();
StateModelDefinition stateModelDef =
accessor.getProperty(keyBuilder.stateModelDef(stateModelDefName));
State masterValue = stateModelDef.getTypedStatesPriorityList().get(0);
int replicas = Integer.parseInt(idealState.getReplicas());
String instanceGroupTag = idealState.getInstanceGroupTag();
int instances = 0;
Map<String, LiveInstance> liveInstanceMap =
accessor.getChildValuesMap(keyBuilder.liveInstances());
Map<String, InstanceConfig> instanceConfigMap =
accessor.getChildValuesMap(keyBuilder.instanceConfigs());
for (String liveInstanceName : liveInstanceMap.keySet()) {
if (instanceConfigMap.get(liveInstanceName).containsTag(instanceGroupTag)) {
instances++;
}
}
if (instances == 0) {
instances = liveInstanceMap.size();
}
ExternalView ev = accessor.getProperty(keyBuilder.externalView(_resourceName));
if (ev == null) {
return false;
}
return verifyBalanceExternalView(ev.getRecord(), numberOfPartitions, masterValue.toString(),
replicas, instances);
}