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

Juan Hernández jhernand at redhat.com
Mon Jul 11 11:07:07 UTC 2016


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());

        // 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.



More information about the Users mailing list