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.vdsbroker.storage.StorageDomainHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class CreateSnapshotVDSCommand<P extends CreateSnapshotVDSCommandParameters> extends IrsCreateCommand<P> { private static final Logger log = LoggerFactory.getLogger(CreateSnapshotVDSCommand.class); public CreateSnapshotVDSCommand(P parameters) { super(parameters); } @Override protected void executeIrsBrokerCommand() { StorageDomainHelper.checkNumberOfLVsForBlockDomain(getParameters().getStorageDomainId()); setReturnValue(Guid.Empty); log.info("-- executeIrsBrokerCommand: calling 'createVolume' with two new parameters: description and UUID"); // NOTE: The 'uuidReturn' variable will contain the taskID and not // the created image id! String imageInitSize = null; if (getParameters().getImageInitialSizeInBytes() != 0) { imageInitSize = String.valueOf(getParameters().getImageInitialSizeInBytes()); } uuidReturn = getIrsProxy().createVolume(getParameters().getStorageDomainId().toString(), getParameters().getStoragePoolId().toString(), getParameters().getImageGroupId().toString(), Long.valueOf(getParameters().getImageSizeInBytes()).toString(), getParameters().getVolumeFormat().getValue(), getParameters().getImageType().getValue(), 2, getParameters().getNewImageID().toString(), getParameters().getNewImageDescription(), getParameters().getSourceImageGroupId().toString(), getParameters().getImageId().toString(), imageInitSize); proceedProxyReturnValue(); Guid taskID = new Guid(uuidReturn.uuid); createdImageId = getParameters().getNewImageID().toString(); setReturnValue(new Guid(createdImageId)); getVDSReturnValue().setCreationInfo( new AsyncTaskCreationInfo(taskID, AsyncTaskType.createVolume, getParameters().getStoragePoolId())); } }