That is the way I have been doing it. In fact I did separate follow calls for a lot of the
objects I needed, but once you get to several hundred VMs, those multiple calls become
very time consuming. By using the:
List<Vm> vms = vmsService.list()
.follow("host")
.send().vms();
for several objects like disk_attachements.disk,cluster,nics, I was able to pull the data
I needed for a few hundred VM's in a fraction of the time that is was taking to do
each one separately. It went form about 4 minutes to pul all tghe data to around 30
seconds. I just can't seem to get Host to work.
Also i have noticed that if I use the follow command like the example above, I can not use
it on individual objects later.
Example: If i call:
List<Vm> vms = vmsService.list()
.follow("disk_attachments.disk,cluster,nics.vnic_profile").send().vms();
then later in my code I try to call
connection.followLink(vm.host());
I get the error:
Host: Exception in thread "main" java.lang.IllegalArgumentException: wrong
number of arguments
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at
org.ovirt.engine.sdk4.internal.HttpConnection.followLink(HttpConnection.java:200)
at com.maxta.ovirt.test.MaxtaVMList.main(MaxtaVMList.java:74)