ovirt-engine-sdk 4.3.1 → 4.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: ca8fdcd1d4d2c8bcbdc3b1283e05a37d5339ddda
4
- data.tar.gz: b679736504584a78ba18179cec2842970bca3433
2
+ SHA256:
3
+ metadata.gz: 5e9060393823b39695c5f1c2948dc872f2dc029d26134c20efd68f8691ce8ab0
4
+ data.tar.gz: 7bdb011f2cba8dd0f5acd6703cc25c7b47f3237efb8b4f7831346c26f4a7246e
5
5
  SHA512:
6
- metadata.gz: 689b4ba2fc7fb81a8a389d8baff2511322e84c235bce5172f34fc4a36041869f2de9f5a2d1be3492e20a181596afd9b0e2ab4026ab9e839a541ae33844e8ef0a
7
- data.tar.gz: 8713015125c1f93ae29b6e8937d0d6724286f402ae6bafbcfa2b984c9d6b10640623f2d0a77e305ee39e7e49b91f1facf363b2932552c468b7847702ff19ebc1
6
+ metadata.gz: f930225a601bc6c2276fb1e7f2b9bf36aac8a8cc07afc826bebe5680a1d8630743b773fbb5870b4c02121f07de71e781a05e2b5ebeaf15118791d05cbc4b05e9
7
+ data.tar.gz: 7a1830310610f8f09de4a74f1eba7d593a12b3a370fb273d8034e6fbdac1dffe72e764c7d17b7a74785fc473d2e8eb9df0ad5a8465a93a850a1fc0d02bb44d92
@@ -2,45 +2,26 @@
2
2
 
3
3
  This document describes the relevant changes between releases of the SDK.
4
4
 
5
- == 4.3.1 / Apr 22 2020
6
- New features:
7
-
8
- * introduce generic initialize of vm
9
-
10
- * Add timeout to host upgrade
11
- https://bugzilla.redhat.com/1728617[1728617].
12
-
13
- * Add services for labels in affinity groups
14
- https://bugzilla.redhat.com/1680499[1680499].
5
+ == 4.4.0 / Apr 6 2020
6
+ Update to model 4.4.14.
15
7
 
16
- * It should be possible to specify exact v4.0 as NFS version
17
- https://bugzilla.redhat.com/1690026[1690026].
18
-
19
- * Add priority to AffinityGroup type
20
- https://bugzilla.redhat.com/1680498[1680498].
21
-
22
- * Add allContent to HostNic Services
23
- https://bugzilla.redhat.com/1718141[1718141].
8
+ New features:
24
9
 
25
- * Allow setting a disk ScsiGenericIO to disabled
26
- https://bugzilla.redhat.com/1714834[1714834].
10
+ * Rubocop patch version and cop namespace changes
27
11
 
28
- * Treat image transfers cancelled by user/system differently
29
- https://bugzilla.redhat.com/1533362[1533362].
12
+ * automation: add stdci v2 configuration
30
13
 
31
- * Add new parameters to HostsService.List and VmService.Migrate
32
- https://bugzilla.redhat.com/1651406[1651406].
14
+ * automation: prepare for el8 build, python3 support and openjdk-11
33
15
 
34
- * Add Hosted Engine disk types to content type
35
- https://bugzilla.redhat.com/1663626[1663626].
16
+ * automation: add fc30, el8 spec files
36
17
 
37
- * Add Hosted Engine disk types to content type
38
- https://bugzilla.redhat.com/1600788[1600788].
18
+ * packaging: change spec files according to fedora rubygem rpmbuild guidelines
39
19
 
40
20
  Deprecations:
41
21
 
42
- * Announce the depreciation of Neutron agent configuration
43
- https://bugzilla.redhat.com/1638675[1638675].
22
+ * packaging: drop fc28, fc29, el7
23
+
24
+ * automation: drop fc28, fc29, el7
44
25
 
45
26
  == 4.3.0 / Jan 16 2018
46
27
  Update to model 4.3.21.
@@ -16,7 +16,6 @@
16
16
 
17
17
  require 'json'
18
18
  require 'tempfile'
19
- require 'thread'
20
19
  require 'uri'
21
20
 
22
21
  module OvirtSDK4
@@ -155,18 +154,18 @@ module OvirtSDK4
155
154
 
156
155
  # Create the HTTP client:
157
156
  @client = HttpClient.new(
158
- insecure: @insecure,
159
- ca_file: @ca_store ? @ca_store.path : nil,
160
- debug: @debug,
161
- log: @log,
162
- timeout: @timeout,
157
+ insecure: @insecure,
158
+ ca_file: @ca_store ? @ca_store.path : nil,
159
+ debug: @debug,
160
+ log: @log,
161
+ timeout: @timeout,
163
162
  connect_timeout: @connect_timeout,
164
- compress: @compress,
165
- proxy_url: @proxy_url,
166
- proxy_username: @proxy_username,
167
- proxy_password: @proxy_password,
168
- connections: @connections,
169
- pipeline: @pipeline
163
+ compress: @compress,
164
+ proxy_url: @proxy_url,
165
+ proxy_username: @proxy_username,
166
+ proxy_password: @proxy_password,
167
+ connections: @connections,
168
+ pipeline: @pipeline
170
169
  )
171
170
  end
172
171
 
@@ -232,6 +231,7 @@ module OvirtSDK4
232
231
  true
233
232
  rescue StandardError
234
233
  raise if raise_exception
234
+
235
235
  false
236
236
  end
237
237
 
@@ -244,7 +244,9 @@ module OvirtSDK4
244
244
  # @return [String]
245
245
  #
246
246
  def authenticate
247
+ # rubocop:disable Naming/MemoizedInstanceVariableName
247
248
  @token ||= create_access_token
249
+ # rubocop:enable Naming/MemoizedInstanceVariableName
248
250
  end
249
251
 
250
252
  #
@@ -416,14 +418,14 @@ module OvirtSDK4
416
418
  #
417
419
  # @api private
418
420
  #
419
- JSON_CONTENT_TYPE_RE = %r{^\s*(application|text)/json\s*(;.*)?$}i
421
+ JSON_CONTENT_TYPE_RE = %r{^\s*(application|text)/json\s*(;.*)?$}i.freeze
420
422
 
421
423
  #
422
424
  # Regular expression used to check XML content type.
423
425
  #
424
426
  # @api private
425
427
  #
426
- XML_CONTENT_TYPE_RE = %r{^\s*(application|text)/xml\s*(;.*)?$}i
428
+ XML_CONTENT_TYPE_RE = %r{^\s*(application|text)/xml\s*(;.*)?$}i.freeze
427
429
 
428
430
  #
429
431
  # The typical URL path, used just to generate informative error messages.
@@ -444,6 +446,7 @@ module OvirtSDK4
444
446
  def check_content_type(expected_re, expected_name, response)
445
447
  content_type = response.headers['content-type']
446
448
  return if expected_re =~ content_type
449
+
447
450
  detail = "The response content type '#{content_type}' isn't #{expected_name}"
448
451
  url = URI(@url)
449
452
  if url.path != TYPICAL_PATH
@@ -510,9 +513,9 @@ module OvirtSDK4
510
513
  request.method = :POST
511
514
  request.url = url
512
515
  request.headers = {
513
- 'User-Agent' => "RubySDK/#{VERSION}",
516
+ 'User-Agent' => "RubySDK/#{VERSION}",
514
517
  'Content-Type' => 'application/x-www-form-urlencoded',
515
- 'Accept' => 'application/json'
518
+ 'Accept' => 'application/json'
516
519
  }
517
520
  request.body = URI.encode_www_form(parameters)
518
521
 
@@ -551,8 +554,8 @@ module OvirtSDK4
551
554
  entry_point = 'token'
552
555
  parameters.merge!(
553
556
  grant_type: 'password',
554
- username: @username,
555
- password: @password
557
+ username: @username,
558
+ password: @password
556
559
  )
557
560
  end
558
561
 
@@ -183,6 +183,7 @@ module OvirtSDK4
183
183
  def probe
184
184
  path = detect_path
185
185
  raise Error, 'API path not found' unless path
186
+
186
187
  detect_version(path).map { |version| ProbeResult.new(version: version) }
187
188
  end
188
189
 
@@ -243,16 +244,15 @@ module OvirtSDK4
243
244
  @client.send(request)
244
245
  response = @client.wait(request)
245
246
  raise response if response.is_a?(Exception)
247
+
246
248
  response
247
249
  end
248
250
 
249
251
  def detect_path
250
252
  PATH_CANDIDATES.each do |path|
251
- begin
252
- response = send(path: path)
253
- return path if response.code == 200
254
- raise AuthError, 'Unauthorized' if response.code == 401
255
- end
253
+ response = send(path: path)
254
+ return path if response.code == 200
255
+ raise AuthError, 'Unauthorized' if response.code == 401
256
256
  end
257
257
  nil
258
258
  end
@@ -51,11 +51,12 @@ module OvirtSDK4
51
51
  #
52
52
  def self.parse_boolean(text)
53
53
  return nil if text.nil?
54
+
54
55
  case text.downcase
55
56
  when 'false', '0'
56
- return false
57
+ false
57
58
  when 'true', '1'
58
- return true
59
+ true
59
60
  else
60
61
  raise Error, "The text '#{text}' isn't a valid boolean value."
61
62
  end
@@ -90,8 +91,9 @@ module OvirtSDK4
90
91
  #
91
92
  def self.parse_integer(text)
92
93
  return nil if text.nil?
94
+
93
95
  begin
94
- return Integer(text, 10)
96
+ Integer(text, 10)
95
97
  rescue ArgumentError
96
98
  raise Error, "The text '#{text}' isn't a valid integer value."
97
99
  end
@@ -125,8 +127,9 @@ module OvirtSDK4
125
127
  #
126
128
  def self.parse_decimal(text)
127
129
  return nil if text.nil?
130
+
128
131
  begin
129
- return Float(text)
132
+ Float(text)
130
133
  rescue ArgumentError
131
134
  raise Error, "The text '#{text}' isn't a valid decimal value."
132
135
  end
@@ -161,8 +164,9 @@ module OvirtSDK4
161
164
  #
162
165
  def self.parse_date(text)
163
166
  return nil if text.nil?
167
+
164
168
  begin
165
- return DateTime.xmlschema(text)
169
+ DateTime.xmlschema(text)
166
170
  rescue ArgumentError
167
171
  raise Error, "The text '#{text}' isn't a valid date."
168
172
  end
@@ -198,6 +202,7 @@ module OvirtSDK4
198
202
  #
199
203
  def self.parse_enum(enum_module, text)
200
204
  return nil unless text
205
+
201
206
  values = enum_module.constants.map { |const| enum_module.const_get(const) }
202
207
  values.detect { |value| value.casecmp(text).zero? }
203
208
  end
@@ -76,6 +76,8 @@ module OvirtSDK4
76
76
  object.import_as_template = value if not value.nil?
77
77
  value = reader.get_attribute('is_attached')
78
78
  object.is_attached = value if not value.nil?
79
+ value = reader.get_attribute('maintenance_after_restart')
80
+ object.maintenance_after_restart = value if not value.nil?
79
81
  value = reader.get_attribute('maintenance_enabled')
80
82
  object.maintenance_enabled = value if not value.nil?
81
83
  value = reader.get_attribute('migrate_vms_in_affinity_closure')
@@ -114,6 +116,8 @@ module OvirtSDK4
114
116
  object.upgrade_action = value if not value.nil?
115
117
  value = reader.get_attribute('use_cloud_init')
116
118
  object.use_cloud_init = value if not value.nil?
119
+ value = reader.get_attribute('use_ignition')
120
+ object.use_ignition = value if not value.nil?
117
121
  value = reader.get_attribute('use_initialization')
118
122
  object.use_initialization = value if not value.nil?
119
123
  value = reader.get_attribute('use_sysprep')
@@ -219,6 +223,8 @@ module OvirtSDK4
219
223
  object.lease = StorageDomainLeaseReader.read_one(reader)
220
224
  when 'logical_units'
221
225
  object.logical_units = LogicalUnitReader.read_many(reader)
226
+ when 'maintenance_after_restart'
227
+ object.maintenance_after_restart = Reader.read_boolean(reader)
222
228
  when 'maintenance_enabled'
223
229
  object.maintenance_enabled = Reader.read_boolean(reader)
224
230
  when 'migrate_vms_in_affinity_closure'
@@ -269,6 +275,8 @@ module OvirtSDK4
269
275
  object.seal = Reader.read_boolean(reader)
270
276
  when 'snapshot'
271
277
  object.snapshot = SnapshotReader.read_one(reader)
278
+ when 'source_host'
279
+ object.source_host = HostReader.read_one(reader)
272
280
  when 'ssh'
273
281
  object.ssh = SshReader.read_one(reader)
274
282
  when 'status'
@@ -295,6 +303,8 @@ module OvirtSDK4
295
303
  object.upgrade_action = Reader.read_enum(ClusterUpgradeAction, reader)
296
304
  when 'use_cloud_init'
297
305
  object.use_cloud_init = Reader.read_boolean(reader)
306
+ when 'use_ignition'
307
+ object.use_ignition = Reader.read_boolean(reader)
298
308
  when 'use_initialization'
299
309
  object.use_initialization = Reader.read_boolean(reader)
300
310
  when 'use_sysprep'
@@ -2120,6 +2130,8 @@ module OvirtSDK4
2120
2130
  object.href = reader.get_attribute('href')
2121
2131
  value = reader.get_attribute('ballooning_enabled')
2122
2132
  object.ballooning_enabled = value if not value.nil?
2133
+ value = reader.get_attribute('bios_type')
2134
+ object.bios_type = value if not value.nil?
2123
2135
  value = reader.get_attribute('comment')
2124
2136
  object.comment = value if not value.nil?
2125
2137
  value = reader.get_attribute('description')
@@ -2165,6 +2177,8 @@ module OvirtSDK4
2165
2177
  case reader.node_name
2166
2178
  when 'ballooning_enabled'
2167
2179
  object.ballooning_enabled = Reader.read_boolean(reader)
2180
+ when 'bios_type'
2181
+ object.bios_type = Reader.read_enum(BiosType, reader)
2168
2182
  when 'comment'
2169
2183
  object.comment = Reader.read_string(reader)
2170
2184
  when 'cpu'
@@ -4519,6 +4533,8 @@ module OvirtSDK4
4519
4533
  object.id = value if not value.nil?
4520
4534
  value = reader.get_attribute('index')
4521
4535
  object.index = value if not value.nil?
4536
+ value = reader.get_attribute('log_on_host')
4537
+ object.log_on_host = value if not value.nil?
4522
4538
  value = reader.get_attribute('name')
4523
4539
  object.name = value if not value.nil?
4524
4540
  value = reader.get_attribute('origin')
@@ -4554,6 +4570,8 @@ module OvirtSDK4
4554
4570
  object.id = Reader.read_string(reader)
4555
4571
  when 'index'
4556
4572
  object.index = Reader.read_integer(reader)
4573
+ when 'log_on_host'
4574
+ object.log_on_host = Reader.read_boolean(reader)
4557
4575
  when 'name'
4558
4576
  object.name = Reader.read_string(reader)
4559
4577
  when 'origin'
@@ -4614,6 +4632,94 @@ module OvirtSDK4
4614
4632
 
4615
4633
  end
4616
4634
 
4635
+ class EventSubscriptionReader < Reader
4636
+
4637
+ def self.read_one(reader)
4638
+ # Do nothing if there aren't more tags:
4639
+ return nil unless reader.forward
4640
+
4641
+ # Create the object:
4642
+ object = EventSubscription.new
4643
+
4644
+ # Process the attributes:
4645
+ object.href = reader.get_attribute('href')
4646
+ value = reader.get_attribute('address')
4647
+ object.address = value if not value.nil?
4648
+ value = reader.get_attribute('comment')
4649
+ object.comment = value if not value.nil?
4650
+ value = reader.get_attribute('description')
4651
+ object.description = value if not value.nil?
4652
+ value = reader.get_attribute('event')
4653
+ object.event = value if not value.nil?
4654
+ value = reader.get_attribute('id')
4655
+ object.id = value if not value.nil?
4656
+ value = reader.get_attribute('name')
4657
+ object.name = value if not value.nil?
4658
+ value = reader.get_attribute('notification_method')
4659
+ object.notification_method = value if not value.nil?
4660
+
4661
+ # Discard the start tag:
4662
+ empty = reader.empty_element?
4663
+ reader.read
4664
+ return object if empty
4665
+
4666
+ # Process the inner elements:
4667
+ while reader.forward do
4668
+ case reader.node_name
4669
+ when 'address'
4670
+ object.address = Reader.read_string(reader)
4671
+ when 'comment'
4672
+ object.comment = Reader.read_string(reader)
4673
+ when 'description'
4674
+ object.description = Reader.read_string(reader)
4675
+ when 'event'
4676
+ object.event = Reader.read_enum(NotifiableEvent, reader)
4677
+ when 'id'
4678
+ object.id = Reader.read_string(reader)
4679
+ when 'name'
4680
+ object.name = Reader.read_string(reader)
4681
+ when 'notification_method'
4682
+ object.notification_method = Reader.read_enum(NotificationMethod, reader)
4683
+ when 'user'
4684
+ object.user = UserReader.read_one(reader)
4685
+ else
4686
+ reader.next_element
4687
+ end
4688
+ end
4689
+
4690
+ # Discard the end tag:
4691
+ reader.read
4692
+
4693
+ return object
4694
+ end
4695
+
4696
+
4697
+ def self.read_many(reader)
4698
+ # Do nothing if there aren't more tags:
4699
+ list = List.new
4700
+ return list unless reader.forward
4701
+
4702
+ # Process the attributes:
4703
+ list.href = reader.get_attribute('href')
4704
+
4705
+ # Discard the start tag:
4706
+ empty = reader.empty_element?
4707
+ reader.read
4708
+ return list if empty
4709
+
4710
+ # Process the inner elements:
4711
+ while reader.forward do
4712
+ list << read_one(reader)
4713
+ end
4714
+
4715
+ # Discard the end tag:
4716
+ reader.read
4717
+
4718
+ return list
4719
+ end
4720
+
4721
+ end
4722
+
4617
4723
  class ExternalComputeResourceReader < Reader
4618
4724
 
4619
4725
  def self.read_one(reader)
@@ -7500,7 +7606,7 @@ module OvirtSDK4
7500
7606
  when 'cluster'
7501
7607
  object.cluster = ClusterReader.read_one(reader)
7502
7608
  when 'devices'
7503
- object.devices = DeviceReader.read_many(reader)
7609
+ object.devices = HostDeviceReader.read_many(reader)
7504
7610
  when 'external_host_provider'
7505
7611
  object.external_host_provider = ExternalHostProviderReader.read_one(reader)
7506
7612
  when 'external_network_provider_configurations'
@@ -7662,6 +7768,8 @@ module OvirtSDK4
7662
7768
  object.id = Reader.read_string(reader)
7663
7769
  when 'iommu_group'
7664
7770
  object.iommu_group = Reader.read_integer(reader)
7771
+ when 'm_dev_types'
7772
+ object.m_dev_types = MDevTypeReader.read_many(reader)
7665
7773
  when 'name'
7666
7774
  object.name = Reader.read_string(reader)
7667
7775
  when 'physical_function'
@@ -9974,6 +10082,76 @@ module OvirtSDK4
9974
10082
 
9975
10083
  end
9976
10084
 
10085
+ class MDevTypeReader < Reader
10086
+
10087
+ def self.read_one(reader)
10088
+ # Do nothing if there aren't more tags:
10089
+ return nil unless reader.forward
10090
+
10091
+ # Create the object:
10092
+ object = MDevType.new
10093
+
10094
+ # Process the attributes:
10095
+ object.href = reader.get_attribute('href')
10096
+ value = reader.get_attribute('available_instances')
10097
+ object.available_instances = value if not value.nil?
10098
+ value = reader.get_attribute('description')
10099
+ object.description = value if not value.nil?
10100
+ value = reader.get_attribute('name')
10101
+ object.name = value if not value.nil?
10102
+
10103
+ # Discard the start tag:
10104
+ empty = reader.empty_element?
10105
+ reader.read
10106
+ return object if empty
10107
+
10108
+ # Process the inner elements:
10109
+ while reader.forward do
10110
+ case reader.node_name
10111
+ when 'available_instances'
10112
+ object.available_instances = Reader.read_integer(reader)
10113
+ when 'description'
10114
+ object.description = Reader.read_string(reader)
10115
+ when 'name'
10116
+ object.name = Reader.read_string(reader)
10117
+ else
10118
+ reader.next_element
10119
+ end
10120
+ end
10121
+
10122
+ # Discard the end tag:
10123
+ reader.read
10124
+
10125
+ return object
10126
+ end
10127
+
10128
+
10129
+ def self.read_many(reader)
10130
+ # Do nothing if there aren't more tags:
10131
+ list = List.new
10132
+ return list unless reader.forward
10133
+
10134
+ # Process the attributes:
10135
+ list.href = reader.get_attribute('href')
10136
+
10137
+ # Discard the start tag:
10138
+ empty = reader.empty_element?
10139
+ reader.read
10140
+ return list if empty
10141
+
10142
+ # Process the inner elements:
10143
+ while reader.forward do
10144
+ list << read_one(reader)
10145
+ end
10146
+
10147
+ # Discard the end tag:
10148
+ reader.read
10149
+
10150
+ return list
10151
+ end
10152
+
10153
+ end
10154
+
9977
10155
  class MacReader < Reader
9978
10156
 
9979
10157
  def self.read_one(reader)
@@ -10399,6 +10577,8 @@ module OvirtSDK4
10399
10577
  object.auto_converge = value if not value.nil?
10400
10578
  value = reader.get_attribute('compressed')
10401
10579
  object.compressed = value if not value.nil?
10580
+ value = reader.get_attribute('encrypted')
10581
+ object.encrypted = value if not value.nil?
10402
10582
 
10403
10583
  # Discard the start tag:
10404
10584
  empty = reader.empty_element?
@@ -10414,6 +10594,8 @@ module OvirtSDK4
10414
10594
  object.bandwidth = MigrationBandwidthReader.read_one(reader)
10415
10595
  when 'compressed'
10416
10596
  object.compressed = Reader.read_enum(InheritableBoolean, reader)
10597
+ when 'encrypted'
10598
+ object.encrypted = Reader.read_enum(InheritableBoolean, reader)
10417
10599
  when 'policy'
10418
10600
  object.policy = MigrationPolicyReader.read_one(reader)
10419
10601
  else
@@ -10559,6 +10741,8 @@ module OvirtSDK4
10559
10741
  object.status = value if not value.nil?
10560
10742
  value = reader.get_attribute('stp')
10561
10743
  object.stp = value if not value.nil?
10744
+ value = reader.get_attribute('vdsm_name')
10745
+ object.vdsm_name = value if not value.nil?
10562
10746
 
10563
10747
  # Discard the start tag:
10564
10748
  empty = reader.empty_element?
@@ -10594,6 +10778,8 @@ module OvirtSDK4
10594
10778
  object.stp = Reader.read_boolean(reader)
10595
10779
  when 'usages'
10596
10780
  object.usages = Reader.read_enums(NetworkUsage, reader)
10781
+ when 'vdsm_name'
10782
+ object.vdsm_name = Reader.read_string(reader)
10597
10783
  when 'vlan'
10598
10784
  object.vlan = VlanReader.read_one(reader)
10599
10785
  when 'cluster'
@@ -17914,6 +18100,8 @@ module OvirtSDK4
17914
18100
  object.principal = Reader.read_string(reader)
17915
18101
  when 'user_name'
17916
18102
  object.user_name = Reader.read_string(reader)
18103
+ when 'user_options'
18104
+ object.user_options = PropertyReader.read_many(reader)
17917
18105
  when 'domain'
17918
18106
  object.domain = DomainReader.read_one(reader)
17919
18107
  when 'groups'
@@ -19943,6 +20131,8 @@ module OvirtSDK4
19943
20131
  Reader.register('error_handlings', ErrorHandlingReader.method(:read_many))
19944
20132
  Reader.register('event', EventReader.method(:read_one))
19945
20133
  Reader.register('events', EventReader.method(:read_many))
20134
+ Reader.register('event_subscription', EventSubscriptionReader.method(:read_one))
20135
+ Reader.register('event_subscriptions', EventSubscriptionReader.method(:read_many))
19946
20136
  Reader.register('external_compute_resource', ExternalComputeResourceReader.method(:read_one))
19947
20137
  Reader.register('external_compute_resources', ExternalComputeResourceReader.method(:read_many))
19948
20138
  Reader.register('external_discovered_host', ExternalDiscoveredHostReader.method(:read_one))
@@ -20051,6 +20241,8 @@ module OvirtSDK4
20051
20241
  Reader.register('link_layer_discovery_protocol_elements', LinkLayerDiscoveryProtocolElementReader.method(:read_many))
20052
20242
  Reader.register('logical_unit', LogicalUnitReader.method(:read_one))
20053
20243
  Reader.register('logical_units', LogicalUnitReader.method(:read_many))
20244
+ Reader.register('m_dev_type', MDevTypeReader.method(:read_one))
20245
+ Reader.register('m_dev_types', MDevTypeReader.method(:read_many))
20054
20246
  Reader.register('mac', MacReader.method(:read_one))
20055
20247
  Reader.register('macs', MacReader.method(:read_many))
20056
20248
  Reader.register('mac_pool', MacPoolReader.method(:read_one))