- What's the best value or values to uniquely identify a VM? It appears that the obvious choices - name, DNS name, uuid, instanceUuid, mo_ref - are either not guarenteed unique (uuid), not unique across servers (instanceUuid), or aren't always defined (DNS name).
- How do the VM values in task event notification jibe with the VM values in vSphere? For example, vappUpdateVm includes this ID 'type="vcloud:vm" id="urn:vcloud:vm:bf333b6b-xxxx-xxxx-xxxx-105fcb98xxxx"'. Is this the vSphere UUID, instanceUuid or neither? In any of those cases, it's not possible to relate it back to a vSphere VM if it's not guarenteed unique.
- Some parts of the VMware landscape seem to position vApps as having an essential role in identifying VMs. For example, in the vCloud API Programming Guide (VCD 1.5) Table 11-2. (Requirements for Unique Object Names) lists VMs as being unique only within vApp name scope. Yet it appears that VMs in vSphere don't have to be part of a vApp, and they seem to be an afterthought in the client. So what is the object hierarchy for VMs? Are they always part of a vApp or not? If not, than what are they part of?
My goal with these questions is to understand the object model underlying the VMware landscape. This article by William Lam was somewhat helpful, but still left me with the above questions. http://blogs.vmware.com/vsphere/2012/02/uniquely-identifying-virtual-machines-in-vsphere-and-vcloud-part-1-overview.html