package org.ovirt.engine.core.bll;
import java.util.List;
import org.ovirt.engine.core.common.businessentities.DiskImage;
import org.ovirt.engine.core.common.businessentities.ImagesComparerByName;
import org.ovirt.engine.core.common.businessentities.VM;
import org.ovirt.engine.core.common.queries.GetUserVmsByUserIdAndGroupsParameters;
import org.ovirt.engine.core.dal.dbbroker.DbFacade;
public class GetUserVmsByUserIdAndGroupsQuery<P extends GetUserVmsByUserIdAndGroupsParameters>
extends QueriesCommandBase<P> {
public GetUserVmsByUserIdAndGroupsQuery(P parameters) {
super(parameters);
}
@Override
protected void executeQueryCommand() {
List<VM> vmList =
DbFacade.getInstance().getVmDAO().getAllForUserWithGroupsAndUserRoles(getParameters().getId());
for (VM vm : vmList) {
VmHandler.UpdateVmGuestAgentVersion(vm);
if (getParameters().getIncludeDiskData()) {
VmHandler.updateDisksFromDb(vm);
java.util.Collections.sort(vm.getDiskList(), new ImagesComparerByName());
for (DiskImage diskImage : vm.getDiskMap().values()) {
diskImage.getSnapshots().addAll(
ImagesHandler.getAllImageSnapshots(diskImage.getId(), diskImage.getit_guid()));
}
}
}
getQueryReturnValue().setReturnValue(vmList);
}
}