package org.ovirt.engine.core.vdsbroker.irsbroker;
import org.ovirt.engine.core.compat.*;
import org.ovirt.engine.core.vdsbroker.vdsbroker.*;
import org.ovirt.engine.core.common.vdscommands.*;
public class ExportCandidateVDSCommand<P extends ExportCandidateVDSCommandParameters> extends IrsBrokerCommand<P> {
private OneUuidReturnForXmlRpc _retUUID;
public ExportCandidateVDSCommand(P parameters) {
super(parameters);
}
@Override
protected void ExecuteIrsBrokerCommand() {
// NOTE: The IrsProxy doesn't handle multi-drive yet, so we
// choose a drive randomly and send only its parameters:
// LINQ 29456
// string randomDrive = ExportParameters.ListOfImages.Keys.ToList()[0];
String randomDrive = (getParameters().getListOfImages().keySet().toArray(new String[0]))[0];
// LINQ 29456
// LINQ 29456
// ExportParameters.ListOfImages[randomDrive].Select<Guid, string>(a =>
// a.toString()).ToArray(),
Guid[] imagesForDrive = getParameters().getListOfImages().get(randomDrive).toArray(new Guid[0]);
String[] volumesList = new String[imagesForDrive.length];
for (int i = 0; i < imagesForDrive.length; i++) {
volumesList[i] = imagesForDrive[i].toString();
}
// LINQ 29456
_retUUID = getIrsProxy().exportCandidate(getParameters().getStorageDomainId().toString(),
getParameters().getVmGUID().toString(), volumesList, getParameters().getVmMeta(),
getParameters().getVmTemplateGUID().toString(),
getParameters().getVmTemplateImageGUIDs().get(randomDrive).toString(),
getParameters().getVmTemplateMeta(), getParameters().getPath(),
(new Boolean(getParameters().getCollapse())).toString(),
(new Boolean(getParameters().getForce())).toString());
ProceedProxyReturnValue();
setReturnValue(new Guid(_retUUID.mUuid));
}
@Override
protected StatusForXmlRpc getReturnStatus() {
return _retUUID.mStatus;
}
}