Я использую .NET-версию vCloud SDK от VMware. У меня есть виртуальная машина с двумя хранилищами, одна из которых «x», а другая типа «y».VM с несколькими StorageProfiles
Однако при вызове vm.Resource.StorageProfile.name я только получить имя первого диска (х)
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
}
Есть ли другой способ, чтобы получить как «х» и «у» хранилища?
Привет, спасибо за ваш ответ. Я попробовал оба ваших предложения, первый из них дает мне «Эта операция отрицается». а второй - «ACCESS_TO_RESOURCE_IS_FORBIDDEN - DISALLOWED_OPERATIONS». Я предполагаю, что это связано с разрешениями, но информация для входа, которую я использую, должна быть правильной. – Maerth
Мне удалось найти файлы хранилища, используя этот запрос: «https: // vcloud-example/api/query? Type = orgVdcStorageProfile». Большое спасибо! Я отредактирую ваш ответ на это и пометьте его как ответ, если все в порядке. – Maerth
lol sure .. похоже, что у вас нет админ-priveleges huh ... в любом случае просто помните, что если профили хранилища более чем 30, он не будет перечислять их все, вам, возможно, придется изменить размер страницы в запросе – AdilZ