3.6. 서비스
서비스는 API에서 지원하는 오브젝트에서 작업을 검색, 업데이트 추가, 제거 및 실행하는 서버의 일부입니다.
두 가지 종류의 서비스가 있습니다.
각 서비스는 서버 내에서 특정 경로를 통해 액세스할 수 있습니다. 예를 들어 시스템에서 사용 가능한 가상 머신 컬렉션을 관리하는 서비스는 경로 /vms
을 통해 사용할 수 있으며 가상 머신을 관리하는 서비스는 /vms/
경로를 통해 사용할 수 있습니다.
123
모든 종류의 서비스에는 수행할 수 있는 작업을 나타내는 일련의 메서드 가 있습니다. 오브젝트 컬렉션을 관리하는 서비스에는 일반적으로 list
및 add
방법이 있습니다. 특정 오브젝트를 관리하는 서비스에는 일반적으로 get
,update
및 remove
방법이 있습니다. 또한 서비스에는 덜 일반적인 작업을 나타내는 작업 방법이 있을 수 있습니다. 예를 들어 Vm 서비스에는 가상 머신을 시작하는 데 사용되는 시작 방법이 있습니다.
보다 일반적인 방법의 경우 메서드 이름과 HTTP 메서드 이름 사이에 직접 매핑이 있습니다.
메서드 이름 | HTTP 방법 |
---|---|
| POST |
| GET |
| GET |
| PUT |
| DELETE |
HTTP 요청에 사용된 경로는 /ovirt-engine/api
접두사가 있는 서비스의 경로입니다.
예를 들어 HTTP GET
메서드 및 경로 /vms
를 사용하여 가상 머신 나열
요청은 다음과 같아야 합니다.
GET /ovirt-engine/api/vms
동작 메서드의 경우 HTTP 메서드가 항상 POST
이며 메서드 이름은 경로에 접미사로 추가됩니다. 예를 들어 가상 머신의 start request는 HTTP POST
방법과 경로 /vms/123/start
:을 사용하여 다음과 같아야 합니다.
POST /ovirt-engine/api/vms/123/start
각 메서드에는 일련의 매개 변수가 있습니다.
매개변수는 다음 두 가지 범주로 분류됩니다.
- main 매개변수
-
main 매개변수는 검색, 추가 또는 업데이트되는 개체 또는 컬렉션에 해당합니다. 이 값은
add
,get
,list
및update
방법에만 적용되며 메서드당 정확히 하나의 기본 매개 변수가 있습니다. - 보조 매개변수
- 나머지 매개 변수입니다.
예를 들어 가상 머신을 추가하는 작업( 여기서참조)에는 vm
,clone
및 clone_permissions
의 세 가지 매개변수가 있습니다. 기본 매개 변수는 추가된 오브젝트를 설명할 때 vm
입니다. clone
및 clone_permissions
매개변수는 보조 매개변수입니다.
기본 매개 변수는 입력에 사용될 때 HTTP 요청 본문에 포함되어야 합니다. 예를 들어 가상 시스템을 추가할 때 Vm 유형의 vm
매개 변수가 요청 본문에 포함되어야 합니다. 따라서 모든 HTTP 세부 정보를 포함한 가상 머신을 추가하기 위한 전체 요청은 다음과 같아야 합니다.
POST /ovirt-engine/api/vms HTTP/1.1 Host: myengine.example.com Authorization: Bearer fqbR1ftzh8wBCviLxJcYuV5oSDI= Content-Type: application/xml Accept: application/xml <vm> <name>myvm</name> <description>My VM</description> <cluster> <name>Default</name> </cluster> <template> <name>Blank</name> </template> </vm>
출력에 사용될 때 주요 매개 변수가 응답 본문에 포함됩니다. 예를 들어 가상 시스템을 추가할 때 응답 본문에 vm
매개변수가 포함됩니다. 따라서 전체 응답 본문이 다음과 같이 표시됩니다.
HTTP/1.1 201 Created Content-Type: application/xml <vm href="/ovirt-engine/api/vms/123" id="123"> <name>myvm</name> <description>My VM</description> ... </vm>
보조 매개변수는 입력에만 허용되며(나중에 설명되는 작업 방법 제외) 쿼리 매개변수로 포함해야 합니다. 예를 들어 clone
매개변수를 true
로 설정하여 가상 머신을 추가하는 경우 전체 요청은 다음과 같아야 합니다.
POST /ovirt-engine/api/vms?clone=true HTTP/1.1 Host: myengine.example.com Authorization: Bearer fqbR1ftzh8wBCviLxJcYuV5oSDI= Content-Type: application/xml Accept: application/xml <vm> <name>myvm</name> <description>My VM</description> <cluster> <name>Default</name> </cluster> <template> <name>Blank</name> </template> </vm>
작업 메서드에는 보조 매개 변수만 있습니다. 입력 및 출력에 사용할 수 있으며 요청 본문에 포함되어야 하며 action
요소로 래핑되어야 합니다. 가상 머신을 시작하는 데 사용되는 동작 방법( 여기서참조)에는 가상 머신 시작 방법을 설명하는 vm
매개 변수와 use_cloud_init
매개변수를 사용하여 게스트 운영 체제를 구성해야 하는지 지정합니다. https://cloudinit.readthedocs.io 따라서 cloud-init 를 사용하여 가상 머신 4.6.1
을 시작하기 위한 전체 요청은 XML을 사용할 때 다음과 같습니다.
POST /ovirt-engine/api/vms/123/start HTTP/1.1 Host: myengine.example.com Authorization: Bearer fqbR1ftzh8wBCviLxJcYuV5oSDI= Content-Type: application/xml Accept: application/xml <action> <use_cloud_init>true</use_cloud_init> <vm> <initialization> <nic_configurations> <nic_configuration> <name>eth0</name> <on_boot>true</on_boot> <boot_protocol>static</boot_protocol> <ip> <address>192.168.0.100</address> <netmask>255.255.255.0</netmask> <gateway>192.168.0.1</netmask> </ip> </nic_configuration> </nic_configurations> <dns_servers>192.168.0.1</dns_servers> </initialization> </vm> </action>