2014-07-18 6 views
1

vijava를 통해 VM의 정확한 목록을 얻는 방법이 있습니까? "유형 정보"(예 : 런타임, 구성, 게스트 객체)를 얻고 싶습니다. 현재 목록에있는 모든 VM을 가져 와서 관심있는 이름과 일치하는 항목을 찾을 때까지 InventoryNavigator를 거쳐야합니다. 이는 과도한 것처럼 보입니다. 어쨌든 내가 처음으로 모든 것을 검색하지 않고 요청한 정확한 VM을 얻을 수 있습니까? 이 단일 통화가 전달 된 이름과 일치하는 사람을 찾기 위해이 목록을 통해 모든 VM의 나열과 API 검색을 반환 발견했습니다 디버깅에서VIJAVA : ALL을 통해 정렬하는 대신 VM의 정확한 목록 가져 오기

String [][] typeInfo = new String[][] {new String[]{"guest", "config", "runtime"}}; 
ManagedEntity entity = new InventoryNavigator().searchManagedEntity(typeInfo, "hello-world-vm"); 

. 성능상의 이유로 모든 나열된 VM을 반환하지 않고 "hello-world-vm"만 반환하려고합니다.

+0

코드를 표시 할 수 있습니까? –

+0

스 니핏이 게시되었습니다 –

답변

1

찾고있는 VirtualMachine을 UUID와 같은 고유 한 이름으로 사용해야합니다. 예를 들어

:

ServiceInstance si = new ServiceInstance(xxx) 
String uuid = "some uuid here" 
VirtualMachine vm = si.searchIndex.findByUuid(null, uuid, true) 

이는 주어진 UUID가있는 VM을 반환합니다. 위의 코드는 자바가 아닌 그루비입니다. 세미 콜론과 자바에서 getxxx 메소드를 사용해야합니다. (실제 자바를 작성한 이후로 나이가 들었습니다.)

+0

이 접근법의 문제점은 이제 "searchEntities"경로를 사용하여 모든 것을 얻는 반면 typeinfo (예 : 게스트 개체, 런타임 개체, 구성 개체 등)를 가져 오기 위해 여러 번 호출해야한다는 것입니다. 말 그대로 모든 것뿐만 아니라 typeInfo도 모두 1 전화를 원합니다. 당신의 경로는 나에게 ManagedEntity 객체를 줄 것이다. 그러나 "get config"나 "get runtime"을 호출 할 때마다 추가 호출이 발생한다. 만약 우리가 typeinfo를 실행할 수 있다면 멋지 겠지만 API를 통해 나는 그것을 보지 못합니다. –

+1

당신의 질문에 당신은 물었습니다 : "어쨌든 내가 요구하는 정확한 VM을 얻을 수 있습니까? 먼저 모든 것을 검색합니까? " 내 예제에서는 vm 오브젝트를 얻는 방법을 배웠다. 그래서 정확히 무엇을 원하니? 나는 네가 실제로 원하는 것을 알고 있다면 네가 그것을 도울 수있다. –

+0

당신이 옳았습니다. 나는 그 질문에서 더 분명해야했습니다. 나는 위의 내용을 더 정확하게 반영하도록 수정했다. 우리는 가능한 한 전선을 통한 여행을 거의하고 싶지 않습니다. 한 번의 호출로 VM-ONE 및 VM-TWO를 요청할 수 있으며 구성, 런타임 및 게스트 개체를 가져올 수 있습니다. @ 마이클 당신의 방법은 우리에게 물체지만 베어 뼈 버전을 얻을 것이다. 이후에 "getConfig()"또는 "getRuntime()"을 호출 할 때마다 다른 호출이 생성됩니다. 가능한 한 그 문제를 해결하고 싶습니다. –