[ovirt-users] Ovirt Java SDK access to 'next run' configuration

Juan Hernández jhernand at redhat.com
Tue Jul 12 19:07:34 UTC 2016


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 at redhat.com
> <mailto:jhernand at 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 at 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 at 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.



More information about the Users mailing list