package org.ovirt.engine.core.bll;
import javax.inject.Inject;
import org.ovirt.engine.core.bll.context.EngineContext;
import org.ovirt.engine.core.bll.snapshots.SnapshotVmConfigurationHelper;
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;
/**
* This class implements the logic of the query responsible for getting a VM configuration by snapshot.
*/
public class GetVmConfigurationBySnapshotQuery<P extends IdQueryParameters> extends QueriesCommandBase<P> {
@Inject
private SnapshotVmConfigurationHelper snapshotVmConfigurationHelper;
@Inject
private SnapshotDao snapshotDao;
public GetVmConfigurationBySnapshotQuery(P parameters) {
super(parameters);
}
public GetVmConfigurationBySnapshotQuery(P parameters, EngineContext engineContext) {
super(parameters, engineContext);
}
@Override
protected void executeQueryCommand() {
Snapshot snapshot = snapshotDao.get(getParameters().getId(), getUserID(), getParameters().isFiltered());
VM vm = null;
if (snapshot == null) {
log.warn("Snapshot '{}' does not exist", getParameters().getId());
}
else {
vm = snapshotVmConfigurationHelper.getVmFromConfiguration(
snapshot.getVmConfiguration(), snapshot.getVmId(), snapshot.getId());
}
getQueryReturnValue().setReturnValue(vm);
}
}