package org.ovirt.engine.core.vdsbroker.irsbroker; import org.ovirt.engine.core.common.asynctasks.AsyncTaskCreationInfo; import org.ovirt.engine.core.common.asynctasks.AsyncTaskType; import org.ovirt.engine.core.common.vdscommands.CreateSnapshotVDSCommandParameters; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.compat.LogCompat; import org.ovirt.engine.core.compat.LogFactoryCompat; public class CreateSnapshotVDSCommand<P extends CreateSnapshotVDSCommandParameters> extends IrsCreateCommand<P> { public CreateSnapshotVDSCommand(P parameters) { super(parameters); } @Override protected void ExecuteIrsBrokerCommand() { setReturnValue(Guid.Empty); log.info("-- CreateSnapshotVDSCommand::ExecuteIrsBrokerCommand: calling 'createVolume' with two new parameters: description and UUID"); log.infoFormat("-- createVolume parameters:" + "\r\n" + " sdUUID={0}" + "\r\n" + " spUUID={1}" + "\r\n" + " imgGUID={2}" + "\r\n" + " size={3} bytes" + "\r\n" + " volFormat={4}" + "\r\n" + " volType={5}" + "\r\n" + " diskType={6}" + "\r\n" + " volUUID={7}" + "\r\n" + " descr={8}" + "\r\n" + " srcImgGUID={9}" + "\r\n" + " srcVolUUID={10}" + "\r\n" + " ", getParameters().getStorageDomainId().toString(), getParameters() .getStoragePoolId().toString(), getParameters().getImageGroupId() .toString(), getParameters().getImageSizeInBytes(), getParameters().getVolumeFormat().name(), getParameters() .getImageType().name(), getParameters().getDiskType().name(), getParameters().getNewImageID().toString(), getParameters() .getNewImageDescription(), getParameters().getSourceImageGroupId() .toString(), getParameters().getImageId().toString()); // NOTE: The 'uuidReturn' variable will contain the taskID and not // the created image id! uuidReturn = getIrsProxy().createVolume(getParameters().getStorageDomainId().toString(), getParameters().getStoragePoolId().toString(), getParameters().getImageGroupId().toString(), (new Long(getParameters().getImageSizeInBytes())).toString(), getParameters().getVolumeFormat().getValue(), getParameters().getImageType().getValue(), getParameters().getDiskType().getValue(), getParameters().getNewImageID().toString(), getParameters().getNewImageDescription(), getParameters().getSourceImageGroupId().toString(), getParameters().getImageId().toString()); ProceedProxyReturnValue(); Guid taskID = new Guid(uuidReturn.mUuid); mCreatedImageId = getParameters().getNewImageID().toString(); setReturnValue(new Guid(mCreatedImageId)); getVDSReturnValue().setCreationInfo( new AsyncTaskCreationInfo(taskID, AsyncTaskType.createVolume, getParameters().getStoragePoolId())); } private static LogCompat log = LogFactoryCompat.getLog(CreateSnapshotVDSCommand.class); }