I have one Datacenter.
When I'm trying to get a list of VM's via API, a get 236 machines.
But WebClient shows me, that there are 243 machines!
Image may be NSFW.
Clik here to view.
Here is the code I use: (it's sample code from SDK) - C#
private static ObjectContent[] getVMs(ManagedObjectReference dcMoRef) { // The PropertySpec object specifies what properties // retrieve from what type of Managed Object PropertySpec pSpec = new PropertySpec(); pSpec.type = "VirtualMachine"; pSpec.pathSet = new String[] { // "summary.config.instanceUuid", //"config.locationId", "config.uuid" }; pSpec.all = true; SelectionSpec recurseFolders = new SelectionSpec(); recurseFolders.name = "folder2childEntity"; TraversalSpec folder2childEntity = new TraversalSpec(); folder2childEntity.type = "Folder"; folder2childEntity.path = "childEntity"; folder2childEntity.name = recurseFolders.name; folder2childEntity.skip = false; folder2childEntity.skipSpecified = false; folder2childEntity.selectSet = new SelectionSpec[] { recurseFolders }; // Traverse from a Datacenter through the 'vmFolder' property TraversalSpec dc2vmFolder = new TraversalSpec(); dc2vmFolder.type = "Datacenter"; dc2vmFolder.path = "vmFolder"; dc2vmFolder.selectSet = new SelectionSpec[] { folder2childEntity }; dc2vmFolder.skip = false; dc2vmFolder.skipSpecified = false; ObjectSpec oSpec = new ObjectSpec(); oSpec.obj = dcMoRef; oSpec.skip = false; oSpec.selectSet = new SelectionSpec[] { dc2vmFolder }; PropertyFilterSpec pfSpec = new PropertyFilterSpec(); pfSpec.propSet = new PropertySpec[] { pSpec }; pfSpec.objectSet = new ObjectSpec[] { oSpec }; pfSpec.reportMissingObjectsInResults = true; pfSpec.reportMissingObjectsInResultsSpecified = true; return _service.RetrieveProperties(_sic.propertyCollector, new PropertyFilterSpec[] { pfSpec }); }
The user is the same... Maybe some VM have a permission to be hidden by api? Or not?
Or I doing something wrong?