2.6.3. 추가 방법 사용
이러한 서비스 메서드는 컬렉션에 새 요소를 추가합니다. 추가할 오브젝트를 설명하는 관련 유형의 인스턴스를 수신하고, 추가할 요청을 보내고, 추가된 오브젝트를 설명하는 유형의 인스턴스를 반환합니다.
이 예제에서는 vm1 이라는 새 가상 머신을 추가합니다.
from ovirtsdk4 import types # Add the virtual machine: vm = vms_service.add( vm=types.Vm( name='vm1', cluster=types.Cluster( name='Default' ), template=types.Template( name='mytemplate' ) ) )
어떤 이유로든 오브젝트를 생성할 수 없는 경우 SDK는 실패 세부 정보가 포함된 ovirtsdk4.Error
예외를 발생시킵니다. 아무 것도
반환하지 않습니다.
이 add
메서드에서 반환된 Python 오브젝트는 관련 유형의 인스턴스입니다. 이는 서비스가 아니라 데이터 컨테이너입니다. 이 특정 예제에서 반환된 오브젝트는 ovirtsdk4.types.Vm
클래스의 인스턴스입니다. 가상 머신을 생성한 후 가상 머신 검색 또는 시작과 같은 작업을 수행해야 하는 경우 먼저 이를 관리하는 서비스를 찾고 해당 서비스 로케이터를 호출해야 합니다.
# Add the virtual machine: vm = vms_service.add( ... ) # Find the service that manages the virtual machine: vm_service = vms_service.vm_service(vm.id) # Start the virtual machine vm_service.start()
개체는 비동기적으로 생성됩니다.Objects are created asynchronously. 새 가상 머신을 생성할 때 추가
방법은 가상 머신을 완전히 생성하고 사용할 준비가 되기 전에 응답을 반환합니다. 오브젝트 상태를 폴링하여 완전히 생성되었는지 확인하는 것이 좋습니다. 가상 머신의 경우 해당 상태가 DOWN
이 될 때까지 확인해야 합니다.
# Add the virtual machine: vm = vms_service.add( ... ) # Find the service that manages the virtual machine: vm_service = vms_service.vm_service(vm.id) # Wait until the virtual machine is down, indicating that it is # completely created: while True: time.sleep(5) vm = vm_service.get() if vm.status == types.VmStatus.DOWN: break
반복문을 사용하여 get
메서드와 함께 오브젝트 상태를 검색하여 status 속성이 업데이트되었는지 확인합니다.