package org.ovirt.engine.core.bll;
import org.ovirt.engine.core.common.action.AddImageFromImportParameters;
import org.ovirt.engine.core.common.vdscommands.ImportCandidateVDSCommandParameters;
import org.ovirt.engine.core.common.vdscommands.VDSCommandType;
import org.ovirt.engine.core.common.vdscommands.VDSReturnValue;
import org.ovirt.engine.core.compat.Guid;
import org.ovirt.engine.core.compat.LogCompat;
import org.ovirt.engine.core.compat.LogFactoryCompat;
@InternalCommandAttribute
public class AddImageFromImportCommand<T extends AddImageFromImportParameters> extends AddImageFromScratchCommand<T> {
public AddImageFromImportCommand(T parameters) {
super(parameters);
}
protected VDSReturnValue ResourceManagerImport() {
java.util.HashMap<String, Guid> templateImagesIDs = new java.util.HashMap<String, Guid>();
templateImagesIDs.put("someDrive", Guid.Empty);
return Backend
.getInstance()
.getResourceManager()
.RunVdsCommand(
VDSCommandType.ImportCandidate,
new ImportCandidateVDSCommandParameters(getVm().getstorage_pool_id(), Guid.Empty,
getImageGroupId(), getParameters().getCandidateID(), Guid.Empty, templateImagesIDs,
getParameters().getSource(), getParameters().getPath(), getParameters().getForce()));
}
@Override
protected boolean ProcessImageInIrs() {
VDSReturnValue ret = ResourceManagerImport();
if (!ret.getSucceeded()) {
String errorMessage = String.format(
"ImagesHandler::AddImageFromImportCommand::ProcessImageInIrs: ImportCandidate "
+ "didn't succeed for Candidate ID %1$s, Source %2$s, Path %3$s", getParameters()
.getCandidateID(), getParameters().getSource(), getParameters().getPath());
log.error(errorMessage);
}
return ret.getSucceeded();
}
private static LogCompat log = LogFactoryCompat.getLog(AddImageFromImportCommand.class);
}