ovirt-engine-sdk 4.3.1 → 4.4.0

Sign up to get free protection for your applications and to get access to all the features.
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))