2.3.6. 업데이트
기존 오브젝트를 업데이트하는 방법을 업데이트합니다. 수행할 업데이트를 설명하는 관련 유형의 인스턴스를 수신하고, 업데이트 요청을 전송하고, 업데이트된 오브젝트를 설명하는 유형의 인스턴스를 반환합니다.
이 업데이트 메서드에서 반환한 Ruby 오브젝트는 관련 유형의 인스턴스입니다. 이는 서비스가 아니라 데이터 컨테이너일 뿐입니다. 이 특정 예에서 반환된 오브젝트는 Vm 클래스의 인스턴스입니다.
다음 예에서 service locator
방법은 가상 시스템을 관리하는 서비스를 찾고 업데이트 방법은 해당 이름을 업데이트합니다
.
가상 머신 이름 업데이트
# Find the virtual machine and the service that # manages it: vm = vms_service.list(search: 'name=myvm').first vm_service = vms_service.vm_service(vm.id) # Update the name: updated_vm = vms_service.update( OvirtSDK4::Vm.new( name: 'newvm' ) )
오브젝트를 업데이트할 때 업데이트하려는 속성만 업데이트합니다.
가상 머신의 선택한 속성 업데이트(권장)
vm = vm_service.get vm.name = 'newvm'
전체 오브젝트를 업데이트하지 마십시오.
가상 머신의 모든 속성 업데이트(권장 안 함)
# Retrieve the current representation: vms_service.update(vm)
가상 머신의 모든 속성을 업데이트하는 것은 리소스가 낭비되는 것이며 서버 측에서 예기치 않은 버그가 발생할 수 있습니다.
일부 서비스의 업데이트 방법은 업데이트
방법 또는 업데이트 방법을 제어하는 데 사용할 수 있는 추가 매개변수를 지원합니다. 예를 들어 가상 시스템의 메모리를 현재 상태가 아닌 다음에 시작할 때 업데이트할 수 있습니다. 가상 머신을 관리하는 서비스의 업데이트
방법은 next_run 부울 매개 변수를 지원합니다.
다음 실행에서 가상 머신의 메모리 업데이트
vm = vm_service.update( OvirtSDK4::Vm.new( memory: 1073741824 ), next_run: true )
업데이트를 수행할 수 없는 경우 SDK에서 오류에 대한 세부 정보가 포함된 Error 예외가 발생합니다. nil
을 반환하지 않습니다.