package org.ovirt.engine.core.bll; import java.util.LinkedList; import java.util.List; import org.ovirt.engine.core.bll.context.EngineContext; import org.ovirt.engine.core.common.businessentities.GraphicsDevice; import org.ovirt.engine.core.common.businessentities.GraphicsType; import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.businessentities.VmDevice; import org.ovirt.engine.core.common.queries.IdQueryParameters; import org.ovirt.engine.core.common.queries.VdcQueryReturnValue; import org.ovirt.engine.core.common.queries.VdcQueryType; import org.ovirt.engine.core.common.utils.VmDeviceCommonUtils; public class GetNextRunGraphicsDevicesQuery<P extends IdQueryParameters> extends GetGraphicsDevicesQuery<P> { public GetNextRunGraphicsDevicesQuery(P parameters) { super(parameters); } public GetNextRunGraphicsDevicesQuery(P parameters, EngineContext context) { super(parameters, context); } @Override protected void executeQueryCommand() { VdcQueryReturnValue nextRun = runInternalQuery(VdcQueryType.GetVmNextRunConfiguration, new IdQueryParameters(getParameters().getId())); VM vm = nextRun.getReturnValue(); if (vm != null && vm.isNextRunConfigurationExists()) { List<GraphicsDevice> result = new LinkedList<>(); for (GraphicsType graphicsType : GraphicsType.values()) { VmDevice device = VmDeviceCommonUtils.findVmDeviceByType(vm.getManagedVmDeviceMap(), graphicsType.getCorrespondingDeviceType()); if (device != null) { result.add(new GraphicsDevice(device)); } } setReturnValue(result); } else { super.executeQueryCommand(); } } }