2.2. 类型
2.2.1. 创建和修改类型实例 复制链接链接已复制到粘贴板!
创建或修改类型实例对服务器端没有任何影响,除非更改明确发送到调用服务方法的服务器,如下所述。服务器端的更改不会自动反映在内存中已存在的实例中。
这些类构造器具有多个可选参数,分别用于类型的每个属性。这通过使用嵌套调用多个构造器来简化对象的创建。
在以下示例中,会创建一个虚拟机的实例,并设置了其属性(集群、模板和内存):
使用属性创建虚拟机实例
传递给这些构造器的哈希值(如 cluster: OvirtSDK4::Cluster.new
)会被递归处理。
在以下示例中,使用普通哈希而不是显式调用集群和模板类的构造器。SDK 内部将哈希转换为所需的类。
使用显示为 Plain Hashes 的属性创建虚拟机实例
建议以这种方式使用 constructors,但不是强制性的。
在以下示例中,在调用 constructor 时创建一个没有参数的虚拟机实例。您可以逐个添加虚拟机实例的属性,使用 setters,或使用集合器和构造器的组合来添加。
单独创建虚拟机实例和添加属性
vm = OvirtSDK4::Vm.new vm.name = 'myvm' vm.cluster = OvirtSDK4::Cluster.new(name: 'mycluster') vm.template = OvirtSDK4::Template.new(name: 'mytemplate') vm.memory = 1073741824
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
的对象列表。
将属性列表添加为数组
在 API 中定义为枚举值的属性作为常量在与枚举类型相同的模块中实现。
以下示例演示了如何使用 VmStatus enumerated 值定义
类型的 status 属性。
Vm
Status
在 API 规格中,枚举
类型的值较低,因为这是 XML 和 JSON 的约定。但是,在 Ruby 中,约定是对这些常数 使用大写的情况。