package org.ovirt.engine.core.vdsbroker;
import org.ovirt.engine.core.common.utils.ToStringBuilder;
import org.ovirt.engine.core.common.vdscommands.VdsAndVmIDVDSParametersBase;
import org.ovirt.engine.core.compat.Guid;
import org.ovirt.engine.core.vdsbroker.vdsbroker.VdsBrokerCommand;
public class SetNumberOfCpusVDSCommand<P extends SetNumberOfCpusVDSCommand.Params> extends VdsBrokerCommand<P> {
public SetNumberOfCpusVDSCommand(P parameters) {
super(parameters);
}
@Override
protected void executeVdsBrokerCommand() {
try {
status = getBroker().setNumberOfCpus(
getParameters().getVmId().toString(),
String.valueOf(getParameters().getNumberOfCpus()));
proceedProxyReturnValue();
} catch (RuntimeException e) {
setVdsRuntimeErrorAndReport(e);
// prevent exception handler from rethrowing an exception
getVDSReturnValue().setExceptionString(null);
}
}
public static class Params extends VdsAndVmIDVDSParametersBase{
private int numberOfCpus;
public Params(Guid vdsId, Guid vmId, int numberOfCpus) {
super(vdsId, vmId);
this.numberOfCpus = numberOfCpus;
}
public int getNumberOfCpus() {
return numberOfCpus;
}
@Override
protected ToStringBuilder appendAttributes(ToStringBuilder tsb) {
return super.appendAttributes(tsb).append("numberOfCpus", getNumberOfCpus());
}
}
}