private static SortedSet<TaskId> getTasksToOptimize(final Map<ProcessId, KafkaStreamsAssignment> assignments,
                                                        final RackAwareOptimizationParams optimizationParams,
                                                        final AssignedTask.Type taskType) {
        if (optimizationParams != null && optimizationParams.tasksToOptimize.isPresent()) {
            return optimizationParams.tasksToOptimize.get();
        }

        return assignments.values().stream()
            .flatMap(r -> r.tasks().values().stream())
            .filter(task -> task.type() == taskType)
            .map(AssignedTask::id)
            .collect(Collectors.toCollection(TreeSet::new));
    }
This function returns whether the current application state has the required rack information
to make assignment decisions with.

@param taskType the type of task that we are trying to validate rack information for.

@return whether rack-aware assignment decisions can be made for this application.
streams/src/main/java/org/apache/kafka/streams/processor/assignment/TaskAssignmentUtils.java