我使用的是VMware版本的vCloud SDK。我有一个带有两个存储的虚拟机,其中一个是" 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
}
还有其他方法可以同时获得&#34; x&#34;和&#34; y&#34;存储器?
答案 0 :(得分:1)
嘿尝试通过vdc存储配置文件解析
下面是它的链接类型:
&#34; https://vcloud-example/api/query?type=orgVdcStorageProfile&#34;
如果这不是您所需要的,您需要搜索存储配置文件列表本身,它为每个存储策略提供href或链接类型及其特定存储策略的名称和href类型链接
最有可能vm.GetDisks为您提供存储策略&#34; link&#34; (我不确定,但我认为它应该,我不使用C#,但python和powershell)
答案 1 :(得分:0)
vm.GetDisks应该返回所有磁盘。