2017-02-14 29 views
1

Я использую .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 
} 

Есть ли другой способ, чтобы получить как «х» и «у» хранилища?

ответ

1

Эй попробовать разбор через профиль хранения VDC вместо

Heres тип ссылки на него:

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

Если это не то, что вам нужно вам нужно искать для профиля хранения список, где он дает href или тип ссылки для EACH политики хранения с их именем и ссылкой типа href для этой конкретной политики хранения.

Скорее всего, vm.GetDisks предоставляет вам политику хранения "link" (im no я уверен, но я думаю, что это должно быть, я не использую C#, но python и powershell)

+0

Привет, спасибо за ваш ответ. Я попробовал оба ваших предложения, первый из них дает мне «Эта операция отрицается». а второй - «ACCESS_TO_RESOURCE_IS_FORBIDDEN - DISALLOWED_OPERATIONS». Я предполагаю, что это связано с разрешениями, но информация для входа, которую я использую, должна быть правильной. – Maerth

+0

Мне удалось найти файлы хранилища, используя этот запрос: «https: // vcloud-example/api/query? Type = orgVdcStorageProfile». Большое спасибо! Я отредактирую ваш ответ на это и пометьте его как ответ, если все в порядке. – Maerth

+0

lol sure .. похоже, что у вас нет админ-priveleges huh ... в любом случае просто помните, что если профили хранилища более чем 30, он не будет перечислять их все, вам, возможно, придется изменить размер страницы в запросе – AdilZ

0

vm.GetDisks должен возвращать все диски.

+0

Правда, виртуальные диски не содержат имен файлов хранилища, и это то, что мне нужно. – Maerth

 Смежные вопросы

  • Нет связанных вопросов^_^