package org.ovirt.engine.core.vdsbroker.irsbroker;
import org.ovirt.engine.core.compat.*;
import org.ovirt.engine.core.common.businessentities.*;
import org.ovirt.engine.core.common.asynctasks.*;
import org.ovirt.engine.core.common.vdscommands.*;
import org.ovirt.engine.core.vdsbroker.xmlrpc.XmlRpcStruct;
public class MoveMultipleImageGroupsVDSCommand<P extends MoveMultipleImageGroupsVDSCommandParameters>
extends IrsCreateCommand<P> {
public MoveMultipleImageGroupsVDSCommand(P parameters) {
super(parameters);
}
@Override
protected void ExecuteIrsBrokerCommand() {
XmlRpcStruct imageDict = BuildImageDict();
uuidReturn = getIrsProxy().moveMultipleImages(getParameters().getStoragePoolId().toString(),
getParameters().getStorageDomainId().toString(), getParameters().getDstDomainId().toString(),
imageDict, getParameters().getContainerId().toString());
ProceedProxyReturnValue();
Guid taskID = new Guid(uuidReturn.mUuid);
getVDSReturnValue().setCreationInfo(
new AsyncTaskCreationInfo(taskID, AsyncTaskType.moveMultipleImages, getParameters()
.getStoragePoolId()));
}
private String BuildImageDictString() {
StringBuilder sb = new StringBuilder();
for (DiskImage disk : getParameters().getImagesList()) {
sb.append("'").append(disk.getimage_group_id().toString()).append("'").append(": ").append("'")
.append((new Boolean(disk.getwipe_after_delete())).toString()).append("'").append(", ");
}
return StringHelper.trimEnd(sb.toString(), ' ', ',');
}
private XmlRpcStruct BuildImageDict() {
XmlRpcStruct imagesDict = new XmlRpcStruct();
for (DiskImage disk : getParameters().getImagesList()) {
imagesDict.add(disk.getimage_group_id().getValue().toString(),
(new Boolean(disk.getwipe_after_delete())).toString());
}
return imagesDict;
}
}