
On 07/12/2016 07:26 PM, Sebastien Fuchs wrote:
This works fine with sdk4. Thanks. Unfortunately I couldn't find away to update cpu_shares config: can't set any update option to update it now or later and no error from the API.
In order to perform the update using version 4 of the SDK you need to do something like this: import static org.ovirt.engine.sdk4.builders.Builders.vm; vmService.update() .vm( vm() .cpuShares(20) ) .send(); This sends the correct request to the server, but as you detected it doesn't have any effect. I believe that is a bug, opened the following BZ to track it: It isn't possible to change the CPU shares of virtual machine when it is up https://bugzilla.redhat.com/1355865
On Mon, Jul 11, 2016 at 1:07 PM, Juan Hernández <jhernand@redhat.com <mailto:jhernand@redhat.com>> wrote:
On 07/08/2016 04:09 PM, Sebastien Fuchs wrote: > Hi, > > I'm developping (in JAVA) an automatic configuration manager to modify > memory and cpu allocation (cpushares for the moment) updated on a > calendar basis. It will also be used as a kind of enforcer/elastic > scheduler on top of the ovirt policy scheduler. > > Because oVirt is not yet able to update memory and cpushares on live > guests like XenServer, my configurator needs to know the running config > and the next_run config as well, and force directly the config on live > guests (with virsh schedinfo --live arg ? ). > > Unfortunately, the Host.getVMs().getById( "uuid" ) method returns only > the running config so there's no way I can check if the future config is > setup. > > Any suggestion? >
Version 3 of the SDK doesn't support GET parameters, unfortunately. If you are using version 4 of the engine then you may consider using version 4 of the SDK, which does support them:
---8<--- import static org.ovirt.engine.sdk4.ConnectionBuilder.connection;
import org.ovirt.engine.sdk4.Connection; import org.ovirt.engine.sdk4.services.VmService; import org.ovirt.engine.sdk4.services.VmsService; import org.ovirt.engine.sdk4.types.Vm;
// This example will connect to the server and start a virtual machine: public class GetVmNextRun { public static void main(String[] args) throws Exception { // Create the connection to the server: Connection connection = connection() .url("https://engine41.example.com/ovirt-engine/api") .user("admin@internal") .password("...") .trustStoreFile("truststore.jks") .build();
// Get the reference to the "vms" service: VmsService vmsService = connection.systemService().vmsService();
// Find the virtual machine (we need this in order to find // the identifier of the virtual machine given its // name): Vm vm = vmsService.list() .search("name=myvm") .send() .vms() .get(0);
// Locate the service that manages the virtual machine: VmService vmService = vmsService.vmService(vm.id <http://vm.id>());
// Call the "get" method using the "next_run" parameter to // retrieve the configuration of the virtual machine that // will be used the next time it is started: vm = vmService.get() .nextRun(true) .send() .vm();
// Print some details of the virtual machine: System.out.printf("cpu shares: %s", vm.cpuShares());
// Close the connection to the server: connection.close(); } } --->8---
If this isn't an alternative for you, then please open a bug requesting that this support is added to version 3 of the SDK.
-- Dirección Comercial: C/Jose Bardasano Baos, 9, Edif. Gorbea 3, planta 3ºD, 28016 Madrid, Spain Inscrita en el Reg. Mercantil de Madrid – C.I.F. B82657941 - Red Hat S.L.
_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users
-- Dirección Comercial: C/Jose Bardasano Baos, 9, Edif. Gorbea 3, planta 3ºD, 28016 Madrid, Spain Inscrita en el Reg. Mercantil de Madrid – C.I.F. B82657941 - Red Hat S.L.