
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)