具有多个 StorageProfile 的 VM

VM with multiple StorageProfiles

我正在使用 VMware 的 vCloud SDK 的 .NET 版本。我有一个有两个存储的虚拟机,一个是 "x" 类型,另一个是 "y".

类型

然而,当调用vm.Resource.StorageProfile.name时,我只得到第一个磁盘的名称(x)

vCloudClient client = new vCloudClient(url,   com.vmware.vcloud.sdk.constants.Version.V1_5);
client.Login(userName,pass);
Organization organisation = Organization.GetOrganizationByReference(client, client.GetOrgRefsByName()[orgName]);
Vdc vdc = Vdc.GetVdcByReference(client,organisation.GetVdcRefByName(vdcName));
ReferenceType vappref = vdc.GetVappRefByName("myVappName");
Vapp vapp = Vapp.GetVappByReference(client,vappref);
List<VM> vms = vapp.GetChildrenVms();
foreach(VM vm in vms)
{
   //VM I'm having trouble with
   string storageprofile = vm.Resource.StorageProfile.name //returns value: x
}

有没有其他方法可以同时获得 "x" 和 "y" 存储空间?

vm.GetDisks 应该 return 所有磁盘。

嘿,尝试通过 vdc 存储配置文件进行解析

这是它的 link 类型:

"https://vcloud-example/api/query?type=orgVdcStorageProfile"

如果这不是您需要的,您需要搜索存储配置文件列表本身,它为每个存储策略提供 href 或 link 类型及其名称和 href 类型 link对于该特定存储策略

很可能 vm.GetDisks 给你存储策略 "link"(我不确定,但我认为应该,我不使用 C#,但是 python 和 powershell)