ovirt-engine-sdk 4.0.0 → 4.0.1

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
2
  SHA1:
3
- metadata.gz: b62a1ccf0ed2630739142b9198033ce8cdf58ccb
4
- data.tar.gz: bbc9e27afe1ac05bbc8adc6a4fc0f1581d83473f
3
+ metadata.gz: cc70e7bc96b552de89ef13a91ae7ceb1f4a3bbb0
4
+ data.tar.gz: 5ad0eb7711a5f490acf4774169bb480d65d8f0cc
5
5
  SHA512:
6
- metadata.gz: 7c8cdfe1a18696f3aaa719efe70d1aa0284c96ca46e25676062d5895d93bfd4172dfe9ec777439f0417f4d11a6756182db7a696f2f51916e089916dd9daed2db
7
- data.tar.gz: cb466df16439caf26f11130f701a93b9c9fa0ef0106450c3d531c61b9a8d15db78e64bfadf09a07abe03df84d630cc6c6bde4619d1cea00815145a239740d874
6
+ metadata.gz: f2f28c98d659ae7a54fc0b7fdc98042d22005c3d01825b91d1e9df8018e480adbb79f69b751289cecc2a8cd2ff6ee3037cf3c7779d3781102e19957d3360c3e4
7
+ data.tar.gz: 919165505e1e6b2fe06c80f2eda1d0556c9a628c53abf42309be2433e44b695de12b00ce14fb73de41f7c137d533938ca7d7fc4efbb9a1dfa4b991b52b56cefb
data/.yardopts ADDED
@@ -0,0 +1,6 @@
1
+ --markup asciidoc
2
+ --hide-api private
3
+ --exclude lib/ovirtsdk4/reader.rb
4
+ --exclude lib/ovirtsdk4/readers.rb
5
+ --exclude lib/ovirtsdk4/writer.rb
6
+ --exclude lib/ovirtsdk4/writers.rb
data/CHANGES.adoc CHANGED
@@ -2,6 +2,39 @@
2
2
 
3
3
  This document describes the relevant changes between releases of the SDK.
4
4
 
5
+ == 4.0.1 / Sep 6 2016
6
+
7
+ Update to model 4.0.33.
8
+
9
+ New features:
10
+
11
+ * Add the `custom_scheduling_policy_properties` attribute to the
12
+ `Cluster` type.
13
+
14
+ * Add services and types to support transfer of images.
15
+
16
+ * Add generic reader.
17
+
18
+ Bug fixes:
19
+
20
+ * Remove the `add` and `remove` operations of virtual machine
21
+ CDROMs.
22
+
23
+ * Fix the type of the `usages` attribute of the `Network` type, it
24
+ should be a list of values of the `NetworkUsage` enum, not a list
25
+ of strings.
26
+
27
+ * Fix reading of lists of elements https://bugzilla.redhat.com/1373436[#1373436].
28
+
29
+ * Accept `action` and `fault` from actions.
30
+
31
+ * Fix reading of list of primitive and enum types.
32
+
33
+ == 4.0.0 / Aug 29 2016
34
+
35
+ This version didn't include any change other than removing the `alpha`
36
+ suffix from the version number.
37
+
5
38
  == 4.0.0.alpha21 / Aug 22 2016
6
39
 
7
40
  Bug fixes:
data/README.adoc CHANGED
@@ -74,4 +74,4 @@ You will find more usage examples in the `examples` directory.
74
74
  == Reference
75
75
 
76
76
  The reference documentation is available
77
- https://jhernand.fedorapeople.org/ovirt-engine-sdk-ruby[here].
77
+ http://www.rubydoc.info/gems/ovirt-engine-sdk[here].
@@ -209,11 +209,16 @@ static VALUE ov_xml_reader_node_name(VALUE self) {
209
209
  }
210
210
 
211
211
  static VALUE ov_xml_reader_empty_element(VALUE self) {
212
+ int c_empty = 0;
212
213
  ov_xml_reader_object* object = NULL;
213
214
 
214
215
  Data_Get_Struct(self, ov_xml_reader_object, object);
215
216
  ov_xml_reader_check_closed(object);
216
- return xmlTextReaderIsEmptyElement(object->reader)? Qtrue: Qfalse;
217
+ c_empty = xmlTextReaderIsEmptyElement(object->reader);
218
+ if (c_empty == -1) {
219
+ rb_raise(ov_error_class, "Can't check if current element is empty");
220
+ }
221
+ return c_empty? Qtrue: Qfalse;
217
222
  }
218
223
 
219
224
  static VALUE ov_xml_reader_get_attribute(VALUE self, VALUE name) {
@@ -296,13 +301,55 @@ static VALUE ov_xml_reader_read_element(VALUE self) {
296
301
  static VALUE ov_xml_reader_read_elements(VALUE self) {
297
302
  VALUE element;
298
303
  VALUE list;
304
+ int c_empty = 0;
299
305
  int c_type = 0;
300
306
  int rc = 0;
301
307
  ov_xml_reader_object* object = NULL;
302
308
 
309
+ /* Get the pointer to the object and check that it isn't closed: */
303
310
  Data_Get_Struct(self, ov_xml_reader_object, object);
304
311
  ov_xml_reader_check_closed(object);
312
+
313
+ /* This method assumes that the reader is positioned at the element that contains the values to read. For example
314
+ if the XML document is the following:
315
+
316
+ <list>
317
+ <value>first</value>
318
+ <value>second</value>
319
+ </list>
320
+
321
+ The reader should be positioned at the <list> element. The first thing we need to do is to check: */
322
+ c_type = xmlTextReaderNodeType(object->reader);
323
+ if (c_type == -1) {
324
+ rb_raise(ov_error_class, "Can't get current node type");
325
+ }
326
+ if (c_type != XML_READER_TYPE_ELEMENT) {
327
+ rb_raise(ov_error_class, "Current node isn't the start of an element");
328
+ }
329
+
330
+ /* If we are indeed positioned at the first element, then we need to check if it is empty, <list/>, as we will
331
+ need this lter, after discarding the element: */
332
+ c_empty = xmlTextReaderIsEmptyElement(object->reader);
333
+ if (c_empty == -1) {
334
+ rb_raise(ov_error_class, "Can't check if current element is empty");
335
+ }
336
+
337
+ /* Now we need to discard the current element, as we are interested only in the nested <value>...</value>
338
+ elements: */
339
+ rc = xmlTextReaderRead(object->reader);
340
+ if (rc == -1) {
341
+ rb_raise(ov_error_class, "Can't move to next node");
342
+ }
343
+
344
+ /* Create the list that will contain the result: */
305
345
  list = rb_ary_new();
346
+
347
+ /* At this point, if the start element was empty, we don't need to do anything else: */
348
+ if (c_empty) {
349
+ return list;
350
+ }
351
+
352
+ /* Process the nested elements: */
306
353
  for (;;) {
307
354
  c_type = xmlTextReaderNodeType(object->reader);
308
355
  if (c_type == -1) {
@@ -318,10 +365,20 @@ static VALUE ov_xml_reader_read_elements(VALUE self) {
318
365
  else {
319
366
  rc = xmlTextReaderNext(object->reader);
320
367
  if (rc == -1) {
321
- rb_raise(ov_error_class, "Can't move to the next element");
368
+ rb_raise(ov_error_class, "Can't move to the next node");
322
369
  }
323
370
  }
324
371
  }
372
+
373
+ /* Once all the nested <value>...</value> elements are processed the reader will be positioned at the closing
374
+ </list> element, or at the end of the document. If it is the closing element then we need to discard it. */
375
+ if (c_type == XML_READER_TYPE_END_ELEMENT) {
376
+ rc = xmlTextReaderRead(object->reader);
377
+ if (rc == -1) {
378
+ rb_raise(ov_error_class, "Can't move to next node");
379
+ }
380
+ }
381
+
325
382
  return list;
326
383
  }
327
384
 
@@ -191,6 +191,62 @@ module OvirtSDK4
191
191
  return reader.read_elements.map { |text| Reader.parse_date(text) }
192
192
  end
193
193
 
194
+ #
195
+ # This hash stores for each known tag a reference to the method that read the object corresponding for that tag. For
196
+ # example, for the `vm` tag it will contain a reference to the `VmReader.read_one` method, and for the `vms` tag
197
+ # it will contain a reference to the `VmReader.read_many` method.
198
+ #
199
+ @@readers = {}
200
+
201
+ #
202
+ # Registers a read method.
203
+ #
204
+ # @param tag [String] The tag name.
205
+ # @param reader [Method] The reference to the method that reads the object corresponding to the `tag`.
206
+ #
207
+ def self.register(tag, reader)
208
+ @@readers[tag] = reader
209
+ end
210
+
211
+ #
212
+ # Reads one object, determining the reader method to use based on the tag name of the first element. For example,
213
+ # if the first tag name is `vm` then it will create a `Vm` object, if it the tag is `vms` it will create an array
214
+ # of `Vm` objects, so on.
215
+ #
216
+ # @param source [String, XmlReader] The string, IO or XML reader where the input will be taken from.
217
+ #
218
+ def self.read(source)
219
+ # If the source is a string or IO object then create a XML reader from it:
220
+ cursor = nil
221
+ if source.is_a?(String) || source.is_a?(IO)
222
+ cursor = XmlReader.new(source)
223
+ elsif source.is_a?(XmlReader)
224
+ cursor = source
225
+ else
226
+ raise ArgumentError.new("Expected a 'String' or 'XmlReader', but got '#{source.class}'")
227
+ end
228
+
229
+ # Do the actual read, and make sure to always close the XML reader if we created it:
230
+ begin
231
+ # Do nothing if there aren't more tags:
232
+ return nil unless cursor.forward
233
+
234
+ # Select the specific reader according to the tag:
235
+ tag = cursor.node_name
236
+ reader = @@readers[tag]
237
+ if reader.nil?
238
+ raise Error.new("Can't find a reader for tag '#{tag}'")
239
+ end
240
+
241
+ # Read the object using the specific reader:
242
+ return reader.call(cursor)
243
+ ensure
244
+ if !cursor.nil? && !cursor.equal?(source)
245
+ cursor.close
246
+ end
247
+ end
248
+ end
249
+
194
250
  end
195
251
 
196
252
  end
@@ -162,7 +162,7 @@ module OvirtSDK4
162
162
  when 'iscsi'
163
163
  object.iscsi = IscsiDetailsReader.read_one(reader)
164
164
  when 'iscsi_targets'
165
- reader.next_element
165
+ object.iscsi_targets = Reader.read_strings(reader)
166
166
  when 'job'
167
167
  object.job = JobReader.read_one(reader)
168
168
  when 'logical_units'
@@ -1384,7 +1384,7 @@ module OvirtSDK4
1384
1384
  while reader.forward do
1385
1385
  case reader.node_name
1386
1386
  when 'devices'
1387
- reader.next_element
1387
+ object.devices = Reader.read_strings(reader)
1388
1388
  else
1389
1389
  reader.next_element
1390
1390
  end
@@ -1866,6 +1866,8 @@ module OvirtSDK4
1866
1866
  object.comment = Reader.read_string(reader)
1867
1867
  when 'cpu'
1868
1868
  object.cpu = CpuReader.read_one(reader)
1869
+ when 'custom_scheduling_policy_properties'
1870
+ object.custom_scheduling_policy_properties = PropertyReader.read_many(reader)
1869
1871
  when 'description'
1870
1872
  object.description = Reader.read_string(reader)
1871
1873
  when 'display'
@@ -1893,9 +1895,7 @@ module OvirtSDK4
1893
1895
  when 'optional_reason'
1894
1896
  object.optional_reason = Reader.read_boolean(reader)
1895
1897
  when 'required_rng_sources'
1896
- reader.next_element
1897
- when 'scheduling_policy'
1898
- object.scheduling_policy = SchedulingPolicyReader.read_one(reader)
1898
+ object.required_rng_sources = Reader.read_strings(reader)
1899
1899
  when 'serial_number'
1900
1900
  object.serial_number = SerialNumberReader.read_one(reader)
1901
1901
  when 'supported_versions'
@@ -1932,6 +1932,8 @@ module OvirtSDK4
1932
1932
  object.networks = NetworkReader.read_many(reader)
1933
1933
  when 'permissions'
1934
1934
  object.permissions = PermissionReader.read_many(reader)
1935
+ when 'scheduling_policy'
1936
+ object.scheduling_policy = SchedulingPolicyReader.read_one(reader)
1935
1937
  when 'link'
1936
1938
  read_link(reader, object)
1937
1939
  else
@@ -6006,7 +6008,7 @@ module OvirtSDK4
6006
6008
  when 'stripe_count'
6007
6009
  object.stripe_count = Reader.read_integer(reader)
6008
6010
  when 'transport_types'
6009
- reader.next_element
6011
+ object.transport_types = Reader.read_strings(reader)
6010
6012
  when 'volume_type'
6011
6013
  object.volume_type = Reader.read_string(reader)
6012
6014
  when 'bricks'
@@ -6542,7 +6544,7 @@ module OvirtSDK4
6542
6544
  when 'serial_number'
6543
6545
  object.serial_number = Reader.read_string(reader)
6544
6546
  when 'supported_rng_sources'
6545
- reader.next_element
6547
+ object.supported_rng_sources = Reader.read_strings(reader)
6546
6548
  when 'uuid'
6547
6549
  object.uuid = Reader.read_string(reader)
6548
6550
  when 'version'
@@ -7804,6 +7806,96 @@ module OvirtSDK4
7804
7806
 
7805
7807
  end
7806
7808
 
7809
+ class ImageTransferReader < Reader # :nodoc:
7810
+
7811
+ def self.read_one(reader)
7812
+ # Do nothing if there aren't more tags:
7813
+ return nil unless reader.forward
7814
+
7815
+ # Create the object:
7816
+ object = ImageTransfer.new
7817
+
7818
+ # Process the attributes:
7819
+ object.href = reader.get_attribute('href')
7820
+ value = reader.get_attribute('comment')
7821
+ object.comment = value if not value.nil?
7822
+ value = reader.get_attribute('description')
7823
+ object.description = value if not value.nil?
7824
+ value = reader.get_attribute('id')
7825
+ object.id = value if not value.nil?
7826
+ value = reader.get_attribute('name')
7827
+ object.name = value if not value.nil?
7828
+ value = reader.get_attribute('phase')
7829
+ object.phase = value if not value.nil?
7830
+ value = reader.get_attribute('proxy_url')
7831
+ object.proxy_url = value if not value.nil?
7832
+ value = reader.get_attribute('signed_ticket')
7833
+ object.signed_ticket = value if not value.nil?
7834
+
7835
+ # Discard the start tag:
7836
+ empty = reader.empty_element?
7837
+ reader.read
7838
+ return object if empty
7839
+
7840
+ # Process the inner elements:
7841
+ while reader.forward do
7842
+ case reader.node_name
7843
+ when 'comment'
7844
+ object.comment = Reader.read_string(reader)
7845
+ when 'description'
7846
+ object.description = Reader.read_string(reader)
7847
+ when 'id'
7848
+ object.id = Reader.read_string(reader)
7849
+ when 'name'
7850
+ object.name = Reader.read_string(reader)
7851
+ when 'phase'
7852
+ object.phase = Reader.read_string(reader)
7853
+ when 'proxy_url'
7854
+ object.proxy_url = Reader.read_string(reader)
7855
+ when 'signed_ticket'
7856
+ object.signed_ticket = Reader.read_string(reader)
7857
+ when 'host'
7858
+ object.host = HostReader.read_one(reader)
7859
+ when 'image'
7860
+ object.image = ImageReader.read_one(reader)
7861
+ else
7862
+ reader.next_element
7863
+ end
7864
+ end
7865
+
7866
+ # Discard the end tag:
7867
+ reader.read
7868
+
7869
+ return object
7870
+ end
7871
+
7872
+
7873
+ def self.read_many(reader)
7874
+ # Do nothing if there aren't more tags:
7875
+ list = List.new
7876
+ return list unless reader.forward
7877
+
7878
+ # Process the attributes:
7879
+ list.href = reader.get_attribute('href')
7880
+
7881
+ # Discard the start tag:
7882
+ empty = reader.empty_element?
7883
+ reader.read
7884
+ return list if empty
7885
+
7886
+ # Process the inner elements:
7887
+ while reader.forward do
7888
+ list << read_one(reader)
7889
+ end
7890
+
7891
+ # Discard the end tag:
7892
+ reader.read
7893
+
7894
+ return list
7895
+ end
7896
+
7897
+ end
7898
+
7807
7899
  class InitializationReader < Reader # :nodoc:
7808
7900
 
7809
7901
  def self.read_one(reader)
@@ -9684,7 +9776,7 @@ module OvirtSDK4
9684
9776
  when 'stp'
9685
9777
  object.stp = Reader.read_boolean(reader)
9686
9778
  when 'usages'
9687
- reader.next_element
9779
+ object.usages = Reader.read_strings(reader)
9688
9780
  when 'vlan'
9689
9781
  object.vlan = VlanReader.read_one(reader)
9690
9782
  when 'cluster'
@@ -11095,7 +11187,7 @@ module OvirtSDK4
11095
11187
  when 'description'
11096
11188
  object.description = Reader.read_string(reader)
11097
11189
  when 'dns_servers'
11098
- reader.next_element
11190
+ object.dns_servers = Reader.read_strings(reader)
11099
11191
  when 'gateway'
11100
11192
  object.gateway = Reader.read_string(reader)
11101
11193
  when 'id'
@@ -17938,5 +18030,389 @@ module OvirtSDK4
17938
18030
 
17939
18031
  end
17940
18032
 
18033
+ Reader.register('action', ActionReader.method(:read_one))
18034
+ Reader.register('actions', ActionReader.method(:read_many))
18035
+ Reader.register('affinity_group', AffinityGroupReader.method(:read_one))
18036
+ Reader.register('affinity_groups', AffinityGroupReader.method(:read_many))
18037
+ Reader.register('affinity_label', AffinityLabelReader.method(:read_one))
18038
+ Reader.register('affinity_labels', AffinityLabelReader.method(:read_many))
18039
+ Reader.register('agent', AgentReader.method(:read_one))
18040
+ Reader.register('agents', AgentReader.method(:read_many))
18041
+ Reader.register('agent_configuration', AgentConfigurationReader.method(:read_one))
18042
+ Reader.register('agent_configurations', AgentConfigurationReader.method(:read_many))
18043
+ Reader.register('api', ApiReader.method(:read_one))
18044
+ Reader.register('apis', ApiReader.method(:read_many))
18045
+ Reader.register('api_summary', ApiSummaryReader.method(:read_one))
18046
+ Reader.register('api_summaries', ApiSummaryReader.method(:read_many))
18047
+ Reader.register('api_summary_item', ApiSummaryItemReader.method(:read_one))
18048
+ Reader.register('api_summary_items', ApiSummaryItemReader.method(:read_many))
18049
+ Reader.register('application', ApplicationReader.method(:read_one))
18050
+ Reader.register('applications', ApplicationReader.method(:read_many))
18051
+ Reader.register('authorized_key', AuthorizedKeyReader.method(:read_one))
18052
+ Reader.register('authorized_keys', AuthorizedKeyReader.method(:read_many))
18053
+ Reader.register('balance', BalanceReader.method(:read_one))
18054
+ Reader.register('balances', BalanceReader.method(:read_many))
18055
+ Reader.register('bios', BiosReader.method(:read_one))
18056
+ Reader.register('bioss', BiosReader.method(:read_many))
18057
+ Reader.register('block_statistic', BlockStatisticReader.method(:read_one))
18058
+ Reader.register('block_statistics', BlockStatisticReader.method(:read_many))
18059
+ Reader.register('bonding', BondingReader.method(:read_one))
18060
+ Reader.register('bondings', BondingReader.method(:read_many))
18061
+ Reader.register('bookmark', BookmarkReader.method(:read_one))
18062
+ Reader.register('bookmarks', BookmarkReader.method(:read_many))
18063
+ Reader.register('boot', BootReader.method(:read_one))
18064
+ Reader.register('boots', BootReader.method(:read_many))
18065
+ Reader.register('boot_menu', BootMenuReader.method(:read_one))
18066
+ Reader.register('boot_menus', BootMenuReader.method(:read_many))
18067
+ Reader.register('brick_profile_detail', BrickProfileDetailReader.method(:read_one))
18068
+ Reader.register('brick_profile_details', BrickProfileDetailReader.method(:read_many))
18069
+ Reader.register('cdrom', CdromReader.method(:read_one))
18070
+ Reader.register('cdroms', CdromReader.method(:read_many))
18071
+ Reader.register('certificate', CertificateReader.method(:read_one))
18072
+ Reader.register('certificates', CertificateReader.method(:read_many))
18073
+ Reader.register('cloud_init', CloudInitReader.method(:read_one))
18074
+ Reader.register('cloud_inits', CloudInitReader.method(:read_many))
18075
+ Reader.register('cluster', ClusterReader.method(:read_one))
18076
+ Reader.register('clusters', ClusterReader.method(:read_many))
18077
+ Reader.register('cluster_level', ClusterLevelReader.method(:read_one))
18078
+ Reader.register('cluster_levels', ClusterLevelReader.method(:read_many))
18079
+ Reader.register('configuration', ConfigurationReader.method(:read_one))
18080
+ Reader.register('configurations', ConfigurationReader.method(:read_many))
18081
+ Reader.register('console', ConsoleReader.method(:read_one))
18082
+ Reader.register('consoles', ConsoleReader.method(:read_many))
18083
+ Reader.register('core', CoreReader.method(:read_one))
18084
+ Reader.register('cores', CoreReader.method(:read_many))
18085
+ Reader.register('cpu', CpuReader.method(:read_one))
18086
+ Reader.register('cpus', CpuReader.method(:read_many))
18087
+ Reader.register('cpu_profile', CpuProfileReader.method(:read_one))
18088
+ Reader.register('cpu_profiles', CpuProfileReader.method(:read_many))
18089
+ Reader.register('cpu_topology', CpuTopologyReader.method(:read_one))
18090
+ Reader.register('cpu_topologies', CpuTopologyReader.method(:read_many))
18091
+ Reader.register('cpu_tune', CpuTuneReader.method(:read_one))
18092
+ Reader.register('cpu_tunes', CpuTuneReader.method(:read_many))
18093
+ Reader.register('cpu_type', CpuTypeReader.method(:read_one))
18094
+ Reader.register('cpu_types', CpuTypeReader.method(:read_many))
18095
+ Reader.register('custom_property', CustomPropertyReader.method(:read_one))
18096
+ Reader.register('custom_properties', CustomPropertyReader.method(:read_many))
18097
+ Reader.register('data_center', DataCenterReader.method(:read_one))
18098
+ Reader.register('data_centers', DataCenterReader.method(:read_many))
18099
+ Reader.register('device', DeviceReader.method(:read_one))
18100
+ Reader.register('devices', DeviceReader.method(:read_many))
18101
+ Reader.register('disk', DiskReader.method(:read_one))
18102
+ Reader.register('disks', DiskReader.method(:read_many))
18103
+ Reader.register('disk_attachment', DiskAttachmentReader.method(:read_one))
18104
+ Reader.register('disk_attachments', DiskAttachmentReader.method(:read_many))
18105
+ Reader.register('disk_profile', DiskProfileReader.method(:read_one))
18106
+ Reader.register('disk_profiles', DiskProfileReader.method(:read_many))
18107
+ Reader.register('disk_snapshot', DiskSnapshotReader.method(:read_one))
18108
+ Reader.register('disk_snapshots', DiskSnapshotReader.method(:read_many))
18109
+ Reader.register('display', DisplayReader.method(:read_one))
18110
+ Reader.register('displays', DisplayReader.method(:read_many))
18111
+ Reader.register('dns', DnsReader.method(:read_one))
18112
+ Reader.register('dnss', DnsReader.method(:read_many))
18113
+ Reader.register('domain', DomainReader.method(:read_one))
18114
+ Reader.register('domains', DomainReader.method(:read_many))
18115
+ Reader.register('entity_profile_detail', EntityProfileDetailReader.method(:read_one))
18116
+ Reader.register('entity_profile_details', EntityProfileDetailReader.method(:read_many))
18117
+ Reader.register('error_handling', ErrorHandlingReader.method(:read_one))
18118
+ Reader.register('error_handlings', ErrorHandlingReader.method(:read_many))
18119
+ Reader.register('event', EventReader.method(:read_one))
18120
+ Reader.register('events', EventReader.method(:read_many))
18121
+ Reader.register('external_compute_resource', ExternalComputeResourceReader.method(:read_one))
18122
+ Reader.register('external_compute_resources', ExternalComputeResourceReader.method(:read_many))
18123
+ Reader.register('external_discovered_host', ExternalDiscoveredHostReader.method(:read_one))
18124
+ Reader.register('external_discovered_hosts', ExternalDiscoveredHostReader.method(:read_many))
18125
+ Reader.register('external_host', ExternalHostReader.method(:read_one))
18126
+ Reader.register('external_hosts', ExternalHostReader.method(:read_many))
18127
+ Reader.register('external_host_group', ExternalHostGroupReader.method(:read_one))
18128
+ Reader.register('external_host_groups', ExternalHostGroupReader.method(:read_many))
18129
+ Reader.register('external_host_provider', ExternalHostProviderReader.method(:read_one))
18130
+ Reader.register('external_host_providers', ExternalHostProviderReader.method(:read_many))
18131
+ Reader.register('external_provider', ExternalProviderReader.method(:read_one))
18132
+ Reader.register('external_providers', ExternalProviderReader.method(:read_many))
18133
+ Reader.register('external_vm_import', ExternalVmImportReader.method(:read_one))
18134
+ Reader.register('external_vm_imports', ExternalVmImportReader.method(:read_many))
18135
+ Reader.register('fault', FaultReader.method(:read_one))
18136
+ Reader.register('faults', FaultReader.method(:read_many))
18137
+ Reader.register('fencing_policy', FencingPolicyReader.method(:read_one))
18138
+ Reader.register('fencing_policies', FencingPolicyReader.method(:read_many))
18139
+ Reader.register('file', FileReader.method(:read_one))
18140
+ Reader.register('files', FileReader.method(:read_many))
18141
+ Reader.register('filter', FilterReader.method(:read_one))
18142
+ Reader.register('filters', FilterReader.method(:read_many))
18143
+ Reader.register('floppy', FloppyReader.method(:read_one))
18144
+ Reader.register('floppies', FloppyReader.method(:read_many))
18145
+ Reader.register('fop_statistic', FopStatisticReader.method(:read_one))
18146
+ Reader.register('fop_statistics', FopStatisticReader.method(:read_many))
18147
+ Reader.register('brick', GlusterBrickReader.method(:read_one))
18148
+ Reader.register('bricks', GlusterBrickReader.method(:read_many))
18149
+ Reader.register('gluster_brick_advanced_details', GlusterBrickAdvancedDetailsReader.method(:read_one))
18150
+ Reader.register('gluster_brick_advanced_detailss', GlusterBrickAdvancedDetailsReader.method(:read_many))
18151
+ Reader.register('brick_memoryinfo', GlusterBrickMemoryInfoReader.method(:read_one))
18152
+ Reader.register('gluster_brick_memory_infos', GlusterBrickMemoryInfoReader.method(:read_many))
18153
+ Reader.register('gluster_client', GlusterClientReader.method(:read_one))
18154
+ Reader.register('gluster_clients', GlusterClientReader.method(:read_many))
18155
+ Reader.register('gluster_hook', GlusterHookReader.method(:read_one))
18156
+ Reader.register('gluster_hooks', GlusterHookReader.method(:read_many))
18157
+ Reader.register('memory_pool', GlusterMemoryPoolReader.method(:read_one))
18158
+ Reader.register('memory_pools', GlusterMemoryPoolReader.method(:read_many))
18159
+ Reader.register('server_hook', GlusterServerHookReader.method(:read_one))
18160
+ Reader.register('server_hooks', GlusterServerHookReader.method(:read_many))
18161
+ Reader.register('gluster_volume', GlusterVolumeReader.method(:read_one))
18162
+ Reader.register('gluster_volumes', GlusterVolumeReader.method(:read_many))
18163
+ Reader.register('gluster_volume_profile_details', GlusterVolumeProfileDetailsReader.method(:read_one))
18164
+ Reader.register('gluster_volume_profile_detailss', GlusterVolumeProfileDetailsReader.method(:read_many))
18165
+ Reader.register('grace_period', GracePeriodReader.method(:read_one))
18166
+ Reader.register('grace_periods', GracePeriodReader.method(:read_many))
18167
+ Reader.register('graphics_console', GraphicsConsoleReader.method(:read_one))
18168
+ Reader.register('graphics_consoles', GraphicsConsoleReader.method(:read_many))
18169
+ Reader.register('group', GroupReader.method(:read_one))
18170
+ Reader.register('groups', GroupReader.method(:read_many))
18171
+ Reader.register('guest_operating_system', GuestOperatingSystemReader.method(:read_one))
18172
+ Reader.register('guest_operating_systems', GuestOperatingSystemReader.method(:read_many))
18173
+ Reader.register('hardware_information', HardwareInformationReader.method(:read_one))
18174
+ Reader.register('hardware_informations', HardwareInformationReader.method(:read_many))
18175
+ Reader.register('high_availability', HighAvailabilityReader.method(:read_one))
18176
+ Reader.register('high_availabilities', HighAvailabilityReader.method(:read_many))
18177
+ Reader.register('hook', HookReader.method(:read_one))
18178
+ Reader.register('hooks', HookReader.method(:read_many))
18179
+ Reader.register('host', HostReader.method(:read_one))
18180
+ Reader.register('hosts', HostReader.method(:read_many))
18181
+ Reader.register('host_device', HostDeviceReader.method(:read_one))
18182
+ Reader.register('host_devices', HostDeviceReader.method(:read_many))
18183
+ Reader.register('host_device_passthrough', HostDevicePassthroughReader.method(:read_one))
18184
+ Reader.register('host_device_passthroughs', HostDevicePassthroughReader.method(:read_many))
18185
+ Reader.register('host_nic', HostNicReader.method(:read_one))
18186
+ Reader.register('host_nics', HostNicReader.method(:read_many))
18187
+ Reader.register('host_nic_virtual_functions_configuration', HostNicVirtualFunctionsConfigurationReader.method(:read_one))
18188
+ Reader.register('host_nic_virtual_functions_configurations', HostNicVirtualFunctionsConfigurationReader.method(:read_many))
18189
+ Reader.register('host_storage', HostStorageReader.method(:read_one))
18190
+ Reader.register('host_storages', HostStorageReader.method(:read_many))
18191
+ Reader.register('hosted_engine', HostedEngineReader.method(:read_one))
18192
+ Reader.register('hosted_engines', HostedEngineReader.method(:read_many))
18193
+ Reader.register('icon', IconReader.method(:read_one))
18194
+ Reader.register('icons', IconReader.method(:read_many))
18195
+ Reader.register('identified', IdentifiedReader.method(:read_one))
18196
+ Reader.register('identifieds', IdentifiedReader.method(:read_many))
18197
+ Reader.register('image', ImageReader.method(:read_one))
18198
+ Reader.register('images', ImageReader.method(:read_many))
18199
+ Reader.register('image_transfer', ImageTransferReader.method(:read_one))
18200
+ Reader.register('image_transfers', ImageTransferReader.method(:read_many))
18201
+ Reader.register('initialization', InitializationReader.method(:read_one))
18202
+ Reader.register('initializations', InitializationReader.method(:read_many))
18203
+ Reader.register('instance_type', InstanceTypeReader.method(:read_one))
18204
+ Reader.register('instance_types', InstanceTypeReader.method(:read_many))
18205
+ Reader.register('io', IoReader.method(:read_one))
18206
+ Reader.register('ios', IoReader.method(:read_many))
18207
+ Reader.register('ip', IpReader.method(:read_one))
18208
+ Reader.register('ips', IpReader.method(:read_many))
18209
+ Reader.register('ip_address_assignment', IpAddressAssignmentReader.method(:read_one))
18210
+ Reader.register('ip_address_assignments', IpAddressAssignmentReader.method(:read_many))
18211
+ Reader.register('iscsi_bond', IscsiBondReader.method(:read_one))
18212
+ Reader.register('iscsi_bonds', IscsiBondReader.method(:read_many))
18213
+ Reader.register('iscsi_details', IscsiDetailsReader.method(:read_one))
18214
+ Reader.register('iscsi_detailss', IscsiDetailsReader.method(:read_many))
18215
+ Reader.register('job', JobReader.method(:read_one))
18216
+ Reader.register('jobs', JobReader.method(:read_many))
18217
+ Reader.register('katello_erratum', KatelloErratumReader.method(:read_one))
18218
+ Reader.register('katello_errata', KatelloErratumReader.method(:read_many))
18219
+ Reader.register('kernel', KernelReader.method(:read_one))
18220
+ Reader.register('kernels', KernelReader.method(:read_many))
18221
+ Reader.register('ksm', KsmReader.method(:read_one))
18222
+ Reader.register('ksms', KsmReader.method(:read_many))
18223
+ Reader.register('logical_unit', LogicalUnitReader.method(:read_one))
18224
+ Reader.register('logical_units', LogicalUnitReader.method(:read_many))
18225
+ Reader.register('mac', MacReader.method(:read_one))
18226
+ Reader.register('macs', MacReader.method(:read_many))
18227
+ Reader.register('mac_pool', MacPoolReader.method(:read_one))
18228
+ Reader.register('mac_pools', MacPoolReader.method(:read_many))
18229
+ Reader.register('memory_over_commit', MemoryOverCommitReader.method(:read_one))
18230
+ Reader.register('memory_over_commits', MemoryOverCommitReader.method(:read_many))
18231
+ Reader.register('memory_policy', MemoryPolicyReader.method(:read_one))
18232
+ Reader.register('memory_policies', MemoryPolicyReader.method(:read_many))
18233
+ Reader.register('method', MethodReader.method(:read_one))
18234
+ Reader.register('methods', MethodReader.method(:read_many))
18235
+ Reader.register('migration_bandwidth', MigrationBandwidthReader.method(:read_one))
18236
+ Reader.register('migration_bandwidths', MigrationBandwidthReader.method(:read_many))
18237
+ Reader.register('migration', MigrationOptionsReader.method(:read_one))
18238
+ Reader.register('migration_optionss', MigrationOptionsReader.method(:read_many))
18239
+ Reader.register('migration_policy', MigrationPolicyReader.method(:read_one))
18240
+ Reader.register('migration_policies', MigrationPolicyReader.method(:read_many))
18241
+ Reader.register('network', NetworkReader.method(:read_one))
18242
+ Reader.register('networks', NetworkReader.method(:read_many))
18243
+ Reader.register('network_attachment', NetworkAttachmentReader.method(:read_one))
18244
+ Reader.register('network_attachments', NetworkAttachmentReader.method(:read_many))
18245
+ Reader.register('network_configuration', NetworkConfigurationReader.method(:read_one))
18246
+ Reader.register('network_configurations', NetworkConfigurationReader.method(:read_many))
18247
+ Reader.register('network_filter', NetworkFilterReader.method(:read_one))
18248
+ Reader.register('network_filters', NetworkFilterReader.method(:read_many))
18249
+ Reader.register('network_label', NetworkLabelReader.method(:read_one))
18250
+ Reader.register('network_labels', NetworkLabelReader.method(:read_many))
18251
+ Reader.register('nfs_profile_detail', NfsProfileDetailReader.method(:read_one))
18252
+ Reader.register('nfs_profile_details', NfsProfileDetailReader.method(:read_many))
18253
+ Reader.register('nic', NicReader.method(:read_one))
18254
+ Reader.register('nics', NicReader.method(:read_many))
18255
+ Reader.register('nic_configuration', NicConfigurationReader.method(:read_one))
18256
+ Reader.register('nic_configurations', NicConfigurationReader.method(:read_many))
18257
+ Reader.register('host_numa_node', NumaNodeReader.method(:read_one))
18258
+ Reader.register('host_numa_nodes', NumaNodeReader.method(:read_many))
18259
+ Reader.register('numa_node_pin', NumaNodePinReader.method(:read_one))
18260
+ Reader.register('numa_node_pins', NumaNodePinReader.method(:read_many))
18261
+ Reader.register('openstack_image', OpenStackImageReader.method(:read_one))
18262
+ Reader.register('openstack_images', OpenStackImageReader.method(:read_many))
18263
+ Reader.register('openstack_image_provider', OpenStackImageProviderReader.method(:read_one))
18264
+ Reader.register('openstack_image_providers', OpenStackImageProviderReader.method(:read_many))
18265
+ Reader.register('openstack_network', OpenStackNetworkReader.method(:read_one))
18266
+ Reader.register('openstack_networks', OpenStackNetworkReader.method(:read_many))
18267
+ Reader.register('openstack_network_provider', OpenStackNetworkProviderReader.method(:read_one))
18268
+ Reader.register('openstack_network_providers', OpenStackNetworkProviderReader.method(:read_many))
18269
+ Reader.register('open_stack_provider', OpenStackProviderReader.method(:read_one))
18270
+ Reader.register('open_stack_providers', OpenStackProviderReader.method(:read_many))
18271
+ Reader.register('openstack_subnet', OpenStackSubnetReader.method(:read_one))
18272
+ Reader.register('openstack_subnets', OpenStackSubnetReader.method(:read_many))
18273
+ Reader.register('openstack_volume_provider', OpenStackVolumeProviderReader.method(:read_one))
18274
+ Reader.register('openstack_volume_providers', OpenStackVolumeProviderReader.method(:read_many))
18275
+ Reader.register('open_stack_volume_type', OpenStackVolumeTypeReader.method(:read_one))
18276
+ Reader.register('open_stack_volume_types', OpenStackVolumeTypeReader.method(:read_many))
18277
+ Reader.register('openstack_volume_authentication_key', OpenstackVolumeAuthenticationKeyReader.method(:read_one))
18278
+ Reader.register('openstack_volume_authentication_keys', OpenstackVolumeAuthenticationKeyReader.method(:read_many))
18279
+ Reader.register('os', OperatingSystemReader.method(:read_one))
18280
+ Reader.register('oss', OperatingSystemReader.method(:read_many))
18281
+ Reader.register('operating_system', OperatingSystemInfoReader.method(:read_one))
18282
+ Reader.register('operation_systems', OperatingSystemInfoReader.method(:read_many))
18283
+ Reader.register('option', OptionReader.method(:read_one))
18284
+ Reader.register('options', OptionReader.method(:read_many))
18285
+ Reader.register('package', PackageReader.method(:read_one))
18286
+ Reader.register('packages', PackageReader.method(:read_many))
18287
+ Reader.register('payload', PayloadReader.method(:read_one))
18288
+ Reader.register('payloads', PayloadReader.method(:read_many))
18289
+ Reader.register('permission', PermissionReader.method(:read_one))
18290
+ Reader.register('permissions', PermissionReader.method(:read_many))
18291
+ Reader.register('permit', PermitReader.method(:read_one))
18292
+ Reader.register('permits', PermitReader.method(:read_many))
18293
+ Reader.register('pm_proxy', PmProxyReader.method(:read_one))
18294
+ Reader.register('pm_proxies', PmProxyReader.method(:read_many))
18295
+ Reader.register('port_mirroring', PortMirroringReader.method(:read_one))
18296
+ Reader.register('port_mirrorings', PortMirroringReader.method(:read_many))
18297
+ Reader.register('power_management', PowerManagementReader.method(:read_one))
18298
+ Reader.register('power_managements', PowerManagementReader.method(:read_many))
18299
+ Reader.register('product', ProductReader.method(:read_one))
18300
+ Reader.register('products', ProductReader.method(:read_many))
18301
+ Reader.register('product_info', ProductInfoReader.method(:read_one))
18302
+ Reader.register('product_infos', ProductInfoReader.method(:read_many))
18303
+ Reader.register('profile_detail', ProfileDetailReader.method(:read_one))
18304
+ Reader.register('profile_details', ProfileDetailReader.method(:read_many))
18305
+ Reader.register('property', PropertyReader.method(:read_one))
18306
+ Reader.register('properties', PropertyReader.method(:read_many))
18307
+ Reader.register('proxy_ticket', ProxyTicketReader.method(:read_one))
18308
+ Reader.register('proxy_tickets', ProxyTicketReader.method(:read_many))
18309
+ Reader.register('qos', QosReader.method(:read_one))
18310
+ Reader.register('qoss', QosReader.method(:read_many))
18311
+ Reader.register('quota', QuotaReader.method(:read_one))
18312
+ Reader.register('quotas', QuotaReader.method(:read_many))
18313
+ Reader.register('quota_cluster_limit', QuotaClusterLimitReader.method(:read_one))
18314
+ Reader.register('quota_cluster_limits', QuotaClusterLimitReader.method(:read_many))
18315
+ Reader.register('quota_storage_limit', QuotaStorageLimitReader.method(:read_one))
18316
+ Reader.register('quota_storage_limits', QuotaStorageLimitReader.method(:read_many))
18317
+ Reader.register('range', RangeReader.method(:read_one))
18318
+ Reader.register('ranges', RangeReader.method(:read_many))
18319
+ Reader.register('rate', RateReader.method(:read_one))
18320
+ Reader.register('rates', RateReader.method(:read_many))
18321
+ Reader.register('reported_configuration', ReportedConfigurationReader.method(:read_one))
18322
+ Reader.register('reported_configurations', ReportedConfigurationReader.method(:read_many))
18323
+ Reader.register('reported_device', ReportedDeviceReader.method(:read_one))
18324
+ Reader.register('reported_devices', ReportedDeviceReader.method(:read_many))
18325
+ Reader.register('rng_device', RngDeviceReader.method(:read_one))
18326
+ Reader.register('rng_devices', RngDeviceReader.method(:read_many))
18327
+ Reader.register('role', RoleReader.method(:read_one))
18328
+ Reader.register('roles', RoleReader.method(:read_many))
18329
+ Reader.register('scheduling_policy', SchedulingPolicyReader.method(:read_one))
18330
+ Reader.register('scheduling_policies', SchedulingPolicyReader.method(:read_many))
18331
+ Reader.register('scheduling_policy_unit', SchedulingPolicyUnitReader.method(:read_one))
18332
+ Reader.register('scheduling_policy_units', SchedulingPolicyUnitReader.method(:read_many))
18333
+ Reader.register('se_linux', SeLinuxReader.method(:read_one))
18334
+ Reader.register('se_linuxs', SeLinuxReader.method(:read_many))
18335
+ Reader.register('serial_number', SerialNumberReader.method(:read_one))
18336
+ Reader.register('serial_numbers', SerialNumberReader.method(:read_many))
18337
+ Reader.register('session', SessionReader.method(:read_one))
18338
+ Reader.register('sessions', SessionReader.method(:read_many))
18339
+ Reader.register('skip_if_connectivity_broken', SkipIfConnectivityBrokenReader.method(:read_one))
18340
+ Reader.register('skip_if_connectivity_brokens', SkipIfConnectivityBrokenReader.method(:read_many))
18341
+ Reader.register('skip_if_sd_active', SkipIfSdActiveReader.method(:read_one))
18342
+ Reader.register('skip_if_sd_actives', SkipIfSdActiveReader.method(:read_many))
18343
+ Reader.register('snapshot', SnapshotReader.method(:read_one))
18344
+ Reader.register('snapshots', SnapshotReader.method(:read_many))
18345
+ Reader.register('special_objects', SpecialObjectsReader.method(:read_one))
18346
+ Reader.register('special_objectss', SpecialObjectsReader.method(:read_many))
18347
+ Reader.register('spm', SpmReader.method(:read_one))
18348
+ Reader.register('spms', SpmReader.method(:read_many))
18349
+ Reader.register('ssh', SshReader.method(:read_one))
18350
+ Reader.register('sshs', SshReader.method(:read_many))
18351
+ Reader.register('ssh_public_key', SshPublicKeyReader.method(:read_one))
18352
+ Reader.register('ssh_public_keys', SshPublicKeyReader.method(:read_many))
18353
+ Reader.register('sso', SsoReader.method(:read_one))
18354
+ Reader.register('ssos', SsoReader.method(:read_many))
18355
+ Reader.register('statistic', StatisticReader.method(:read_one))
18356
+ Reader.register('statistics', StatisticReader.method(:read_many))
18357
+ Reader.register('step', StepReader.method(:read_one))
18358
+ Reader.register('steps', StepReader.method(:read_many))
18359
+ Reader.register('storage_connection', StorageConnectionReader.method(:read_one))
18360
+ Reader.register('storage_connections', StorageConnectionReader.method(:read_many))
18361
+ Reader.register('storage_connection_extension', StorageConnectionExtensionReader.method(:read_one))
18362
+ Reader.register('storage_connection_extensions', StorageConnectionExtensionReader.method(:read_many))
18363
+ Reader.register('storage_domain', StorageDomainReader.method(:read_one))
18364
+ Reader.register('storage_domains', StorageDomainReader.method(:read_many))
18365
+ Reader.register('tag', TagReader.method(:read_one))
18366
+ Reader.register('tags', TagReader.method(:read_many))
18367
+ Reader.register('template', TemplateReader.method(:read_one))
18368
+ Reader.register('templates', TemplateReader.method(:read_many))
18369
+ Reader.register('template_version', TemplateVersionReader.method(:read_one))
18370
+ Reader.register('template_versions', TemplateVersionReader.method(:read_many))
18371
+ Reader.register('ticket', TicketReader.method(:read_one))
18372
+ Reader.register('tickets', TicketReader.method(:read_many))
18373
+ Reader.register('time_zone', TimeZoneReader.method(:read_one))
18374
+ Reader.register('time_zones', TimeZoneReader.method(:read_many))
18375
+ Reader.register('transparent_hugepages', TransparentHugePagesReader.method(:read_one))
18376
+ Reader.register('transparent_huge_pagess', TransparentHugePagesReader.method(:read_many))
18377
+ Reader.register('unmanaged_network', UnmanagedNetworkReader.method(:read_one))
18378
+ Reader.register('unmanaged_networks', UnmanagedNetworkReader.method(:read_many))
18379
+ Reader.register('usb', UsbReader.method(:read_one))
18380
+ Reader.register('usbs', UsbReader.method(:read_many))
18381
+ Reader.register('user', UserReader.method(:read_one))
18382
+ Reader.register('users', UserReader.method(:read_many))
18383
+ Reader.register('value', ValueReader.method(:read_one))
18384
+ Reader.register('values', ValueReader.method(:read_many))
18385
+ Reader.register('vcpu_pin', VcpuPinReader.method(:read_one))
18386
+ Reader.register('vcpu_pins', VcpuPinReader.method(:read_many))
18387
+ Reader.register('vendor', VendorReader.method(:read_one))
18388
+ Reader.register('vendors', VendorReader.method(:read_many))
18389
+ Reader.register('version', VersionReader.method(:read_one))
18390
+ Reader.register('versions', VersionReader.method(:read_many))
18391
+ Reader.register('virtio_scsi', VirtioScsiReader.method(:read_one))
18392
+ Reader.register('virtio_scsis', VirtioScsiReader.method(:read_many))
18393
+ Reader.register('vm_numa_node', VirtualNumaNodeReader.method(:read_one))
18394
+ Reader.register('vm_numa_nodes', VirtualNumaNodeReader.method(:read_many))
18395
+ Reader.register('vlan', VlanReader.method(:read_one))
18396
+ Reader.register('vlans', VlanReader.method(:read_many))
18397
+ Reader.register('vm', VmReader.method(:read_one))
18398
+ Reader.register('vms', VmReader.method(:read_many))
18399
+ Reader.register('vm_base', VmBaseReader.method(:read_one))
18400
+ Reader.register('vm_bases', VmBaseReader.method(:read_many))
18401
+ Reader.register('vm_placement_policy', VmPlacementPolicyReader.method(:read_one))
18402
+ Reader.register('vm_placement_policies', VmPlacementPolicyReader.method(:read_many))
18403
+ Reader.register('vm_pool', VmPoolReader.method(:read_one))
18404
+ Reader.register('vm_pools', VmPoolReader.method(:read_many))
18405
+ Reader.register('vm_summary', VmSummaryReader.method(:read_one))
18406
+ Reader.register('vm_summaries', VmSummaryReader.method(:read_many))
18407
+ Reader.register('vnic_pass_through', VnicPassThroughReader.method(:read_one))
18408
+ Reader.register('vnic_pass_throughs', VnicPassThroughReader.method(:read_many))
18409
+ Reader.register('vnic_profile', VnicProfileReader.method(:read_one))
18410
+ Reader.register('vnic_profiles', VnicProfileReader.method(:read_many))
18411
+ Reader.register('volume_group', VolumeGroupReader.method(:read_one))
18412
+ Reader.register('volume_groups', VolumeGroupReader.method(:read_many))
18413
+ Reader.register('watchdog', WatchdogReader.method(:read_one))
18414
+ Reader.register('watchdogs', WatchdogReader.method(:read_many))
18415
+ Reader.register('weight', WeightReader.method(:read_one))
18416
+ Reader.register('weights', WeightReader.method(:read_many))
17941
18417
  end
17942
18418