2017-02-14 2 views
1

VMware의 .NET 버전 vCloud SDK를 사용하고 있습니다. 두 개의 저장소가있는 VM이 ​​있는데 하나는 "x"유형이고 다른 하나는 "y"유형입니다. 그러나여러 개의 StorageProfiles가있는 VM

, 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"를 모두 얻을 수있는 다른 방법이 있나요 창고?

답변

1

어이 VDC의 스토리지 프로파일을 통해 구문 분석을 시도 대신

을 heres 그것에 대한 링크 유형 :

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

즉 당신이 스토리지 프로파일을 검색 할 필요가 필요하지 않은 경우 특정 스토리지 정책에 대한 이름과 href 유형 링크가있는 각 스토리지 정책에 대한 href 또는 링크 유형을 제공합니다.

대부분 vm.GetDisks가 스토리지 정책 "링크"를 제공합니다 확실하지만 필자는 C#, python 및 powershell을 사용하지 마십시오.)

+0

안녕하세요, 귀하의 회신에 감사드립니다. 나는 당신의 제안을 모두 시험해 보았습니다. 첫 번째 질문은 "이 작업은 거부되었습니다."라고 나에게 알려줍니다. 두 번째는 "ACCESS_TO_RESOURCE_IS_FORBIDDEN - DISALLOWED_OPERATIONS"입니다. 나는 이것이 허가와 관련이 있다고 가정하지만, 내가 사용하고있는 로그인 정보는 정확해야한다. – Maerth

+0

"https : // vcloud-example/api/query? type = orgVdcStorageProfile"쿼리를 사용하여 storageprofiles를 찾을 수있었습니다. 고마워요! 나는 이것에 대한 당신의 답을 편집 할 것이고 그것이 괜찮다면 대답으로 표시 할 것입니다. – Maerth

+0

LOL 확실한 것 같습니다. 당신은 admin priveleges huh를 갖고 있지 않습니다. 어쨌든 스토리지 프로파일이 30 이상이면 모든 것을 나열하지 않을 것입니다. 쿼리에서 페이지 크기를 변경해야 할 수도 있습니다. – AdilZ

0

vm.GetDisks는 모든 디스크를 반환해야합니다.

+0

사실 그렇지만 가상 디스크에는 storageprofiles의 이름이 없으며 필요한 것입니다. – Maerth