3.7. 검색
일부 서비스의 list
방법에는 검색 기준을 지정하는 데 사용할 수 있는 search
매개 변수가 있습니다. 사용하는 경우 서버는 이러한 조건을 충족하는 컬렉션 내의 개체만 반환합니다. 예를 들어 다음 요청에서는 myvm
이라는 가상 머신만 반환합니다.
GET /ovirt-engine/api/vms?search=name%3Dmyvm
3.7.1. 최대 결과 매개변수
max
매개변수를 사용하여 반환된 오브젝트 수를 제한합니다. 예를 들어 다음 요청에서는 시스템에서 사용할 수 있는 수에 관계없이 하나의 가상 머신만 반환합니다.
GET /ovirt-engine/api/vms?max=1
max
매개변수가 없는 검색 요청은 모든 오브젝트를 반환합니다. 시스템의 전반적인 성능에 대한 요청의 영향을 줄이기 위해 max
매개변수를 지정하는 것이 좋습니다.
3.7.2. 케이스 민감도
기본적으로 쿼리는 대소문자를 구분하지 않습니다. 예를 들어 다음 요청에서는 myvm
,MyVM
및 MYVM
이라는 가상 머신을 반환합니다.
GET /ovirt-engine/api/vms?search=name%3Dmyvm
선택적 case_sensitive
부울 매개변수를 사용하여 이 동작을 변경할 수 있습니다. 예를 들어 MyHost
또는 MYHOST
가 아닌 myhost
라는 가상 머신을 정확히 얻으려면 다음과 같은 요청을 보냅니다.
GET /ovirt-engine/api/vms?search=name%3D=myvm&case_sensitive=true
3.7.3. 검색 구문
검색
매개변수는 Red Hat Virtualization 쿼리 언어와 동일한 구문을 사용합니다.
(criteria) [sortby (element) asc|desc]
sortby
절은 선택 사항이며 결과를 정렬할 때만 필요합니다.
검색 쿼리 예:
소프트웨어 컬렉션 | 기준 | 결과 |
---|---|---|
|
|
실행 중인 가상 머신을 실행하는 모든 호스트 목록을 반환합니다. |
|
| 지정된 도메인에서 실행 중인 모든 가상 머신 목록을 반환합니다. |
|
|
사용자 이름이 |
|
|
심각도가 |
|
|
심각도가 |
search
매개변수 값은 연산자 및 공백과 같은 예약된 문자를 변환하기 위해 URL로 인코딩 되어야 합니다. 예를 들어 등호는 %3D
로 인코딩되어야 합니다.
GET /ovirt-engine/api/vms?search=name%3Dmyvm
3.7.4. 와일드카드
별표는 값의 일부로 사용하여 emtpy 문자열을 포함하여 일치하는 문자열이 있음을 나타낼 수 있습니다. 예를 들어 다음 요청에서는 myvm ,myvm2
,
또는 myvm
a
와 같이 이름이 myvm으로 시작하는 모든 가상 머신을 반환합니다.
myvm
-webserver
GET /ovirt-engine/api/vms?search=name%3Dmyvm*
3.7.5. 페이지 번호
일부 Red Hat Virtualization 환경에는 대규모 오브젝트 컬렉션이 포함되어 있습니다. 하나의 요청으로 모두를 검색하는 것은 실용적이지 않으며 성능이 저하됩니다. 페이지별로 페이지를 검색할 수 있도록 search
매개 변수는 선택적 페이지
절을 지원합니다. max
매개변수와 함께 이 값은 페이징 기준으로 사용됩니다. 예를 들어 페이지 크기가 10개인 가상 머신의 첫 번째 페이지를 가져오려면 다음과 같이 요청을 보냅니다.
GET /ovirt-engine/api/vms?search=page%201&max=10
search
매개변수는 인코딩하기 전에 URL로 인코딩된 URL로 인코딩되어 있으므로 실제로 첫 번째 페이지를 요청하는 것입니다.
페이지
값을 늘려 다음 페이지를 검색합니다.
GET /ovirt-engine/api/vms?search=page%202&max=10
page
절은 search
매개변수 내부의 다른 절과 함께 사용할 수 있습니다. 예를 들어 다음 요청에서는 가상 머신의 두 번째 페이지를 반환하지만 이름으로 정렬됩니다.
GET /ovirt-engine/api/vms?search=sortby%20name%20page%202&max=10
API는 상태 비저장이며 모든 요청이 서로 독립적이므로 서로 다른 요청 간에 상태를 유지할 수 없습니다. 결과적으로 요청 간에 상태 변경이 발생하면 페이지 결과가 일관되지 않을 수 있습니다.
예를 들어 가상 머신 목록의 특정 페이지를 요청하고 다음 페이지를 요청하기 전에 가상 머신이 생성 또는 제거되면 결과 중 일부가 누락되거나 중복이 포함될 수 있습니다.