public DiskData[] GetDisks(string virtualMachineName)
        {
            EnsureConnected();

            VmWareServiceUtil      serviceUtil       = new VmWareServiceUtil(_connection);
            ManagedObjectReference virtualMachineRef = serviceUtil.GetDecendentMoRef(null, "VirtualMachine", virtualMachineName);

            Verifiers.VerifyNotNull(virtualMachineRef, "Cannot find virtual machine with specified name: {0}", virtualMachineName);

            String dataCenterName = serviceUtil.GetDataCenter(virtualMachineRef);

            String[] vmDirectory = serviceUtil.GetVmDirectory(virtualMachineRef);

            var virtualDiskPaths = serviceUtil.GetVirtualDiskPaths(virtualMachineRef);

            return(new DiskData[0]);
        }
        public IReadOnlyCollection <string> GetVirtualDiskPaths(ManagedObjectReference virtualMachineRef)
        {
            var virtualDiskPaths = new List <string>();

            VirtualMachineConfigInfo virtualMachineConfig = (VirtualMachineConfigInfo)GetDynamicProperty(virtualMachineRef, "config");

            Verifiers.VerifyNotNull(virtualMachineConfig, "Failed to obtain virtual machine configuration information");

            VirtualDevice[] virtualDevices = virtualMachineConfig.hardware.device;
            foreach (VirtualDevice virtualDevice in virtualDevices)
            {
                if (virtualDevice is VirtualDisk)
                {
                    VirtualDeviceFileBackingInfo backingInfo = (VirtualDeviceFileBackingInfo)virtualDevice.backing;
                    virtualDiskPaths.Add(backingInfo.fileName);
                }
            }

            return(virtualDiskPaths);
        }