package org.ovirt.engine.core.bll.scheduling.external; import java.util.List; import java.util.Map; import java.util.Optional; import org.ovirt.engine.core.common.utils.Pair; import org.ovirt.engine.core.compat.Guid; public interface ExternalSchedulerBroker { Optional<ExternalSchedulerDiscoveryResult> runDiscover(); List<Guid> runFilters(List<String> filterNames, List<Guid> hostIDs, Guid vmID, Map<String, String> propertiesMap); List<WeightResultEntry> runScores(List<Pair<String, Integer>> scoreNameAndWeight, List<Guid> hostIDs, Guid vmID, Map<String, String> propertiesMap); Optional<BalanceResult> runBalance(String balanceName, List<Guid> hostIDs, Map<String, String> propertiesMap); }