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.utils.LocationInfoHelper; import org.ovirt.engine.core.common.vdscommands.UploadImageVDSCommandParameters; import org.ovirt.engine.core.compat.Guid; import org.slf4j.Logger; import org.slf4j.LoggerFactory; // Currently implemented as irs command because we there's no way // to monitor hsm tasks, this should be executed from hsm/vds command // as it's becomes possible. public class UploadImageVDSCommand<P extends UploadImageVDSCommandParameters> extends IrsCreateCommand<P> { private static final Logger log = LoggerFactory.getLogger(UploadImageVDSCommand.class); public UploadImageVDSCommand(P parameters) { super(parameters); } @Override protected void executeIrsBrokerCommand() { setReturnValue(Guid.Empty); log.info("-- executeIrsBrokerCommand: calling 'uploadImage', parameters:"); log.info("++ srcSpUUID={}", getParameters().getStoragePoolId()); log.info("++ srcSdUUID={}", getParameters().getStorageDomainId()); log.info("++ srcImageGUID={}", getParameters().getImageGroupId()); log.info("++ srcVolUUID={}", getParameters().getImageId()); log.info("++ uploadLocation={}", getParameters().getUploadInfo()); uuidReturn = getIrsProxy().uploadImage( LocationInfoHelper.prepareLocationInfoForVdsCommand(getParameters().getUploadInfo()), getParameters().getStoragePoolId().toString(), getParameters().getStorageDomainId().toString(), getParameters().getImageGroupId().toString(), getParameters().getImageId().toString()); proceedProxyReturnValue(); getVDSReturnValue().setCreationInfo( new AsyncTaskCreationInfo(new Guid(uuidReturn.uuid), AsyncTaskType.copyImage, getParameters().getStoragePoolId())); } }