package org.ovirt.engine.core.itests; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import javax.ejb.Stateless; import org.ovirt.engine.core.common.asynctasks.AsyncTaskCreationInfo; import org.ovirt.engine.core.common.asynctasks.AsyncTaskType; import org.ovirt.engine.core.common.backendinterfaces.IResourceManager; import org.ovirt.engine.core.common.businessentities.DiskImage; import org.ovirt.engine.core.common.businessentities.ImageStatus; import org.ovirt.engine.core.common.vdscommands.CreateImageVDSCommandParameters; import org.ovirt.engine.core.common.vdscommands.GetImageInfoVDSCommandParameters; import org.ovirt.engine.core.common.vdscommands.VDSCommandType; import org.ovirt.engine.core.common.vdscommands.VDSParametersBase; import org.ovirt.engine.core.common.vdscommands.VDSReturnValue; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dal.dbbroker.DbFacade; /** * This resource manager is needed to run successful commands on mock test hosts. * */ @Stateless(name = "VdsBroker") public class VoidResourceManager implements IResourceManager { @Override public VDSReturnValue runVdsCommand(VDSCommandType commandType, VDSParametersBase parameters) { // TODO consider a way to manipulate returnValue of VdsCommands - return // random value,set it a as a parameter on the threadLocal etc // currently return true will suffice VDSReturnValue val = new VDSReturnValue(); val.setSucceeded(true); switch (commandType) { case GetImageInfo: GetImageInfoVDSCommandParameters p = (GetImageInfoVDSCommandParameters) parameters; DiskImage image = DbFacade.getInstance().getDiskImageDAO().get(p.getImageId()); image.setimageStatus(ImageStatus.OK); val.setReturnValue(image); break; case ValidateStorageServerConnection: case ConnectStorageServer: HashMap<String, String> resultMap = new HashMap<String, String>(); resultMap.put(Guid.Empty.toString(), "0"); val.setReturnValue(resultMap); break; case CreateImage: // Same as for IsoList, with the addition of task creation info) CreateImageVDSCommandParameters createImageParams = (CreateImageVDSCommandParameters) parameters; val.setCreationInfo( new AsyncTaskCreationInfo(Guid.NewGuid(), AsyncTaskType.createVolume, createImageParams.getStoragePoolId())); case GetIsoList: List resultList = new ArrayList<String>(); val.setReturnValue(resultList); break; case CopyImage: val.setCreationInfo(new AsyncTaskCreationInfo()); break; default: val.setReturnValue(true); break; } return val; } @Override public void setup() { // TODO Auto-generated method stub } }