package org.ovirt.engine.core.bll;
import java.util.List;
import org.ovirt.engine.core.common.businessentities.DiskImage;
import org.ovirt.engine.core.common.queries.GetAllDisksByVmIdParameters;
import org.ovirt.engine.core.dal.dbbroker.DbFacade;
import org.ovirt.engine.core.utils.linq.LinqUtils;
import org.ovirt.engine.core.utils.linq.Predicate;
public class GetAllDisksByVmIdQuery<P extends GetAllDisksByVmIdParameters> extends QueriesCommandBase<P> {
public GetAllDisksByVmIdQuery(P parameters) {
super(parameters);
}
@Override
protected void executeQueryCommand() {
// LINQ
// DbFacade.Instance.GetImagesByVmGuid(GetParameters.VmId).Where(image=>image.active
// == true).ToList();
List<DiskImage> disks =
LinqUtils.filter(
DbFacade.getInstance().getDiskImageDAO().getAllForVm(getParameters().getVmId()),
new Predicate<DiskImage>() {
@Override
public boolean eval(DiskImage diskImage) {
return (diskImage.getactive());
}
});
for (DiskImage diskImage : disks) {
diskImage.getSnapshots().addAll(
ImagesHandler.getAllImageSnapshots(diskImage.getId(), diskImage.getit_guid()));
}
getQueryReturnValue().setReturnValue(disks);
}
}