ovirt-engine-sdk 4.6.0 → 4.6.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
  SHA256:
3
- metadata.gz: 593677086e88de577c872f2e3629dabf7d2e4cefa26e73595d19c3127e77008e
4
- data.tar.gz: 39a8361a675a62f8b462715a06a0de2d63f8c7c579eca10ff0cb936327580d09
3
+ metadata.gz: 2a18fa604006bdf2fff1c9c6ae67d53cfc8421aedca0f5a823fbae736b3b17fa
4
+ data.tar.gz: 6353e9cba637cd0e739ecfc525720eedd303cf19c7f1c149cd9f336927a9eae4
5
5
  SHA512:
6
- metadata.gz: d99f97a8fd180f9c9b6ee0c9c8a5681001f4a83a1fc5b88909c64dae6bcb09ef157d114ea80328900f11762853b0ef0f7971d97f701c9f19e6c638ad3e26e296
7
- data.tar.gz: e3bfb91602e07cfbb35b641acd589e6973280479d2cb98246cbd0a565598bdf93368cd40b0641d81534675ab64a52086822e037a83312fde2f06ed8bd4ce2b80
6
+ metadata.gz: 8f1b0c3d6a4b006f7536276da729334719c8507b3fddb7ca03675647c73191ef55b2c0b4411996695c13fbfdca6965a571b5bed2124c5514fc17646ff8c0bdfc
7
+ data.tar.gz: 519977ad66626c3ec8a3ca01184cfb966fced85b9399e6f548fd37f47bfc1bc0e5481f710f74f43ac3ea945e17fe4cc6e60f46846edec93f5d122bd029ffd88c
data/CHANGES.adoc CHANGED
@@ -2,6 +2,17 @@
2
2
 
3
3
  This document describes the relevant changes between releases of the SDK.
4
4
 
5
+ == 4.6.1 / Oct 16 2025
6
+ Upgrade to model 4.6.1 and metamodel 1.3.11
7
+
8
+ New features:
9
+
10
+ * Add support for Ruby 3
11
+
12
+ * Use Weld 3
13
+
14
+ * Build on Java 21
15
+
5
16
  == 4.6.0 / Feb 1 2024
6
17
  Upgrade to model 4.6.0 and metamodel 1.3.10
7
18
 
@@ -34,6 +34,9 @@ limitations under the License.
34
34
  #include "ov_http_response.h"
35
35
  #include "ov_http_transfer.h"
36
36
 
37
+ /* thread.c (export) */
38
+ extern int ruby_thread_has_gvl_p(void);
39
+
37
40
  /* Class: */
38
41
  VALUE ov_http_client_class;
39
42
 
@@ -130,7 +133,7 @@ typedef struct {
130
133
 
131
134
  typedef struct {
132
135
  CURLM* handle;
133
- CURLcode code;
136
+ CURLMcode code;
134
137
  bool cancel;
135
138
  } ov_http_client_wait_context;
136
139
 
@@ -176,7 +179,7 @@ static void ov_http_client_check_closed(ov_http_client_object* object) {
176
179
  static void ov_http_client_mark(void* vptr) {
177
180
  ov_http_client_object* ptr;
178
181
 
179
- ptr = vptr;
182
+ ptr = (ov_http_client_object*)vptr;
180
183
  rb_gc_mark(ptr->log);
181
184
  rb_gc_mark(ptr->queue);
182
185
  rb_gc_mark(ptr->pending);
@@ -187,7 +190,7 @@ static void ov_http_client_free(void* vptr) {
187
190
  ov_http_client_object* ptr;
188
191
 
189
192
  /* Get the pointer to the object: */
190
- ptr = vptr;
193
+ ptr = (ov_http_client_object*)vptr;
191
194
 
192
195
  /* Release the resources used by libcurl: */
193
196
  if (ptr->handle != NULL) {
@@ -213,7 +216,7 @@ rb_data_type_t ov_http_client_type = {
213
216
  .dmark = ov_http_client_mark,
214
217
  .dfree = ov_http_client_free,
215
218
  .dsize = NULL,
216
- .reserved = { NULL, NULL }
219
+ .reserved = { NULL }
217
220
  },
218
221
  #ifdef RUBY_TYPED_FREE_IMMEDIATELY
219
222
  .parent = NULL,
@@ -384,7 +387,7 @@ static void* ov_http_client_header_task(void* data) {
384
387
  }
385
388
 
386
389
  /* Parse the header and add it to the response object: */
387
- pointer = memchr(buffer, ':', length);
390
+ pointer = (char*) memchr(buffer, ':', length);
388
391
  if (pointer != NULL) {
389
392
  name = rb_str_new(buffer, pointer - buffer);
390
393
  name = rb_funcall(name, DOWNCASE_ID, 0);
@@ -491,7 +494,7 @@ static int ov_http_client_debug_function(CURL* handle, curl_infotype type, char*
491
494
  ov_http_transfer_ptr(transfer, transfer_ptr);
492
495
 
493
496
  /* The global interpreter lock may be acquired or not, so we need to check and either call the task directly
494
- or else call it after acquiring the lock. Note that the `ruby_thread_has_gvl_p` function that we ue to
497
+ or else call it after acquiring the lock. Note that the `ruby_thread_has_gvl_p` function that we use to
495
498
  check if the GVL is acquired is marked as experimental, and not defined in `thread.h`, so it may be
496
499
  removed at any time, but I didn't find any other way to check if the GVL is acquired. */
497
500
  context.client = transfer_ptr->client;
@@ -736,7 +739,7 @@ static VALUE ov_http_client_build_url( VALUE url, VALUE query) {
736
739
  if (!NIL_P(query)) {
737
740
  Check_Type(query, T_HASH);
738
741
  if (RHASH_SIZE(query) > 0) {
739
- url = rb_sprintf("%"PRIsVALUE"?%"PRIsVALUE"", url, rb_funcall(URI_CLASS, ENCODE_WWW_FORM_ID, 1, query));
742
+ url = rb_sprintf("%" PRIsVALUE "?%" PRIsVALUE "", url, rb_funcall(URI_CLASS, ENCODE_WWW_FORM_ID, 1, query));
740
743
  }
741
744
  }
742
745
 
@@ -746,7 +749,7 @@ static VALUE ov_http_client_build_url( VALUE url, VALUE query) {
746
749
  static int ov_http_client_add_header(VALUE name, VALUE value, struct curl_slist** headers) {
747
750
  VALUE header = Qnil;
748
751
 
749
- header = rb_sprintf("%"PRIsVALUE": %"PRIsVALUE"", name, value);
752
+ header = rb_sprintf("%" PRIsVALUE ": %" PRIsVALUE "", name, value);
750
753
  *headers = curl_slist_append(*headers, StringValueCStr(header));
751
754
 
752
755
  return ST_CONTINUE;
@@ -792,7 +795,7 @@ static void* ov_http_client_complete_task(void* data) {
792
795
  /* Send a summary of the response to the log: */
793
796
  ov_http_client_log_info(
794
797
  client_ptr->log,
795
- "Received response code %"PRIsVALUE" for %"PRIsVALUE" request to URL '%"PRIsVALUE"'.",
798
+ "Received response code %" PRIsVALUE " for %" PRIsVALUE " request to URL '%" PRIsVALUE "'.",
796
799
  response_ptr->code,
797
800
  request_ptr->method,
798
801
  request_ptr->url
@@ -840,7 +843,7 @@ static void* ov_http_client_wait_task(void* data) {
840
843
  #endif
841
844
 
842
845
  /* The passed data is the wait context: */
843
- context_ptr = data;
846
+ context_ptr = (ov_http_client_wait_context*) data;
844
847
 
845
848
  /* Get the timeout preferred by libcurl, or one 100 ms by default: */
846
849
  curl_multi_timeout(context_ptr->handle, &timeout);
@@ -851,7 +854,7 @@ static void* ov_http_client_wait_task(void* data) {
851
854
  #if LIBCURL_VERSION_NUM >= 0x071c00
852
855
  /* Wait till there is activity: */
853
856
  context_ptr->code = curl_multi_wait(context_ptr->handle, NULL, 0, timeout, NULL);
854
- if (context_ptr->code != CURLE_OK) {
857
+ if (context_ptr->code != CURLM_OK) {
855
858
  return NULL;
856
859
  }
857
860
  #else
@@ -872,7 +875,7 @@ static void* ov_http_client_wait_task(void* data) {
872
875
  /* Let libcurl do its work, even if no file descriptor needs attention. This is necessary because some of its
873
876
  activities can't be monitored using file descriptors. */
874
877
  context_ptr->code = curl_multi_perform(context_ptr->handle, &pending);
875
- if (context_ptr->code != CURLE_OK) {
878
+ if (context_ptr->code != CURLM_OK) {
876
879
  return NULL;
877
880
  }
878
881
 
@@ -890,7 +893,7 @@ static void* ov_http_client_wait_task(void* data) {
890
893
  }
891
894
 
892
895
  /* Everything worked correctly: */
893
- context_ptr->code = CURLE_OK;
896
+ context_ptr->code = CURLM_OK;
894
897
  return NULL;
895
898
  }
896
899
 
@@ -898,7 +901,7 @@ static void ov_http_client_wait_cancel(void* data) {
898
901
  ov_http_client_wait_context* context_ptr;
899
902
 
900
903
  /* The passed data is the wait context: */
901
- context_ptr = data;
904
+ context_ptr = (ov_http_client_wait_context*) data;
902
905
 
903
906
  /* Set the cancel flag so that the operation will be actually aborted in the next operation of the wait loop: */
904
907
  context_ptr->cancel = true;
@@ -980,7 +983,6 @@ static void ov_http_client_prepare_handle(ov_http_client_object* client_ptr, ov_
980
983
  else if (rb_eql(request_ptr->method, PUT_SYMBOL)) {
981
984
  *headers = curl_slist_append(*headers, "Expect:");
982
985
  curl_easy_setopt(handle, CURLOPT_UPLOAD, 1L);
983
- curl_easy_setopt(handle, CURLOPT_PUT, 1L);
984
986
  }
985
987
  else if (rb_eql(request_ptr->method, DELETE_SYMBOL)) {
986
988
  curl_easy_setopt(handle, CURLOPT_HTTPGET, 1L);
@@ -992,7 +994,7 @@ static void ov_http_client_prepare_handle(ov_http_client_object* client_ptr, ov_
992
994
 
993
995
  /* Set authentication details: */
994
996
  if (!NIL_P(request_ptr->token)) {
995
- header = rb_sprintf("Authorization: Bearer %"PRIsVALUE"", request_ptr->token);
997
+ header = rb_sprintf("Authorization: Bearer %" PRIsVALUE "", request_ptr->token);
996
998
  *headers = curl_slist_append(*headers, StringValueCStr(header));
997
999
  }
998
1000
  else if (!NIL_P(request_ptr->username) && !NIL_P(request_ptr->password)) {
@@ -1006,14 +1008,14 @@ static void ov_http_client_prepare_handle(ov_http_client_object* client_ptr, ov_
1006
1008
 
1007
1009
  /* Set the headers: */
1008
1010
  if (!NIL_P(request_ptr->headers)) {
1009
- rb_hash_foreach(request_ptr->headers, ov_http_client_add_header, (VALUE) headers);
1011
+ rb_hash_foreach(request_ptr->headers, (int (*)(VALUE, VALUE, VALUE)) ov_http_client_add_header, (VALUE) headers);
1010
1012
  }
1011
1013
  curl_easy_setopt(handle, CURLOPT_HTTPHEADER, *headers);
1012
1014
 
1013
1015
  /* Send a summary of the request to the log: */
1014
1016
  ov_http_client_log_info(
1015
1017
  client_ptr->log,
1016
- "Sending %"PRIsVALUE" request to URL '%"PRIsVALUE"'.",
1018
+ "Sending %" PRIsVALUE " request to URL '%" PRIsVALUE "'.",
1017
1019
  request_ptr->method,
1018
1020
  url
1019
1021
  );
@@ -1119,7 +1121,7 @@ static VALUE ov_http_client_wait(VALUE self, VALUE request) {
1119
1121
 
1120
1122
  /* Work till the transfer has been completed. */
1121
1123
  context.handle = ptr->handle;
1122
- context.code = CURLE_OK;
1124
+ context.code = CURLM_OK;
1123
1125
  context.cancel = false;
1124
1126
  for (;;) {
1125
1127
  /* Move requests from the queue to libcurl: */
@@ -1144,8 +1146,8 @@ static VALUE ov_http_client_wait(VALUE self, VALUE request) {
1144
1146
  if (context.cancel) {
1145
1147
  return Qnil;
1146
1148
  }
1147
- if (context.code != CURLE_OK) {
1148
- rb_raise(ov_error_class, "Unexpected error while waiting: %s", curl_easy_strerror(context.code));
1149
+ if (context.code != CURLM_OK) {
1150
+ rb_raise(ov_error_class, "Unexpected error while waiting: %s", curl_multi_strerror(context.code));
1149
1151
  }
1150
1152
  }
1151
1153
 
@@ -1156,7 +1158,7 @@ static VALUE ov_http_client_inspect(VALUE self) {
1156
1158
  ov_http_client_object* ptr;
1157
1159
 
1158
1160
  ov_http_client_ptr(self, ptr);
1159
- return rb_sprintf("#<%"PRIsVALUE":%p>", ov_http_client_class, ptr);
1161
+ return rb_sprintf("#<%" PRIsVALUE ":%p>", ov_http_client_class, ptr);
1160
1162
  }
1161
1163
 
1162
1164
  void ov_http_client_define(void) {
@@ -45,7 +45,7 @@ static VALUE CONNECT_TIMEOUT_SYMBOL;
45
45
  static void ov_http_request_mark(void* vptr) {
46
46
  ov_http_request_object* ptr;
47
47
 
48
- ptr = vptr;
48
+ ptr = (ov_http_request_object*)vptr;
49
49
  rb_gc_mark(ptr->method);
50
50
  rb_gc_mark(ptr->url);
51
51
  rb_gc_mark(ptr->query);
@@ -62,7 +62,7 @@ static void ov_http_request_mark(void* vptr) {
62
62
  static void ov_http_request_free(void* vptr) {
63
63
  ov_http_request_object* ptr;
64
64
 
65
- ptr = vptr;
65
+ ptr = (ov_http_request_object*)vptr;
66
66
  xfree(ptr);
67
67
  }
68
68
 
@@ -72,7 +72,7 @@ rb_data_type_t ov_http_request_type = {
72
72
  .dmark = ov_http_request_mark,
73
73
  .dfree = ov_http_request_free,
74
74
  .dsize = NULL,
75
- .reserved = { NULL, NULL }
75
+ .reserved = { NULL }
76
76
  },
77
77
  #ifdef RUBY_TYPED_FREE_IMMEDIATELY
78
78
  .parent = NULL,
@@ -305,7 +305,7 @@ static VALUE ov_http_request_inspect(VALUE self) {
305
305
 
306
306
  ov_http_request_ptr(self, ptr);
307
307
  return rb_sprintf(
308
- "#<%"PRIsVALUE":%"PRIsVALUE" %"PRIsVALUE">",
308
+ "#<%" PRIsVALUE ":%" PRIsVALUE " %" PRIsVALUE ">",
309
309
  ov_http_request_class,
310
310
  ptr->method,
311
311
  ptr->url
@@ -31,7 +31,7 @@ static VALUE MESSAGE_SYMBOL;
31
31
  static void ov_http_response_mark(void* vptr) {
32
32
  ov_http_response_object* ptr;
33
33
 
34
- ptr = vptr;
34
+ ptr = (ov_http_response_object*)vptr;
35
35
  rb_gc_mark(ptr->body);
36
36
  rb_gc_mark(ptr->code);
37
37
  rb_gc_mark(ptr->headers);
@@ -41,7 +41,7 @@ static void ov_http_response_mark(void* vptr) {
41
41
  static void ov_http_response_free(void* vptr) {
42
42
  ov_http_response_object* ptr;
43
43
 
44
- ptr = vptr;
44
+ ptr = (ov_http_response_object*)vptr;
45
45
  xfree(ptr);
46
46
  }
47
47
 
@@ -51,7 +51,7 @@ rb_data_type_t ov_http_response_type = {
51
51
  .dmark = ov_http_response_mark,
52
52
  .dfree = ov_http_response_free,
53
53
  .dsize = NULL,
54
- .reserved = { NULL, NULL }
54
+ .reserved = { NULL }
55
55
  },
56
56
  #ifdef RUBY_TYPED_FREE_IMMEDIATELY
57
57
  .parent = NULL,
@@ -151,7 +151,7 @@ static VALUE ov_http_response_inspect(VALUE self) {
151
151
 
152
152
  ov_http_response_ptr(self, ptr);
153
153
  return rb_sprintf(
154
- "#<%"PRIsVALUE":%"PRIsVALUE" %"PRIsVALUE">",
154
+ "#<%" PRIsVALUE ":%" PRIsVALUE " %" PRIsVALUE ">",
155
155
  ov_http_response_class,
156
156
  ptr->code,
157
157
  ptr->message
@@ -27,7 +27,7 @@ VALUE ov_http_transfer_class;
27
27
  static void ov_http_transfer_mark(void* vptr) {
28
28
  ov_http_transfer_object* ptr;
29
29
 
30
- ptr = vptr;
30
+ ptr = (ov_http_transfer_object*)vptr;
31
31
  rb_gc_mark(ptr->client);
32
32
  rb_gc_mark(ptr->request);
33
33
  rb_gc_mark(ptr->response);
@@ -38,7 +38,7 @@ static void ov_http_transfer_mark(void* vptr) {
38
38
  static void ov_http_transfer_free(void* vptr) {
39
39
  ov_http_transfer_object* ptr;
40
40
 
41
- ptr = vptr;
41
+ ptr = (ov_http_transfer_object*)vptr;
42
42
  xfree(ptr);
43
43
  }
44
44
 
@@ -48,7 +48,7 @@ rb_data_type_t ov_http_transfer_type = {
48
48
  .dmark = ov_http_transfer_mark,
49
49
  .dfree = ov_http_transfer_free,
50
50
  .dsize = NULL,
51
- .reserved = { NULL, NULL }
51
+ .reserved = { NULL }
52
52
  },
53
53
  #ifdef RUBY_TYPED_FREE_IMMEDIATELY
54
54
  .parent = NULL,
@@ -75,7 +75,7 @@ static VALUE ov_http_transfer_inspect(VALUE self) {
75
75
  ov_http_transfer_object* ptr;
76
76
 
77
77
  ov_http_transfer_ptr(self, ptr);
78
- return rb_sprintf("#<%"PRIsVALUE":%p>", ov_http_transfer_class, ptr);
78
+ return rb_sprintf("#<%" PRIsVALUE ":%p>", ov_http_transfer_class, ptr);
79
79
  }
80
80
 
81
81
  void ov_http_transfer_define(void) {
@@ -72,7 +72,7 @@ rb_data_type_t ov_xml_reader_type = {
72
72
  .dmark = ov_xml_reader_mark,
73
73
  .dfree = ov_xml_reader_free,
74
74
  .dsize = NULL,
75
- .reserved = { NULL, NULL }
75
+ .reserved = { NULL }
76
76
  },
77
77
  #ifdef RUBY_TYPED_FREE_IMMEDIATELY
78
78
  .parent = NULL,
@@ -66,7 +66,7 @@ rb_data_type_t ov_xml_writer_type = {
66
66
  .dmark = ov_xml_writer_mark,
67
67
  .dfree = ov_xml_writer_free,
68
68
  .dsize = NULL,
69
- .reserved = { NULL, NULL }
69
+ .reserved = { NULL }
70
70
  },
71
71
  #ifdef RUBY_TYPED_FREE_IMMEDIATELY
72
72
  .parent = NULL,
@@ -181,7 +181,7 @@ static VALUE ov_xml_writer_string(VALUE self) {
181
181
  if (rc < 0) {
182
182
  rb_raise(ov_error_class, "Can't flush XML writer");
183
183
  }
184
- return rb_funcall(ptr->io, STRING_ID, 0, NULL);
184
+ return rb_funcall(ptr->io, STRING_ID, 0, Qnil);
185
185
  }
186
186
 
187
187
  static VALUE ov_xml_writer_write_start(VALUE self, VALUE name) {
@@ -34,6 +34,8 @@ module OvirtSDK4
34
34
  object.allow_partial_import = value if not value.nil?
35
35
  value = reader.get_attribute('async')
36
36
  object.async = value if not value.nil?
37
+ value = reader.get_attribute('attach_wgt')
38
+ object.attach_wgt = value if not value.nil?
37
39
  value = reader.get_attribute('auto_pinning_policy')
38
40
  object.auto_pinning_policy = value if not value.nil?
39
41
  value = reader.get_attribute('check_connectivity')
@@ -149,6 +151,8 @@ module OvirtSDK4
149
151
  object.allow_partial_import = Reader.read_boolean(reader)
150
152
  when 'async'
151
153
  object.async = Reader.read_boolean(reader)
154
+ when 'attach_wgt'
155
+ object.attach_wgt = Reader.read_boolean(reader)
152
156
  when 'attachment'
153
157
  object.attachment = DiskAttachmentReader.read_one(reader)
154
158
  when 'authorized_key'
@@ -895,6 +899,8 @@ module OvirtSDK4
895
899
  # Process the inner elements:
896
900
  while reader.forward do
897
901
  case reader.node_name
902
+ when 'engine_backup'
903
+ object.engine_backup = EngineBackupInfoReader.read_one(reader)
898
904
  when 'product_info'
899
905
  object.product_info = ProductInfoReader.read_one(reader)
900
906
  when 'special_objects'
@@ -4273,6 +4279,8 @@ module OvirtSDK4
4273
4279
  object.smartcard_enabled = value if not value.nil?
4274
4280
  value = reader.get_attribute('type')
4275
4281
  object.type = value if not value.nil?
4282
+ value = reader.get_attribute('video_type')
4283
+ object.video_type = value if not value.nil?
4276
4284
 
4277
4285
  # Discard the start tag:
4278
4286
  empty = reader.empty_element?
@@ -4312,6 +4320,8 @@ module OvirtSDK4
4312
4320
  object.smartcard_enabled = Reader.read_boolean(reader)
4313
4321
  when 'type'
4314
4322
  object.type = Reader.read_enum(DisplayType, reader)
4323
+ when 'video_type'
4324
+ object.video_type = Reader.read_enum(VideoType, reader)
4315
4325
  else
4316
4326
  reader.next_element
4317
4327
  end
@@ -4635,6 +4645,88 @@ module OvirtSDK4
4635
4645
 
4636
4646
  end
4637
4647
 
4648
+ class EngineBackupInfoReader < Reader
4649
+
4650
+ def self.read_one(reader)
4651
+ # Do nothing if there aren't more tags:
4652
+ return nil unless reader.forward
4653
+
4654
+ # Create the object:
4655
+ object = EngineBackupInfo.new
4656
+
4657
+ # Process the attributes:
4658
+ object.href = reader.get_attribute('href')
4659
+ value = reader.get_attribute('last_cinder_backup')
4660
+ object.last_cinder_backup = value if not value.nil?
4661
+ value = reader.get_attribute('last_db_backup')
4662
+ object.last_db_backup = value if not value.nil?
4663
+ value = reader.get_attribute('last_dwh_backup')
4664
+ object.last_dwh_backup = value if not value.nil?
4665
+ value = reader.get_attribute('last_engine_backup')
4666
+ object.last_engine_backup = value if not value.nil?
4667
+ value = reader.get_attribute('last_grafana_backup')
4668
+ object.last_grafana_backup = value if not value.nil?
4669
+ value = reader.get_attribute('last_keycloak_backup')
4670
+ object.last_keycloak_backup = value if not value.nil?
4671
+
4672
+ # Discard the start tag:
4673
+ empty = reader.empty_element?
4674
+ reader.read
4675
+ return object if empty
4676
+
4677
+ # Process the inner elements:
4678
+ while reader.forward do
4679
+ case reader.node_name
4680
+ when 'last_cinder_backup'
4681
+ object.last_cinder_backup = Reader.read_date(reader)
4682
+ when 'last_db_backup'
4683
+ object.last_db_backup = Reader.read_date(reader)
4684
+ when 'last_dwh_backup'
4685
+ object.last_dwh_backup = Reader.read_date(reader)
4686
+ when 'last_engine_backup'
4687
+ object.last_engine_backup = Reader.read_date(reader)
4688
+ when 'last_grafana_backup'
4689
+ object.last_grafana_backup = Reader.read_date(reader)
4690
+ when 'last_keycloak_backup'
4691
+ object.last_keycloak_backup = Reader.read_date(reader)
4692
+ else
4693
+ reader.next_element
4694
+ end
4695
+ end
4696
+
4697
+ # Discard the end tag:
4698
+ reader.read
4699
+
4700
+ return object
4701
+ end
4702
+
4703
+
4704
+ def self.read_many(reader)
4705
+ # Do nothing if there aren't more tags:
4706
+ list = List.new
4707
+ return list unless reader.forward
4708
+
4709
+ # Process the attributes:
4710
+ list.href = reader.get_attribute('href')
4711
+
4712
+ # Discard the start tag:
4713
+ empty = reader.empty_element?
4714
+ reader.read
4715
+ return list if empty
4716
+
4717
+ # Process the inner elements:
4718
+ while reader.forward do
4719
+ list << read_one(reader)
4720
+ end
4721
+
4722
+ # Discard the end tag:
4723
+ reader.read
4724
+
4725
+ return list
4726
+ end
4727
+
4728
+ end
4729
+
4638
4730
  class EntityProfileDetailReader < Reader
4639
4731
 
4640
4732
  def self.read_one(reader)
@@ -10441,6 +10533,8 @@ module OvirtSDK4
10441
10533
 
10442
10534
  # Process the attributes:
10443
10535
  object.href = reader.get_attribute('href')
10536
+ value = reader.get_attribute('active_paths')
10537
+ object.active_paths = value if not value.nil?
10444
10538
  value = reader.get_attribute('address')
10445
10539
  object.address = value if not value.nil?
10446
10540
  value = reader.get_attribute('discard_max_size')
@@ -10488,6 +10582,8 @@ module OvirtSDK4
10488
10582
  # Process the inner elements:
10489
10583
  while reader.forward do
10490
10584
  case reader.node_name
10585
+ when 'active_paths'
10586
+ object.active_paths = Reader.read_integer(reader)
10491
10587
  when 'address'
10492
10588
  object.address = Reader.read_string(reader)
10493
10589
  when 'discard_max_size'
@@ -13198,6 +13294,8 @@ module OvirtSDK4
13198
13294
  object.cmdline = value if not value.nil?
13199
13295
  value = reader.get_attribute('custom_kernel_cmdline')
13200
13296
  object.custom_kernel_cmdline = value if not value.nil?
13297
+ value = reader.get_attribute('description')
13298
+ object.description = value if not value.nil?
13201
13299
  value = reader.get_attribute('initrd')
13202
13300
  object.initrd = value if not value.nil?
13203
13301
  value = reader.get_attribute('kernel')
@@ -13221,6 +13319,8 @@ module OvirtSDK4
13221
13319
  object.cmdline = Reader.read_string(reader)
13222
13320
  when 'custom_kernel_cmdline'
13223
13321
  object.custom_kernel_cmdline = Reader.read_string(reader)
13322
+ when 'description'
13323
+ object.description = Reader.read_string(reader)
13224
13324
  when 'initrd'
13225
13325
  object.initrd = Reader.read_string(reader)
13226
13326
  when 'kernel'
@@ -20957,6 +21057,8 @@ module OvirtSDK4
20957
21057
  Reader.register('domains', DomainReader.method(:read_many))
20958
21058
  Reader.register('dynamic_cpu', DynamicCpuReader.method(:read_one))
20959
21059
  Reader.register('dynamic_cpus', DynamicCpuReader.method(:read_many))
21060
+ Reader.register('engine_backup_info', EngineBackupInfoReader.method(:read_one))
21061
+ Reader.register('engine_backup_infos', EngineBackupInfoReader.method(:read_many))
20960
21062
  Reader.register('entity_profile_detail', EntityProfileDetailReader.method(:read_one))
20961
21063
  Reader.register('entity_profile_details', EntityProfileDetailReader.method(:read_many))
20962
21064
  Reader.register('error_handling', ErrorHandlingReader.method(:read_one))