2.2. 유형


2.2.1. 유형 인스턴스 생성 및 수정

아래에 설명된 대로 변경 사항이 서비스 메서드를 호출하는 서버로 명시적으로 전송되지 않는 한 형식 인스턴스를 만들거나 수정해도 서버 쪽에 영향을 미치지 않습니다.Creating or modifying an instance of a type does not have any effect on the server side, unless the changes are explicitly sent to the server calling a service method, as described below. 서버 측의 변경 사항은 이미 메모리에 이미 존재하는 인스턴스에 자동으로 반영되지 않습니다.

이러한 클래스의 생성자에는 형식의 각 속성에 대해 여러 선택적 인수가 있습니다.The constructors of these classes have multiple optional arguments, one for each attribute of the type. 이는 여러 생성자에 대한 중첩된 호출을 사용하여 오브젝트 생성을 간소화합니다.

다음 예에서는 가상 머신 인스턴스가 생성되고 해당 속성(클러스터, 템플릿 및 메모리)이 설정됩니다.

특성을 사용하여 가상 머신 인스턴스 생성

vm = OvirtSDK4::Vm.new(
  name: 'myvm',
  cluster: OvirtSDK4::Cluster.new(
    name: 'mycluster'
  ),
  template: OvirtSDK4::Template.new(
    name: 'mytemplate'
  ),
  memory: 1073741824
)

해시(예: cluster) 이러한 생성자에 전달된 OvirtSDK4::Cluster.new는 재귀적으로 처리됩니다.

다음 예제에서 클러스터 및 템플릿 클래스의 생성자를 명시적으로 호출하는 대신 일반 해시가 사용됩니다. SDK는 내부적으로 해시를 필요한 클래스로 변환합니다.

Attributes Expressed as Plain Hashes를 사용하여 가상 머신 인스턴스 생성

vm = OvirtSDK4::Vm.new(
  name: 'myvm',
  cluster: {
    name: 'mycluster'
  },
  template: {
    name: 'mytemplate'
  },
  memory: 1073741824
)

이러한 방식으로 생성자를 사용하는 것이 권장되지만 필수는 아닙니다.

다음 예제에서는 생성자를 호출할 때 인수 없이 가상 머신 인스턴스가 생성됩니다. setters를 사용하거나 setter 및 constructors 조합을 사용하여 가상 머신 인스턴스의 속성을 하나씩 추가할 수 있습니다.

가상 머신 인스턴스 생성 및 개별 속성 추가

vm = OvirtSDK4::Vm.new
vm.name = 'myvm'
vm.cluster = OvirtSDK4::Cluster.new(name: 'mycluster')
vm.template = OvirtSDK4::Template.new(name: 'mytemplate')
vm.memory = 1073741824

API 사양의 오브젝트 목록으로 정의된 속성은 Ruby 배열로 구현됩니다. 예를 들어 Vm 유형의 custom_properties 속성은 CustomProperty 유형의 개체 목록으로 정의됩니다.

특성 목록을 배열로 추가Adding a List of attributes as an Array

vm = OvirtSDK4::Vm.new(
  name: 'myvm',
  custom_properties: [
    OvirtSDK4::CustomProperty.new(...),
    OvirtSDK4::CustomProperty.new(...),
    ...
  ]
)

API에서 열거된 값으로 정의된 속성은 열거된 형식과 동일한 이름의 모듈에서 상수로 구현됩니다.

다음 예제에서는 VmStatus enumerated 값을 사용하여 Vm 유형의 status 속성을 정의하는 방법을 보여줍니다.

case vm.status
when OvirtSDK4::VmStatus::DOWN
  ...
when OvirtSDK4::VmStatus::IMAGE_LOCKED
  ...
end
중요

API 사양에서 enum 형식 값은 XML 및 JSON에 대한 규칙이므로 소문자입니다.In the API specification, the values of enum types are lower case, because that is the convention for XML and JSON. 그러나 Ruby에서 규칙은 이러한 상수에 대해 대문자 를 사용하는 것입니다.

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

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

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

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

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동