package org.ovirt.engine.core.bll.snapshots; import java.util.List; import javax.inject.Inject; import org.ovirt.engine.core.bll.QueriesCommandBase; import org.ovirt.engine.core.common.businessentities.Snapshot; import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.queries.IdQueryParameters; import org.ovirt.engine.core.dao.SnapshotDao; /** * Returns a list of all snapshots for a specified VM ID including configuration data. */ public class GetAllVmSnapshotsFromConfigurationByVmIdQuery<P extends IdQueryParameters> extends QueriesCommandBase<P> { @Inject private SnapshotVmConfigurationHelper snapshotVmConfigurationHelper; @Inject private SnapshotDao snapshotDao; public GetAllVmSnapshotsFromConfigurationByVmIdQuery(P parameters) { super(parameters); } @Override protected void executeQueryCommand() { SnapshotVmConfigurationHelper snapshotVmConfigurationHelper = getSnapshotVmConfigurationHelper(); List<Snapshot> snapshots = snapshotDao.getAllWithConfiguration(getParameters().getId()); for (Snapshot snapshot : snapshots) { VM vm = snapshotVmConfigurationHelper.getVmFromConfiguration( snapshot.getVmConfiguration(), snapshot.getVmId(), snapshot.getId()); if (vm != null) { snapshot.setDiskImages(vm.getImages()); } } getQueryReturnValue().setReturnValue(snapshots); } protected SnapshotVmConfigurationHelper getSnapshotVmConfigurationHelper() { return snapshotVmConfigurationHelper; } }