1

我正在使用 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”存储?

4

2 回答 2

1

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

这是它的链接类型:

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

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

最有可能 vm.GetDisks 为您提供存储策略“链接”(我不确定,但我认为应该,我不使用 C#,但使用 python 和 powershell)

于 2017-02-27T16:39:53.473 回答
0

vm.GetDisks 应该返回所有磁盘。

于 2017-02-14T15:11:36.407 回答