--- src/main/java/org/libvirt/Domain.java | 4 +--- src/main/java/org/libvirt/SchedLongParameter.java | 2 +- src/main/java/org/libvirt/SchedParameter.java | 2 ++ src/main/java/org/libvirt/SchedUintParameter.java | 2 +- src/main/java/org/libvirt/jna/Libvirt.java | 2 +- src/test/java/test.java | 8 ++++++++ 6 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/libvirt/Domain.java b/src/main/java/org/libvirt/Domain.java index a9a6b25..a7b49ee 100644 --- a/src/main/java/org/libvirt/Domain.java +++ b/src/main/java/org/libvirt/Domain.java @@ -607,13 +607,11 @@ public class Domain { * @throws LibvirtException */ public void setSchedulerParameters(SchedParameter[] params) throws LibvirtException { - IntByReference nParams = new IntByReference(); - nParams.setValue(params.length); virSchedParameter[] input = new virSchedParameter[params.length]; for (int x = 0; x < params.length; x++) { input[x] = SchedParameter.toNative(params[x]); } - libvirt.virDomainSetSchedulerParameters(VDP, input, nParams); + libvirt.virDomainSetSchedulerParameters(VDP, input, params.length); processError(); } diff --git a/src/main/java/org/libvirt/SchedLongParameter.java b/src/main/java/org/libvirt/SchedLongParameter.java index 50628b0..7999777 100644 --- a/src/main/java/org/libvirt/SchedLongParameter.java +++ b/src/main/java/org/libvirt/SchedLongParameter.java @@ -21,7 +21,7 @@ public final class SchedLongParameter extends SchedParameter { } public int getType() { - return 2; + return 3; } public String getTypeAsString() { diff --git a/src/main/java/org/libvirt/SchedParameter.java b/src/main/java/org/libvirt/SchedParameter.java index 92b3547..370b0da 100644 --- a/src/main/java/org/libvirt/SchedParameter.java +++ b/src/main/java/org/libvirt/SchedParameter.java @@ -4,6 +4,7 @@ import java.util.Arrays; import org.libvirt.jna.Libvirt; import org.libvirt.jna.virSchedParameter; +import org.libvirt.jna.virSchedParameterValue; import com.sun.jna.Native; @@ -43,6 +44,7 @@ public abstract class SchedParameter { public static virSchedParameter toNative(SchedParameter param) { virSchedParameter returnValue = new virSchedParameter(); + returnValue.value = new virSchedParameterValue() ; returnValue.field = Arrays.copyOf(param.field.getBytes(), Libvirt.VIR_DOMAIN_SCHED_FIELD_LENGTH); returnValue.type = param.getType(); switch (param.getType()) { diff --git a/src/main/java/org/libvirt/SchedUintParameter.java b/src/main/java/org/libvirt/SchedUintParameter.java index 1b96758..9305579 100644 --- a/src/main/java/org/libvirt/SchedUintParameter.java +++ b/src/main/java/org/libvirt/SchedUintParameter.java @@ -22,7 +22,7 @@ public final class SchedUintParameter extends SchedParameter { } public int getType() { - return 3; + return 2; } public String getTypeAsString() { diff --git a/src/main/java/org/libvirt/jna/Libvirt.java b/src/main/java/org/libvirt/jna/Libvirt.java index 62f7ba3..0b30656 100644 --- a/src/main/java/org/libvirt/jna/Libvirt.java +++ b/src/main/java/org/libvirt/jna/Libvirt.java @@ -107,7 +107,7 @@ public interface Libvirt extends Library { public int virDomainSetAutostart(DomainPointer virDomainPtr, int autoStart); public int virDomainSetMaxMemory(DomainPointer virDomainPtr, NativeLong maxMemory); public int virDomainSetMemory(DomainPointer virDomainPtr, NativeLong maxMemory); - public int virDomainSetSchedulerParameters(DomainPointer virDomainPtr, virSchedParameter[] params, IntByReference nparams); + public int virDomainSetSchedulerParameters(DomainPointer virDomainPtr, virSchedParameter[] params, int nparams); public int virDomainSetVcpus(DomainPointer virDomainPtr, int nvcpus); public int virDomainShutdown(DomainPointer virDomainPtr); public int virDomainSuspend(DomainPointer virDomainPtr); diff --git a/src/test/java/test.java b/src/test/java/test.java index 9427cc5..be12d5e 100644 --- a/src/test/java/test.java +++ b/src/test/java/test.java @@ -245,6 +245,14 @@ public class test { for(SchedParameter c: testDomain.getSchedulerParameters()){ System.out.println(c.getTypeAsString() +":"+ c.field +":"+ c.getValueAsString()); } + + // test setting a scheduled parameter + SchedUintParameter[] pars = new SchedUintParameter[1]; + pars[0] = new SchedUintParameter(); + pars[0].field = "weight"; + pars[0].value = 100; + testDomain.setSchedulerParameters(pars); + System.out.println("virDomainGetUUID:" + testDomain.getUUID()); for(int c: testDomain.getUUID()) System.out.print(String.format("%02x", c)); -- 1.6.0.6 -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list