package org.ovirt.engine.core.bll; import java.util.List; import javax.inject.Inject; import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.businessentities.VMStatus; import org.ovirt.engine.core.common.queries.IdQueryParameters; import org.ovirt.engine.core.dao.VmDao; public class GetNumberOfActiveVmsInClusterByClusterIdQuery<P extends IdQueryParameters> extends QueriesCommandBase<P> { @Inject private VmDao vmDao; public GetNumberOfActiveVmsInClusterByClusterIdQuery(P parameters) { super(parameters); } @Override protected void executeQueryCommand() { List<VM> vms = vmDao.getAllForCluster(getParameters().getId()); // Active VMs are VMs that aren't in Down status int activeVms = 0; for (VM vm : vms) { if (vm.getStatus() != VMStatus.Down && vm.getStatus() != VMStatus.ImageLocked) { ++activeVms; } } getQueryReturnValue().setReturnValue(activeVms); } }