Red Hat Training

A Red Hat training course is available for Red Hat Virtualization

3.6. 서비스

서비스는 API에서 지원하는 오브젝트에서 작업을 검색, 업데이트 추가, 제거 및 실행하는 서버의 일부입니다.

두 가지 종류의 서비스가 있습니다.

오브젝트 컬렉션을 관리하는 서비스
이러한 서비스는 기존 오브젝트를 나열하고 새 오브젝트를 추가하는 데 사용할 수 있습니다. 예를 들어 Vms 서비스는 시스템에서 사용 가능한 가상 머신 컬렉션을 관리합니다.
특정 오브젝트를 관리하는 서비스
이러한 서비스는 특정 오브젝트에서 작업을 검색, 업데이트, 삭제 및 실행합니다. 예를 들어 Vm 서비스는 특정 가상 머신을 관리합니다.

각 서비스는 서버 내에서 특정 경로를 통해 액세스할 수 있습니다. 예를 들어 시스템에서 사용 가능한 가상 머신 컬렉션을 관리하는 서비스는 경로 /vms 을 통해 사용할 수 있으며 가상 머신을 관리하는 서비스는 /vms/ 123 경로를 통해 사용할 수 있습니다.

모든 종류의 서비스에는 수행할 수 있는 작업을 나타내는 일련의 메서드 가 있습니다. 오브젝트 컬렉션을 관리하는 서비스에는 일반적으로 listadd 방법이 있습니다. 특정 오브젝트를 관리하는 서비스에는 일반적으로 get,updateremove 방법이 있습니다. 또한 서비스에는 덜 일반적인 작업을 나타내는 작업 방법이 있을 수 있습니다. 예를 들어 Vm 서비스에는 가상 머신을 시작하는 데 사용되는 시작 방법이 있습니다.

보다 일반적인 방법의 경우 메서드 이름과 HTTP 메서드 이름 사이에 직접 매핑이 있습니다.

메서드 이름HTTP 방법

add

POST

get

GET

list

GET

update

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,listupdate 방법에만 적용되며 메서드당 정확히 하나의 기본 매개 변수가 있습니다.
보조 매개변수
나머지 매개 변수입니다.

예를 들어 가상 머신을 추가하는 작업( 여기서참조)에는 vm,cloneclone_permissions 의 세 가지 매개변수가 있습니다. 기본 매개 변수는 추가된 오브젝트를 설명할 때 vm 입니다. cloneclone_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>