2017-02-14 1 views
1

J'utilise la version .NET du vCloud SDK de VMware. J'ai une VM avec deux stockages, l'un de type "x" et l'autre de type "y".VM avec plusieurs StorageProfiles

Cependant, lors de l'appel vm.Resource.StorageProfile.name je ne reçois le nom du premier disque (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 
} 

est-il un autre moyen d'obtenir à la fois le « x » et « y » stockages?

Répondre

1

Hey essayez l'analyse syntaxique via le profil de stockage vdc au lieu

Heres le type de lien pour elle:

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

Si ce n'est pas ce que vous devez vous devez rechercher le profil de stockage liste elle-même, où il donne href ou un type de lien pour CHAQUE politique de stockage avec leur nom et href type lien pour cette politique de stockage spécifique

très probablement vm.GetDisks vous donne la politique de stockage "lien" (im no Bien sûr, mais je pense qu'il devrait, je n'utilise pas C#, mais python et powershell)

+0

Salut, merci pour votre réponse. J'ai essayé vos deux suggestions, la première me donne un "Cette opération est refusée." et le second un "ACCESS_TO_RESOURCE_IS_FORBIDDEN - DISALLOWED_OPERATIONS". Je suppose que cela a à voir avec les autorisations mais les informations de connexion que j'utilise doivent être correctes. – Maerth

+0

J'ai réussi à trouver les profils de stockage en utilisant cette requête: "https: // vcloud-exemple/API/requête? Type = orgVdcStorageProfile". Merci beaucoup! Je vais modifier votre réponse à cela et la marquer comme la réponse si tout va bien. – Maerth

+0

lol bien sûr ... on dirait que vous n'avez pas de privilèges d'administrateur hein ... de toute façon, rappelez-vous que si les profils de stockage sont plus que 30, ils ne seront pas tous listés, vous devrez peut-être changer la taille de la requête – AdilZ

0

vm.GetDisks doit renvoyer tous les disques.

+0

Cependant, les disques virtuels ne contiennent pas les noms des profils de stockage et c'est ce dont j'ai besoin. – Maerth