package org.ovirt.engine.core.bll; import javax.inject.Inject; import org.ovirt.engine.core.bll.context.EngineContext; import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.queries.IdQueryParameters; import org.ovirt.engine.core.dao.VmDao; public class GetVmByVmIdQuery<P extends IdQueryParameters> extends QueriesCommandBase<P> { @Inject protected VmHandler vmHandler; @Inject private VmDao vmDao; public GetVmByVmIdQuery(P parameters) { super(parameters); } public GetVmByVmIdQuery(P parameters, EngineContext engineContext) { super(parameters, engineContext); } @Override protected void executeQueryCommand() { VM vm = vmDao.get(getParameters().getId(), getUserID(), getParameters().isFiltered()); if (vm != null) { // Note that retrieving the VM is already filtered, and if there are no permissions for it, null will be // returned. // Thus, no additional concern should be given for permissions issues updateVMDetails(vm); getQueryReturnValue().setReturnValue(vm); } } protected void updateVMDetails(VM vm) { vmHandler.updateDisksFromDb(vm); vmHandler.updateVmGuestAgentVersion(vm); vmHandler.updateNetworkInterfacesFromDb(vm); vmHandler.updateVmInitFromDB(vm.getStaticData(), true); vmHandler.updateNumaNodesFromDb(vm); vmHandler.updateVmStatistics(vm); } }