package org.ovirt.engine.core.bll; import java.util.Collections; import java.util.List; import javax.inject.Inject; import org.ovirt.engine.core.bll.storage.disk.image.ImagesHandler; import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.businessentities.comparators.DiskByDiskAliasComparator; import org.ovirt.engine.core.common.queries.GetUserVmsByUserIdAndGroupsParameters; import org.ovirt.engine.core.dao.VmDao; public class GetUserVmsByUserIdAndGroupsQuery<P extends GetUserVmsByUserIdAndGroupsParameters> extends QueriesCommandBase<P> { @Inject private VmHandler vmHandler; @Inject private VmDao vmDao; public GetUserVmsByUserIdAndGroupsQuery(P parameters) { super(parameters); } @Override protected void executeQueryCommand() { List<VM> vmList = vmDao.getAllForUserWithGroupsAndUserRoles(getUserID()); for (VM vm : vmList) { updateVmGuestAgentVersion(vm); if (getParameters().getIncludeDiskData()) { updateDisksFromDB(vm); updateVmInit(vm); Collections.sort(vm.getDiskList(), new DiskByDiskAliasComparator()); fillImagesBySnapshots(vm); } } setReturnValue(vmList); } protected void updateVmInit(VM vm) { vmHandler.updateVmInitFromDB(vm.getStaticData(), true); } protected void fillImagesBySnapshots(VM vm) { ImagesHandler.fillImagesBySnapshots(vm); } protected void updateDisksFromDB(VM vm) { vmHandler.updateDisksFromDb(vm); } protected void updateVmGuestAgentVersion(VM vm) { vmHandler.updateVmGuestAgentVersion(vm); } }