package org.ovirt.engine.core.bll;
import java.util.Collections;
import java.util.List;
import javax.inject.Inject;
import org.ovirt.engine.core.bll.context.EngineContext;
import org.ovirt.engine.core.common.businessentities.VmDevice;
import org.ovirt.engine.core.common.businessentities.VmDeviceGeneralType;
import org.ovirt.engine.core.common.businessentities.VmRngDevice;
import org.ovirt.engine.core.common.queries.IdQueryParameters;
import org.ovirt.engine.core.common.utils.VmDeviceType;
import org.ovirt.engine.core.dao.VmDeviceDao;
public class GetRngDeviceQuery<P extends IdQueryParameters> extends QueriesCommandBase<P> {
@Inject
private VmDeviceDao vmDeviceDao;
public GetRngDeviceQuery(P parameters) {
super(parameters);
}
public GetRngDeviceQuery(P parameters, EngineContext engineContext) {
super(parameters, engineContext);
}
@Override
protected void executeQueryCommand() {
final List<VmDevice> vmDevices = vmDeviceDao.getVmDeviceByVmIdTypeAndDevice(
getParameters().getId(),
VmDeviceGeneralType.RNG,
VmDeviceType.VIRTIO.getName(),
getUserID(),
getParameters().isFiltered());
if (vmDevices != null && !vmDevices.isEmpty()) {
VmDevice dev = vmDevices.get(0);
setReturnValue(Collections.singletonList(new VmRngDevice(dev)));
} else {
setReturnValue(Collections.emptyList());
}
}
}