package org.ovirt.engine.core.bll;
import java.util.List;
import javax.inject.Inject;
import org.ovirt.engine.core.bll.context.EngineContext;
import org.ovirt.engine.core.common.businessentities.VM;
import org.ovirt.engine.core.common.queries.VdcQueryParametersBase;
import org.ovirt.engine.core.dao.VmDao;
public abstract class GetAllVmsQueryBase<P extends VdcQueryParametersBase> extends QueriesCommandBase<P> {
@Inject
protected VmDao vmDao;
@Inject
private VmHandler vmHandler;
public GetAllVmsQueryBase(P parameters) {
super(parameters);
}
public GetAllVmsQueryBase(P parameters, EngineContext engineContext) {
super(parameters, engineContext);
}
@Override
protected void executeQueryCommand() {
List<VM> vmsList = getVMs();
for (VM vm : vmsList) {
vmHandler.updateVmGuestAgentVersion(vm);
vmHandler.updateVmStatistics(vm);
}
getQueryReturnValue().setReturnValue(vmsList);
}
protected abstract List<VM> getVMs();
}