package org.ovirt.engine.core.bll.common.predicates;
import java.util.List;
import java.util.function.Predicate;
import org.apache.commons.lang.Validate;
import org.ovirt.engine.core.common.businessentities.VM;
import org.ovirt.engine.core.compat.Guid;
import org.ovirt.engine.core.dao.VmDao;
/**
* Evaluates a cluster with the given id on existence of running VMs attached to it.
*/
public final class ActiveVmAttachedToClusterPredicate implements Predicate<Guid> {
private static final Predicate<VM> RUNNING_VM_PREDICATE = new RunningVmPredicate();
private final VmDao vmDao;
public ActiveVmAttachedToClusterPredicate(VmDao vmDao) {
Validate.notNull(vmDao, "vmDao can not be null");
this.vmDao = vmDao;
}
@Override
public boolean test(Guid clusterId) {
final List<VM> vms = vmDao.getAllForCluster(clusterId);
return vms.stream().anyMatch(RUNNING_VM_PREDICATE);
}
}