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(a)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(a)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.