2.6.4. 업데이트 방법 사용


이러한 서비스 방법은 기존 오브젝트를 업데이트합니다. 수행할 업데이트를 설명하고, 업데이트를 위해 요청을 보내고, 업데이트된 오브젝트를 설명하는 유형의 인스턴스를 반환합니다.

이 예에서는 vm1 에서 newvm 으로 가상 머신의 이름을 업데이트합니다.

from ovirtsdk4 import types

# Find the virtual machine, and then the service that
# manages it:
vm = vms_service.list(search='name=vm1')[0]
vm_service = vm_service.vm_service(vm.id)

# Update the name:
updated_vm = vm_service.update(
    vm=types.Vm(
        name='newvm'
    )
)

업데이트를 수행할 때 개체의 전체 표현은 보내지 않도록 합니다. 업데이트하려는 속성만 보냅니다. 이 작업을 수행하지 마십시오.

# Retrieve the complete representation:
vm = vm_service.get()

# Update the representation, in memory, without sending a request
# to the server:
vm.name = 'newvm'

# Send the update. Do *not* do this.
vms_service.update(vm)

완전한 표현을 전송하면 두 가지 문제가 발생합니다.

  • 서버에 필요한 것보다 더 많은 정보를 보내고 있으므로 리소스를 낭비하고 있습니다.
  • 서버는 변경하려는 경우에도 오브젝트의 모든 속성을 업데이트하려고 시도합니다. 이로 인해 서버 측에서 버그가 발생할 수 있습니다.

일부 서비스의 업데이트 방법은 업데이트 방법 또는 업데이트 방법을 제어하는 추가 매개 변수를 지원합니다. 예를 들어 다음에 가상 머신이 시작될 때 가상 머신의 현재 상태 또는 사용 상태를 업데이트할 수 있습니다. 가상 머신을 관리하는 서비스의 업데이트 방법은 next_run 부울 매개 변수를 지원합니다.

# Update the memory of the virtual machine to 1 GiB,
# not during the current run, but after next boot:
vm = vm_service.update(
    vm=types.Vm(
        memory=1073741824
    ),
    next_run=True
)

어떠한 이유로든 업데이트를 수행할 수 없는 경우 SDK는 오류에 대한 세부 정보가 포함된 ovirtsdk4.Error 예외를 발생시킵니다. 아무 것도 반환하지 않습니다.

이 업데이트 메서드에서 반환된 Python 오브젝트는 관련 유형의 인스턴스입니다. 이는 서비스가 아니라 데이터 컨테이너입니다. 이 특정 예제에서 반환된 오브젝트는 ovirtsdk4.types.Vm 클래스의 인스턴스입니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.