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.CreateImageVDSCommandParameters;
import org.ovirt.engine.core.compat.Guid;
import org.ovirt.engine.core.compat.LogCompat;
import org.ovirt.engine.core.compat.LogFactoryCompat;
public class CreateImageVDSCommand<P extends CreateImageVDSCommandParameters> extends IrsCreateCommand<P> {
public CreateImageVDSCommand(P parameters) {
super(parameters);
}
@Override
protected void ExecuteIrsBrokerCommand() {
setReturnValue(Guid.Empty);
log.info("-- CreateImageVDSCommand::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(), Guid.Empty.toString(), Guid.Empty.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(), Guid.Empty.toString(),
Guid.Empty.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(CreateImageVDSCommand.class);
}