2.6. 서비스 사용
서비스를 찾은 후에는 서버에 요청을 보내고 실제 작업을 수행하는 서비스 메서드를 호출할 수 있습니다.
단일 오브젝트를 관리하는 서비스는 일반적으로 get
,update
및 remove
메서드를 지원합니다.
오브젝트 컬렉션을 관리하는 서비스는 일반적으로 목록
및 추가
방법을 지원합니다.
두 종류의 서비스, 특히 단일 개체를 관리하는 서비스는 모두 추가 작업 메서드를 지원할 수 있습니다.
2.6.1. get
Methods 사용
이러한 서비스 메서드는 단일 개체의 표현을 검색하는 데 사용됩니다. 다음 예제에서는 식별자가 123
인 가상 머신의 표현을 검색합니다.
# Find the service that manages the virtual machine: vms_service = system_service.vms_service() vm_service = vms_service.vm_service('123') # Retrieve the representation of the virtual machine: vm = vm_service.get()
응답은 해당 유형의 인스턴스이며 이 경우 Python 클래스 ovirtsdk4.types.Vm
.
일부 서비스의 get
메서드는 개체의 표현을 검색하는 방법 또는 하나 이상의 경우 검색할 표현 방법을 제어하는 추가 매개 변수를 지원합니다. 예를 들어 가상 시스템의 현재 상태 또는 다음에 다른 상태가 시작될 때 해당 상태를 검색할 수 있습니다. 가상 머신을 관리하는 서비스의 get
메서드는 next_run
부울 매개 변수를 지원합니다.
# Retrieve the representation of the virtual machine, not the # current one, but the one that will be used after the next # boot: vm = vm_service.get(next_run=True)
자세한 내용은 SDK의 참조 문서를 참조하십시오.
어떤 이유로든 오브젝트를 검색할 수 없는 경우 SDK는 실패 세부 정보와 함께 ovirtsdk4.Error
예외가 발생합니다. 여기에는 개체가 실제로 존재하지 않는 상황이 포함됩니다. get
service 메서드를 호출할 때 예외가 발생합니다. 해당 호출이 서버에 요청을 보내지 않기 때문에 오브젝트가 없는 경우에도 서비스 로케이터 메서드 호출이 실패하지 않습니다. 예:
# Call the service that manages a non-existent virtual machine. # This call will succeed. vm_service = vms_service.vm_service('junk') # Retrieve the virtual machine. This call will raise an exception. vm = vm_service.get()