ovirt-engine-sdk 4.4.0 → 4.6.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -278,6 +278,9 @@ module OvirtSDK4
278
278
  class ExternalProviderCertificatesService < Service
279
279
  end
280
280
 
281
+ class ExternalTemplateImportsService < Service
282
+ end
283
+
281
284
  class ExternalVmImportsService < Service
282
285
  end
283
286
 
@@ -320,6 +323,9 @@ module OvirtSDK4
320
323
  class GroupsService < Service
321
324
  end
322
325
 
326
+ class HostCpuUnitsService < Service
327
+ end
328
+
323
329
  class HostDeviceService < Service
324
330
  end
325
331
 
@@ -698,6 +704,12 @@ module OvirtSDK4
698
704
  class TemplateGraphicsConsolesService < Service
699
705
  end
700
706
 
707
+ class TemplateMediatedDeviceService < Service
708
+ end
709
+
710
+ class TemplateMediatedDevicesService < Service
711
+ end
712
+
701
713
  class TemplateNicService < Service
702
714
  end
703
715
 
@@ -722,6 +734,12 @@ module OvirtSDK4
722
734
  class UserService < Service
723
735
  end
724
736
 
737
+ class UserOptionService < Service
738
+ end
739
+
740
+ class UserOptionsService < Service
741
+ end
742
+
725
743
  class UsersService < Service
726
744
  end
727
745
 
@@ -758,6 +776,18 @@ module OvirtSDK4
758
776
  class VmCdromsService < Service
759
777
  end
760
778
 
779
+ class VmCheckpointService < Service
780
+ end
781
+
782
+ class VmCheckpointDiskService < Service
783
+ end
784
+
785
+ class VmCheckpointDisksService < Service
786
+ end
787
+
788
+ class VmCheckpointsService < Service
789
+ end
790
+
761
791
  class VmDiskService < MeasurableService
762
792
  end
763
793
 
@@ -776,6 +806,12 @@ module OvirtSDK4
776
806
  class VmHostDevicesService < Service
777
807
  end
778
808
 
809
+ class VmMediatedDeviceService < Service
810
+ end
811
+
812
+ class VmMediatedDevicesService < Service
813
+ end
814
+
779
815
  class VmNicService < MeasurableService
780
816
  end
781
817
 
@@ -1312,14 +1348,14 @@ module OvirtSDK4
1312
1348
  end
1313
1349
 
1314
1350
  #
1315
- # Access the service that manages the host assignment to this affinity group.
1351
+ # Access the service that manages the host assignment to this affinity group by host id or name.
1316
1352
  #
1317
- # @param id [String] The identifier of the `host`.
1353
+ # @param id_or_name [String] The identifier of the `host`.
1318
1354
  #
1319
1355
  # @return [AffinityGroupHostService] A reference to the `host` service.
1320
1356
  #
1321
- def host_service(id)
1322
- AffinityGroupHostService.new(self, id)
1357
+ def host_service(id_or_name)
1358
+ AffinityGroupHostService.new(self, id_or_name)
1323
1359
  end
1324
1360
 
1325
1361
  #
@@ -3908,9 +3944,9 @@ module OvirtSDK4
3908
3944
  # Adds or registers a disk.
3909
3945
  #
3910
3946
  # IMPORTANT: Since version 4.2 of the engine this operation is deprecated, and preserved only for backwards
3911
- # compatibility. It will be removed in the future. To add a new disk use the <<services/disks/methods/add, add>>
3947
+ # compatibility. It will be removed in the future. To add a new disk use the xref:services-disks-methods-add[add]
3912
3948
  # operation of the service that manages the disks of the system. To register an unregistered disk use the
3913
- # <<services/attached_storage_domain_disk/methods/register, register>> operation of the service that manages
3949
+ # xref:services-attached_storage_domain_disk-methods-register[register] operation of the service that manages
3914
3950
  # that disk.
3915
3951
  #
3916
3952
  # @param disk [Disk] The disk to add or register.
@@ -4853,14 +4889,16 @@ module OvirtSDK4
4853
4889
 
4854
4890
  UPGRADE = [
4855
4891
  [:async, TrueClass].freeze,
4892
+ [:correlation_id, String].freeze,
4893
+ [:upgrade_percent_complete, Integer].freeze,
4856
4894
  ].freeze
4857
4895
 
4858
4896
  private_constant :UPGRADE
4859
4897
 
4860
4898
  #
4861
- # Start or finish upgrade process for the cluster based on the action value. This action marks the cluster for
4862
- # upgrade or clears the upgrade running flag on the cluster based on the action value which takes values of
4863
- # start or stop.
4899
+ # Start, update or finish upgrade process for the cluster based on the action value. This action marks the
4900
+ # cluster for upgrade, updates the progress, or clears the upgrade running flag on the cluster based on the
4901
+ # action value which takes values of `start`, `stop` or `update_progress`.
4864
4902
  #
4865
4903
  # [source]
4866
4904
  # ----
@@ -4878,12 +4916,32 @@ module OvirtSDK4
4878
4916
  # </action>
4879
4917
  # ----
4880
4918
  #
4919
+ # After starting the upgrade, use a request body like this to update the progress to 15%:
4920
+ #
4921
+ # [source,xml]
4922
+ # ----
4923
+ # <action>
4924
+ # <upgrade_action>
4925
+ # update_progress
4926
+ # </upgrade_action>
4927
+ # <upgrade_percent_complete>
4928
+ # 15
4929
+ # </upgrade_percent_complete>
4930
+ # </action>
4931
+ # ----
4932
+ #
4881
4933
  # @param opts [Hash] Additional options.
4882
4934
  #
4883
4935
  # @option opts [Boolean] :async Indicates if the action should be performed asynchronously.
4884
4936
  #
4937
+ # @option opts [String] :correlation_id Explicitly set the upgrade correlation identifier. Use to correlate events
4938
+ # detailing the cluster upgrade to the upgrade itself. If not specificed, the
4939
+ # correlation id from `Correlation-Id` http header will be used.
4940
+ #
4885
4941
  # @option opts [ClusterUpgradeAction] :upgrade_action The action to be performed.
4886
4942
  #
4943
+ # @option opts [Integer] :upgrade_percent_complete Update the upgrade's progress as a percent complete of the total process.
4944
+ #
4887
4945
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
4888
4946
  #
4889
4947
  # @option opts [Hash] :query ({}) Additional URL query parameters.
@@ -5066,7 +5124,7 @@ module OvirtSDK4
5066
5124
  # GET /ovirt-engine/api/clusters/123/enabledfeatures/456
5067
5125
  # ----
5068
5126
  #
5069
- # That will return a <<types/cluster_feature, ClusterFeature>> object containing the name:
5127
+ # That will return a xref:types-cluster_feature[ClusterFeature] object containing the name:
5070
5128
  #
5071
5129
  # [source,xml]
5072
5130
  # ----
@@ -5331,7 +5389,7 @@ module OvirtSDK4
5331
5389
  # GET /ovirt-engine/api/clusterlevels/4.1/clusterfeatures/456
5332
5390
  # ----
5333
5391
  #
5334
- # That will return a <<types/cluster_feature, ClusterFeature>> object containing the name:
5392
+ # That will return a xref:types-cluster_feature[ClusterFeature] object containing the name:
5335
5393
  #
5336
5394
  # [source,xml]
5337
5395
  # ----
@@ -5473,7 +5531,7 @@ module OvirtSDK4
5473
5531
  # GET /ovirt-engine/api/clusterlevels/3.6
5474
5532
  # ----
5475
5533
  #
5476
- # That will return a <<types/cluster_level, ClusterLevel>> object containing the supported CPU types, and other
5534
+ # That will return a xref:types-cluster_level[ClusterLevel] object containing the supported CPU types, and other
5477
5535
  # information which describes the cluster level:
5478
5536
  #
5479
5537
  # [source,xml]
@@ -6240,6 +6298,48 @@ module OvirtSDK4
6240
6298
 
6241
6299
  class DataCenterService < Service
6242
6300
 
6301
+ CLEAN_FINISHED_TASKS = [
6302
+ [:async, TrueClass].freeze,
6303
+ ].freeze
6304
+
6305
+ private_constant :CLEAN_FINISHED_TASKS
6306
+
6307
+ #
6308
+ # Currently, the storage pool manager (SPM) fails to
6309
+ # switch to another host if the SPM has uncleared tasks.
6310
+ # Clearing all finished tasks enables the SPM switching.
6311
+ #
6312
+ # For example, to clean all the finished tasks on a data center with ID `123` send a request like this:
6313
+ #
6314
+ # [source]
6315
+ # ----
6316
+ # POST /ovirt-engine/api/datacenters/123/cleanfinishedtasks
6317
+ # ----
6318
+ #
6319
+ # With a request body like this:
6320
+ #
6321
+ # [source,xml]
6322
+ # ----
6323
+ # <action/>
6324
+ # ----
6325
+ #
6326
+ # @param opts [Hash] Additional options.
6327
+ #
6328
+ # @option opts [Boolean] :async Indicates if the action should be performed asynchronously.
6329
+ #
6330
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
6331
+ #
6332
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
6333
+ #
6334
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
6335
+ # given then the timeout set globally for the connection will be used.
6336
+ #
6337
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
6338
+ #
6339
+ def clean_finished_tasks(opts = {})
6340
+ internal_action(:cleanfinishedtasks, nil, CLEAN_FINISHED_TASKS, opts)
6341
+ end
6342
+
6243
6343
  GET = [
6244
6344
  [:filter, TrueClass].freeze,
6245
6345
  [:follow, String].freeze,
@@ -6352,6 +6452,53 @@ module OvirtSDK4
6352
6452
  internal_remove(REMOVE, opts)
6353
6453
  end
6354
6454
 
6455
+ SET_MASTER = [
6456
+ [:async, TrueClass].freeze,
6457
+ [:storage_domain, StorageDomain].freeze,
6458
+ ].freeze
6459
+
6460
+ private_constant :SET_MASTER
6461
+
6462
+ #
6463
+ # Used for manually setting a storage domain in the data center as a master.
6464
+ # For example, for setting a storage domain with ID '456' as a master on a data center with ID '123',
6465
+ # send a request like this:
6466
+ #
6467
+ # [source]
6468
+ # ----
6469
+ # POST /ovirt-engine/api/datacenters/123/setmaster
6470
+ # ----
6471
+ #
6472
+ # With a request body like this:
6473
+ #
6474
+ # [source,xml]
6475
+ # ----
6476
+ # <action>
6477
+ # <storage_domain id="456"/>
6478
+ # </action>
6479
+ # ----
6480
+ #
6481
+ # The new master storage domain can be also specified by its name.
6482
+ #
6483
+ # @param opts [Hash] Additional options.
6484
+ #
6485
+ # @option opts [Boolean] :async Indicates if the action should be performed asynchronously.
6486
+ #
6487
+ # @option opts [StorageDomain] :storage_domain The new master storage domain for the data center.
6488
+ #
6489
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
6490
+ #
6491
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
6492
+ #
6493
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
6494
+ # given then the timeout set globally for the connection will be used.
6495
+ #
6496
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
6497
+ #
6498
+ def set_master(opts = {})
6499
+ internal_action(:setmaster, nil, SET_MASTER, opts)
6500
+ end
6501
+
6355
6502
  UPDATE = [
6356
6503
  [:async, TrueClass].freeze,
6357
6504
  ].freeze
@@ -7119,7 +7266,7 @@ module OvirtSDK4
7119
7266
  # POST /ovirt-engine/api/vms/345/diskattachments
7120
7267
  # ----
7121
7268
  #
7122
- # IMPORTANT: The server accepts requests that don't contain the `active` attribute, but the effect is
7269
+ # IMPORTANT: The server accepts requests that do not contain the `active` attribute, but the effect is
7123
7270
  # undefined. In some cases the disk will be automatically activated and in other cases it won't. To
7124
7271
  # avoid issues it is strongly recommended to always include the `active` attribute with the desired
7125
7272
  # value.
@@ -7545,6 +7692,8 @@ module OvirtSDK4
7545
7692
 
7546
7693
  LIST = [
7547
7694
  [:follow, String].freeze,
7695
+ [:include_active, TrueClass].freeze,
7696
+ [:include_template, TrueClass].freeze,
7548
7697
  [:max, Integer].freeze,
7549
7698
  ].freeze
7550
7699
 
@@ -7560,6 +7709,10 @@ module OvirtSDK4
7560
7709
  # @option opts [String] :follow Indicates which inner links should be _followed_. The objects referenced by these links will be fetched as part
7561
7710
  # of the current request. See <<documents/003_common_concepts/follow, here>> for details.
7562
7711
  #
7712
+ # @option opts [Boolean] :include_active If true return also active snapshots. If not specified active snapshots are not returned.
7713
+ #
7714
+ # @option opts [Boolean] :include_template If true return also template snapshots. If not specified template snapshots are not returned.
7715
+ #
7563
7716
  # @option opts [Integer] :max Sets the maximum number of snapshots to return. If not specified all the snapshots are returned.
7564
7717
  #
7565
7718
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
@@ -7618,20 +7771,20 @@ module OvirtSDK4
7618
7771
  #
7619
7772
  # Adds a new floating disk.
7620
7773
  #
7621
- # There are three types of disks that can be added - disk image, direct LUN and
7622
- # https://wiki.openstack.org/wiki/Cinder[Cinder] disk.
7774
+ # There are three types of disks that can be added - disk image, direct LUN and Managed Block disk.
7775
+ # link:https://wiki.openstack.org/wiki/Cinder[Cinder] integration has been replaced by Managed Block Storage.
7623
7776
  #
7624
7777
  # *Adding a new image disk:*
7625
7778
  #
7626
- # When creating a new floating image <<types/disk,Disk>>, the API requires the `storage_domain`, `provisioned_size`
7779
+ # When creating a new floating image xref:types-disk[Disk], the API requires the `storage_domain`, `provisioned_size`
7627
7780
  # and `format` attributes.
7628
7781
  #
7629
- # Note that block storage domains (i.e., storage domains with the <<types/storage_type, storage type>> of iSCSI or
7630
- # FCP) don't support the combination of the raw `format` with `sparse=true`, so `sparse=false` must be stated
7782
+ # Note that block storage domains (i.e. storage domains with the xref:types-storage_type[storage type] of iSCSI or
7783
+ # FCP) do not support the combination of the raw `format` with `sparse=true`, so `sparse=false` must be stated
7631
7784
  # explicitly.
7632
7785
  #
7633
7786
  # To create a new floating image disk with specified `provisioned_size`, `format` and `name` on a storage domain
7634
- # with an id `123`, send a request as follows:
7787
+ # with an id `123` and enabled for incremental backup, send a request as follows:
7635
7788
  #
7636
7789
  # [source]
7637
7790
  # ----
@@ -7649,6 +7802,7 @@ module OvirtSDK4
7649
7802
  # <name>mydisk</name>
7650
7803
  # <provisioned_size>1048576</provisioned_size>
7651
7804
  # <format>cow</format>
7805
+ # <backup>incremental</backup>
7652
7806
  # </disk>
7653
7807
  # ----
7654
7808
  #
@@ -7696,32 +7850,8 @@ module OvirtSDK4
7696
7850
  #
7697
7851
  # *Adding a new Cinder disk:*
7698
7852
  #
7699
- # To create a new floating Cinder disk, send a request as follows:
7700
- #
7701
- # [source]
7702
- # ----
7703
- # POST /ovirt-engine/api/disks
7704
- # ----
7705
- #
7706
- # With a request body as follows:
7707
- #
7708
- # [source,xml]
7709
- # ----
7710
- # <disk>
7711
- # <openstack_volume_type>
7712
- # <name>myceph</name>
7713
- # </openstack_volume_type>
7714
- # <storage_domains>
7715
- # <storage_domain>
7716
- # <name>cinderDomain</name>
7717
- # </storage_domain>
7718
- # </storage_domains>
7719
- # <provisioned_size>1073741824</provisioned_size>
7720
- # <interface>virtio</interface>
7721
- # <format>raw</format>
7722
- # </disk>
7723
- # ----
7724
- #
7853
+ # Cinder integration has been replaced by Managed Block Storage.
7854
+ # //TODO: Add an example for adding an MBS disk
7725
7855
  #
7726
7856
  # *Adding a floating disks in order to upload disk snapshots:*
7727
7857
  #
@@ -10138,6 +10268,73 @@ module OvirtSDK4
10138
10268
 
10139
10269
  end
10140
10270
 
10271
+ class ExternalTemplateImportsService < Service
10272
+
10273
+ ADD = [
10274
+ ].freeze
10275
+
10276
+ private_constant :ADD
10277
+
10278
+ #
10279
+ # This operation is used to import a template from external hypervisor.
10280
+ #
10281
+ # For example import of a template OVA can be facilitated using the following request:
10282
+ #
10283
+ # [source]
10284
+ # ----
10285
+ # POST /externaltemplateimports
10286
+ # ----
10287
+ #
10288
+ # With request body of type xref:types-external_template_import[ExternalTemplateImport], for example:
10289
+ #
10290
+ # [source,xml]
10291
+ # ----
10292
+ # <external_template_import>
10293
+ # <template>
10294
+ # <name>my_template</name>
10295
+ # </template>
10296
+ # <cluster id="2b18aca2-4469-11eb-9449-482ae35a5f83" />
10297
+ # <storage_domain id="8bb5ade5-e988-4000-8b93-dbfc6717fe50" />
10298
+ # <url>ova:///mnt/ova/ova_template.ova</url>
10299
+ # <host id="8bb5ade5-e988-4000-8b93-dbfc6717fe50" />
10300
+ # </external_template_import>
10301
+ # ----
10302
+ #
10303
+ # @param import [ExternalTemplateImport] The `import` to add.
10304
+ #
10305
+ # @param opts [Hash] Additional options.
10306
+ #
10307
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
10308
+ #
10309
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
10310
+ #
10311
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
10312
+ # given then the timeout set globally for the connection will be used.
10313
+ #
10314
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
10315
+ #
10316
+ # @return [ExternalTemplateImport]
10317
+ #
10318
+ def add(import, opts = {})
10319
+ internal_add(import, ExternalTemplateImport, ADD, opts)
10320
+ end
10321
+
10322
+ #
10323
+ # Locates the service corresponding to the given path.
10324
+ #
10325
+ # @param path [String] The path of the service.
10326
+ #
10327
+ # @return [Service] A reference to the service.
10328
+ #
10329
+ def service(path)
10330
+ if path.nil? || path == ''
10331
+ return self
10332
+ end
10333
+ raise Error.new("The path \"#{path}\" doesn't correspond to any service")
10334
+ end
10335
+
10336
+ end
10337
+
10141
10338
  class ExternalVmImportsService < Service
10142
10339
 
10143
10340
  ADD = [
@@ -10155,7 +10352,7 @@ module OvirtSDK4
10155
10352
  # POST /externalvmimports
10156
10353
  # ----
10157
10354
  #
10158
- # With request body of type <<types/external_vm_import,ExternalVmImport>>, for example:
10355
+ # With request body of type xref:types-external_vm_import[ExternalVmImport], for example:
10159
10356
  #
10160
10357
  # [source,xml]
10161
10358
  # ----
@@ -11034,8 +11231,8 @@ module OvirtSDK4
11034
11231
  #
11035
11232
  # Removing bricks is a two-step process, where the data on bricks to be removed, is first migrated to remaining
11036
11233
  # bricks. Once migration is completed the removal of bricks is confirmed via the API
11037
- # <<services/gluster_bricks/methods/remove, remove>>. If at any point, the action needs to be cancelled
11038
- # <<services/gluster_bricks/methods/stop_migrate, stopmigrate>> has to be called.
11234
+ # xref:services-gluster_bricks-methods-remove[remove]. If at any point, the action needs to be cancelled
11235
+ # xref:services-gluster_bricks-methods-stop_migrate[stopmigrate] has to be called.
11039
11236
  #
11040
11237
  # For instance, to delete a brick from a gluster volume with id `123`, send a request:
11041
11238
  #
@@ -11058,7 +11255,7 @@ module OvirtSDK4
11058
11255
  # ----
11059
11256
  #
11060
11257
  # The migration process can be tracked from the job id returned from the API using
11061
- # <<services/job/methods/get, job>> and steps in job using <<services/step/methods/get, step>>
11258
+ # xref:services-job-methods-get[job] and steps in job using xref:services-step-methods-get[step]
11062
11259
  #
11063
11260
  # @param opts [Hash] Additional options.
11064
11261
  #
@@ -11091,7 +11288,7 @@ module OvirtSDK4
11091
11288
  # Removes bricks from gluster volume.
11092
11289
  #
11093
11290
  # The recommended way to remove bricks without data loss is to first migrate the data using
11094
- # <<services/gluster_bricks/methods/stop_migrate, stopmigrate>> and then removing them. If migrate was not called on
11291
+ # xref:services-gluster_bricks-methods-stop_migrate[stopmigrate] and then removing them. If migrate was not called on
11095
11292
  # bricks prior to remove, the bricks are removed without data migration which may lead to data loss.
11096
11293
  #
11097
11294
  # For example, to delete the bricks from gluster volume `123`, send a request like this:
@@ -11167,7 +11364,7 @@ module OvirtSDK4
11167
11364
  # @option opts [Boolean] :async Indicates if the action should be performed asynchronously.
11168
11365
  #
11169
11366
  # @option opts [Array<GlusterBrick>] :bricks List of bricks for which data migration needs to be stopped. This list should match the arguments passed to
11170
- # <<services/gluster_bricks/methods/migrate, migrate>>.
11367
+ # xref:services-gluster_bricks-methods-migrate[migrate].
11171
11368
  #
11172
11369
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
11173
11370
  #
@@ -11886,6 +12083,55 @@ module OvirtSDK4
11886
12083
 
11887
12084
  end
11888
12085
 
12086
+ class HostCpuUnitsService < Service
12087
+
12088
+ LIST = [
12089
+ [:follow, String].freeze,
12090
+ ].freeze
12091
+
12092
+ private_constant :LIST
12093
+
12094
+ #
12095
+ # Returns the List of all host's CPUs with detailed information
12096
+ # about the topology (socket, core) and with information
12097
+ # about the current CPU pinning.
12098
+ #
12099
+ # @param opts [Hash] Additional options.
12100
+ #
12101
+ # @option opts [String] :follow Indicates which inner links should be _followed_. The objects referenced by these links will be fetched as part
12102
+ # of the current request. See <<documents/003_common_concepts/follow, here>> for details.
12103
+ #
12104
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
12105
+ #
12106
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
12107
+ #
12108
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
12109
+ # given then the timeout set globally for the connection will be used.
12110
+ #
12111
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
12112
+ #
12113
+ # @return [Array<HostCpuUnit>]
12114
+ #
12115
+ def list(opts = {})
12116
+ internal_get(LIST, opts)
12117
+ end
12118
+
12119
+ #
12120
+ # Locates the service corresponding to the given path.
12121
+ #
12122
+ # @param path [String] The path of the service.
12123
+ #
12124
+ # @return [Service] A reference to the service.
12125
+ #
12126
+ def service(path)
12127
+ if path.nil? || path == ''
12128
+ return self
12129
+ end
12130
+ raise Error.new("The path \"#{path}\" doesn't correspond to any service")
12131
+ end
12132
+
12133
+ end
12134
+
11889
12135
  class HostDeviceService < Service
11890
12136
 
11891
12137
  GET = [
@@ -12421,6 +12667,7 @@ module OvirtSDK4
12421
12667
  ADD = [
12422
12668
  [:activate, TrueClass].freeze,
12423
12669
  [:deploy_hosted_engine, TrueClass].freeze,
12670
+ [:reboot, TrueClass].freeze,
12424
12671
  [:undeploy_hosted_engine, TrueClass].freeze,
12425
12672
  ].freeze
12426
12673
 
@@ -12504,6 +12751,8 @@ module OvirtSDK4
12504
12751
  # as `true`, i.e., deploy the hosted engine components. Omitting this parameter equals `false`, and
12505
12752
  # the host performs no operation in the hosted engine area.
12506
12753
  #
12754
+ # @option opts [Boolean] :reboot Indicates if the host should be rebooted after successful installation. The default value is `true`.
12755
+ #
12507
12756
  # @option opts [Boolean] :undeploy_hosted_engine When set to `true`, this host un-deploys the hosted engine components and does not
12508
12757
  # function as part of the High Availability cluster. A missing value is treated as `true`, i.e., un-deploy.
12509
12758
  # Omitting this parameter equals `false` and the host performs no operation in the hosted engine area.
@@ -12636,6 +12885,7 @@ module OvirtSDK4
12636
12885
  ADD_USING_ROOT_PASSWORD = [
12637
12886
  [:activate, TrueClass].freeze,
12638
12887
  [:deploy_hosted_engine, TrueClass].freeze,
12888
+ [:reboot, TrueClass].freeze,
12639
12889
  [:undeploy_hosted_engine, TrueClass].freeze,
12640
12890
  ].freeze
12641
12891
 
@@ -12657,6 +12907,8 @@ module OvirtSDK4
12657
12907
  # as `true`, i.e., deploy the hosted engine components. Omitting this parameter equals `false`, and
12658
12908
  # the host performs no operation in the hosted engine area.
12659
12909
  #
12910
+ # @option opts [Boolean] :reboot Indicates if the host should be rebooted after successful installation. The default value is `true`.
12911
+ #
12660
12912
  # @option opts [Boolean] :undeploy_hosted_engine When set to `true`, this host un-deploys the hosted engine components and does not
12661
12913
  # function as part of the High Availability cluster. A missing value is treated as `true`, i.e., un-deploy.
12662
12914
  # Omitting this parameter equals `false` and the host performs no operation in the hosted engine area.
@@ -12679,13 +12931,14 @@ module OvirtSDK4
12679
12931
  ADD_USING_SSH = [
12680
12932
  [:activate, TrueClass].freeze,
12681
12933
  [:deploy_hosted_engine, TrueClass].freeze,
12934
+ [:reboot, TrueClass].freeze,
12682
12935
  [:undeploy_hosted_engine, TrueClass].freeze,
12683
12936
  ].freeze
12684
12937
 
12685
12938
  private_constant :ADD_USING_SSH
12686
12939
 
12687
12940
  #
12688
- # Add a new host to the system providing the ssh password or fingerprint.
12941
+ # Add a new host to the system providing the ssh password, fingerprint or public key.
12689
12942
  #
12690
12943
  # @param host [Host] The host definition with which the new host is created is passed as a parameter, and the newly created host
12691
12944
  # is returned.
@@ -12700,6 +12953,8 @@ module OvirtSDK4
12700
12953
  # as `true`, i.e., deploy the hosted engine components. Omitting this parameter equals `false`, and
12701
12954
  # the host performs no operation in the hosted engine area.
12702
12955
  #
12956
+ # @option opts [Boolean] :reboot Indicates if the host should be rebooted after successful installation. The default value is `true`.
12957
+ #
12703
12958
  # @option opts [Boolean] :undeploy_hosted_engine When set to `true`, this host un-deploys the hosted engine components and does not
12704
12959
  # function as part of the High Availability cluster. A missing value is treated as `true`, i.e., un-deploy.
12705
12960
  # Omitting this parameter equals `false` and the host performs no operation in the hosted engine area.
@@ -15366,6 +15621,15 @@ module OvirtSDK4
15366
15621
  internal_update(pool, MacPool, UPDATE, opts)
15367
15622
  end
15368
15623
 
15624
+ #
15625
+ # Returns a reference to the service that manages the permissions that are associated with the MacPool.
15626
+ #
15627
+ # @return [AssignedPermissionsService] A reference to `permissions` service.
15628
+ #
15629
+ def permissions_service
15630
+ @permissions_service ||= AssignedPermissionsService.new(self, 'permissions')
15631
+ end
15632
+
15369
15633
  #
15370
15634
  # Locates the service corresponding to the given path.
15371
15635
  #
@@ -15377,6 +15641,12 @@ module OvirtSDK4
15377
15641
  if path.nil? || path == ''
15378
15642
  return self
15379
15643
  end
15644
+ if path == 'permissions'
15645
+ return permissions_service
15646
+ end
15647
+ if path.start_with?('permissions/')
15648
+ return permissions_service.service(path[12..-1])
15649
+ end
15380
15650
  raise Error.new("The path \"#{path}\" doesn't correspond to any service")
15381
15651
  end
15382
15652
 
@@ -15665,9 +15935,9 @@ module OvirtSDK4
15665
15935
  # ----
15666
15936
  #
15667
15937
  # NOTE: To remove an external logical network, the network has to be removed directly from its provider by
15668
- # https://developer.openstack.org/api-ref/network[OpenStack Networking API].
15938
+ # link:https://developer.openstack.org/api-ref/network[OpenStack Networking API].
15669
15939
  # The entity representing the external network inside {product-name} is removed automatically,
15670
- # if <<types/open_stack_network_provider/attributes/auto_sync,`auto_sync`>> is enabled for the provider,
15940
+ # if xref:types-open_stack_network_provider-attributes-auto_sync[`auto_sync`] is enabled for the provider,
15671
15941
  # otherwise the entity has to be removed using this method.
15672
15942
  #
15673
15943
  # @param opts [Hash] Additional options.
@@ -17243,7 +17513,7 @@ module OvirtSDK4
17243
17513
  # using the `id` or `name` attributes. The rest of
17244
17514
  # the attributes will be ignored.
17245
17515
  #
17246
- # NOTE: If <<types/open_stack_network_provider/attributes/auto_sync,`auto_sync`>> is
17516
+ # NOTE: If xref:types-open_stack_network_provider-attributes-auto_sync[`auto_sync`] is
17247
17517
  # enabled for the provider, the network might be imported automatically. To
17248
17518
  # prevent this, automatic import can be disabled by setting the `auto_sync` to false,
17249
17519
  # and enabling it again after importing the network.
@@ -18771,7 +19041,7 @@ module OvirtSDK4
18771
19041
  private_constant :ADD
18772
19042
 
18773
19043
  #
18774
- # Adds a permit to the role. The permit name can be retrieved from the <<services/cluster_levels>> service.
19044
+ # Adds a permit to the role. The permit name can be retrieved from the xref:services-cluster_levels[cluster_levels] service.
18775
19045
  #
18776
19046
  # For example to assign a permit `create_vm` to the role with id `123` send a request like this:
18777
19047
  #
@@ -19931,7 +20201,7 @@ module OvirtSDK4
19931
20201
  #
19932
20202
  # Updates a role. You are allowed to update `name`, `description` and `administrative` attributes after role is
19933
20203
  # created. Within this endpoint you can't add or remove roles permits you need to use
19934
- # <<services/permits, service>> that manages permits of role.
20204
+ # xref:services-permits[service] that manages permits of role.
19935
20205
  #
19936
20206
  # For example to update role's `name`, `description` and `administrative` attributes send a request like this:
19937
20207
  #
@@ -20623,6 +20893,7 @@ module OvirtSDK4
20623
20893
  # ----
20624
20894
  # <action/>
20625
20895
  # ----
20896
+ # NOTE: Confirm that the commit operation is finished and the virtual machine is down before running the virtual machine.
20626
20897
  #
20627
20898
  # @param opts [Hash] Additional options.
20628
20899
  #
@@ -21124,8 +21395,8 @@ module OvirtSDK4
21124
21395
  #
21125
21396
  # [IMPORTANT]
21126
21397
  # ====
21127
- # When a snapshot is created the default value for the <<types/snapshot/attributes/persist_memorystate,
21128
- # persist_memorystate>> attribute is `true`. That means that the content of the memory of the virtual
21398
+ # When a snapshot is created, the default value for the
21399
+ # xref:types-snapshot-attributes-persist_memorystate[persist_memorystate] attribute is `true`. That means that the content of the memory of the virtual
21129
21400
  # machine will be included in the snapshot, and it also means that the virtual machine will be paused
21130
21401
  # for a longer time. That can negatively affect applications that are very sensitive to timing (NTP
21131
21402
  # servers, for example). In those cases make sure that you set the attribute to `false`:
@@ -21298,7 +21569,10 @@ module OvirtSDK4
21298
21569
  private_constant :UPDATE
21299
21570
 
21300
21571
  #
21301
- # Updates the `key`.
21572
+ # Replaces the key with a new resource.
21573
+ #
21574
+ # IMPORTANT: Since version 4.4.8 of the engine this operation is deprecated, and preserved only for backwards
21575
+ # compatibility. It will be removed in the future. Instead please use DELETE followed by xref:services-ssh_public_keys-methods-add[add operation].
21302
21576
  #
21303
21577
  # @param key [SshPublicKey] The `key` to update.
21304
21578
  # @param opts [Hash] Additional options.
@@ -22134,7 +22408,7 @@ module OvirtSDK4
22134
22408
  # ----
22135
22409
  #
22136
22410
  # Note that this operation is only applicable to block storage domains (i.e., storage domains with the
22137
- # <<types/storage_type, storage type> of iSCSI or FCP).
22411
+ # xref:types-storage_type[storage type] of iSCSI or FCP).
22138
22412
  #
22139
22413
  # @param opts [Hash] Additional options.
22140
22414
  #
@@ -22284,7 +22558,7 @@ module OvirtSDK4
22284
22558
  #
22285
22559
  # Updates a storage domain.
22286
22560
  #
22287
- # Not all of the <<types/storage_domain,StorageDomain>>'s attributes are updatable after creation. Those that can be
22561
+ # Not all of the xref:types-storage_domain[StorageDomain]'s attributes are updatable after creation. Those that can be
22288
22562
  # updated are: `name`, `description`, `comment`, `warning_low_space_indicator`, `critical_space_action_blocker` and
22289
22563
  # `wipe_after_delete.` (Note that changing the `wipe_after_delete` attribute will not change the wipe after delete
22290
22564
  # property of disks that already exist).
@@ -22658,7 +22932,7 @@ module OvirtSDK4
22658
22932
  # Copies a disk to the specified storage domain.
22659
22933
  #
22660
22934
  # IMPORTANT: Since version 4.2 of the engine this operation is deprecated, and preserved only for backwards
22661
- # compatibility. It will be removed in the future. To copy a disk use the <<services/disk/methods/copy, copy>>
22935
+ # compatibility. It will be removed in the future. To copy a disk use the xref:services-disk-methods-copy[copy]
22662
22936
  # operation of the service that manages that disk.
22663
22937
  #
22664
22938
  # @param opts [Hash] Additional options.
@@ -22690,7 +22964,7 @@ module OvirtSDK4
22690
22964
  # Exports a disk to an export storage domain.
22691
22965
  #
22692
22966
  # IMPORTANT: Since version 4.2 of the engine this operation is deprecated, and preserved only for backwards
22693
- # compatibility. It will be removed in the future. To export a disk use the <<services/disk/methods/export, export>>
22967
+ # compatibility. It will be removed in the future. To export a disk use the xref:services-disk-methods-export[export]
22694
22968
  # operation of the service that manages that disk.
22695
22969
  #
22696
22970
  # @param opts [Hash] Additional options.
@@ -22751,7 +23025,7 @@ module OvirtSDK4
22751
23025
  # Moves a disk to another storage domain.
22752
23026
  #
22753
23027
  # IMPORTANT: Since version 4.2 of the engine this operation is deprecated, and preserved only for backwards
22754
- # compatibility. It will be removed in the future. To move a disk use the <<services/disk/methods/move, move>>
23028
+ # compatibility. It will be removed in the future. To move a disk use the xref:services-disk-methods-move[move]
22755
23029
  # operation of the service that manages that disk.
22756
23030
  #
22757
23031
  # @param opts [Hash] Additional options.
@@ -22814,7 +23088,7 @@ module OvirtSDK4
22814
23088
  # Removes a disk.
22815
23089
  #
22816
23090
  # IMPORTANT: Since version 4.2 of the engine this operation is deprecated, and preserved only for backwards
22817
- # compatibility. It will be removed in the future. To remove a disk use the <<services/disk/methods/remove, remove>>
23091
+ # compatibility. It will be removed in the future. To remove a disk use the xref:services-disk-methods-remove[remove]
22818
23092
  # operation of the service that manages that disk.
22819
23093
  #
22820
23094
  # @param opts [Hash] Additional options.
@@ -22841,7 +23115,7 @@ module OvirtSDK4
22841
23115
  # Sparsify the disk.
22842
23116
  #
22843
23117
  # IMPORTANT: Since version 4.2 of the engine this operation is deprecated, and preserved only for backwards
22844
- # compatibility. It will be removed in the future. To remove a disk use the <<services/disk/methods/remove, remove>>
23118
+ # compatibility. It will be removed in the future. To remove a disk use the xref:services-disk-methods-remove[remove]
22845
23119
  # operation of the service that manages that disk.
22846
23120
  #
22847
23121
  # @param opts [Hash] Additional options.
@@ -22869,7 +23143,7 @@ module OvirtSDK4
22869
23143
  #
22870
23144
  # IMPORTANT: Since version 4.2 of the engine this operation is deprecated, and preserved only for backwards
22871
23145
  # compatibility. It will be removed in the future. To update a disk use the
22872
- # <<services/disk/methods/update, update>> operation of the service that manages that disk.
23146
+ # xref:services-disk-methods-update[update] operation of the service that manages that disk.
22873
23147
  #
22874
23148
  # @param disk [Disk] The update to apply to the disk.
22875
23149
  # @param opts [Hash] Additional options.
@@ -22947,9 +23221,9 @@ module OvirtSDK4
22947
23221
  # Adds or registers a disk.
22948
23222
  #
22949
23223
  # IMPORTANT: Since version 4.2 of the {engine-name} this operation is deprecated, and preserved only for backwards
22950
- # compatibility. It will be removed in the future. To add a new disk use the <<services/disks/methods/add, add>>
23224
+ # compatibility. It will be removed in the future. To add a new disk use the xref:services-disks-methods-add[add]
22951
23225
  # operation of the service that manages the disks of the system. To register an unregistered disk use the
22952
- # <<services/attached_storage_domain_disk/methods/register, register>> operation of the service that manages
23226
+ # xref:services-attached_storage_domain_disk-methods-register[register] operation of the service that manages
22953
23227
  # that disk.
22954
23228
  #
22955
23229
  # @param disk [Disk] The disk to add or register.
@@ -23402,7 +23676,7 @@ module OvirtSDK4
23402
23676
  #
23403
23677
  # WARNING: Please note that this attribute has been deprecated since version 4.2.1 of the engine, and preserved only for backward
23404
23678
  # compatibility. It will be removed in the future. To specify `vnic_profile_mappings` use the `vnic_profile_mappings`
23405
- # attribute inside the <<types/registration_configuration, RegistrationConfiguration>> type.
23679
+ # attribute inside the xref:types-registration_configuration[RegistrationConfiguration] type.
23406
23680
  #
23407
23681
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
23408
23682
  #
@@ -23752,7 +24026,7 @@ module OvirtSDK4
23752
24026
  #
23753
24027
  # WARNING: Please note that this attribute has been deprecated since version 4.2.1 of the engine, and preserved only for backward
23754
24028
  # compatibility. It will be removed in the future. To specify `vnic_profile_mappings` use the `vnic_profile_mappings`
23755
- # attribute inside the <<types/registration_configuration, RegistrationConfiguration>> type.
24029
+ # attribute inside the xref:types-registration_configuration[RegistrationConfiguration] type.
23756
24030
  #
23757
24031
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
23758
24032
  #
@@ -24047,7 +24321,7 @@ module OvirtSDK4
24047
24321
  #
24048
24322
  # Adds a new storage domain.
24049
24323
  #
24050
- # Creation of a new <<types/storage_domain,StorageDomain>> requires the `name`, `type`, `host`, and `storage`
24324
+ # Creation of a new xref:types-storage_domain[StorageDomain] requires the `name`, `type`, `host`, and `storage`
24051
24325
  # attributes. Identify the `host` attribute with the `id` or `name` attributes. In {product-name} 3.6 and
24052
24326
  # later you can enable the wipe after delete option by default on the storage domain. To configure this, specify
24053
24327
  # `wipe_after_delete` in the POST request. This option can be edited after the domain is created, but doing so will
@@ -25395,6 +25669,15 @@ module OvirtSDK4
25395
25669
  @external_host_providers_service ||= ExternalHostProvidersService.new(self, 'externalhostproviders')
25396
25670
  end
25397
25671
 
25672
+ #
25673
+ # Reference to service facilitating import of external templates.
25674
+ #
25675
+ # @return [ExternalTemplateImportsService] A reference to `external_template_imports` service.
25676
+ #
25677
+ def external_template_imports_service
25678
+ @external_template_imports_service ||= ExternalTemplateImportsService.new(self, 'externaltemplateimports')
25679
+ end
25680
+
25398
25681
  #
25399
25682
  # Reference to service facilitating import of external virtual machines.
25400
25683
  #
@@ -25725,6 +26008,12 @@ module OvirtSDK4
25725
26008
  if path.start_with?('externalhostproviders/')
25726
26009
  return external_host_providers_service.service(path[22..-1])
25727
26010
  end
26011
+ if path == 'externaltemplateimports'
26012
+ return external_template_imports_service
26013
+ end
26014
+ if path.start_with?('externaltemplateimports/')
26015
+ return external_template_imports_service.service(path[24..-1])
26016
+ end
25728
26017
  if path == 'externalvmimports'
25729
26018
  return external_vm_imports_service
25730
26019
  end
@@ -25909,37 +26198,46 @@ module OvirtSDK4
25909
26198
  #
25910
26199
  # Get the values of specific configuration option.
25911
26200
  #
25912
- # For example to retrieve the values of configuration option `MigrationPoliciesSupported` send a request like this:
26201
+ # For example to retrieve the values of configuration option `MigrationPolicies` send a request like this:
25913
26202
  #
25914
26203
  # [source]
25915
26204
  # ----
25916
- # GET /ovirt-engine/api/options/MigrationPoliciesSupported
26205
+ # GET /ovirt-engine/api/options/MigrationPolicies
25917
26206
  # ----
25918
26207
  #
25919
26208
  # The response to that request will be the following:
25920
26209
  #
25921
26210
  # [source,xml]
25922
26211
  # ----
25923
- # <system_option href="/ovirt-engine/api/options/MigrationPoliciesSupported" id="MigrationPoliciesSupported">
25924
- # <name>MigrationPoliciesSupported</name>
25925
- # <values>
25926
- # <system_option_value>
25927
- # <value>true</value>
25928
- # <version>4.0</version>
25929
- # </system_option_value>
25930
- # <system_option_value>
25931
- # <value>true</value>
25932
- # <version>4.1</version>
25933
- # </system_option_value>
25934
- # <system_option_value>
25935
- # <value>true</value>
25936
- # <version>4.2</version>
25937
- # </system_option_value>
25938
- # <system_option_value>
25939
- # <value>false</value>
25940
- # <version>3.6</version>
25941
- # </system_option_value>
25942
- # </values>
26212
+ # <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
26213
+ # <system_option href="/ovirt-engine/api/options/MigrationPolicies" id="MigrationPolicies">
26214
+ # <name>MigrationPolicies</name>
26215
+ # <values>
26216
+ # <system_option_value>
26217
+ # <value>[{"id":{"uuid":"80554327-0569-496b-bdeb-fcbbf52b827b"},...}]</value>
26218
+ # <version>4.2</version>
26219
+ # </system_option_value>
26220
+ # <system_option_value>
26221
+ # <value>[{"id":{"uuid":"80554327-0569-496b-bdeb-fcbbf52b827b"},...}]</value>
26222
+ # <version>4.3</version>
26223
+ # </system_option_value>
26224
+ # <system_option_value>
26225
+ # <value>[{"id":{"uuid":"80554327-0569-496b-bdeb-fcbbf52b827b"},...}]</value>
26226
+ # <version>4.4</version>
26227
+ # </system_option_value>
26228
+ # <system_option_value>
26229
+ # <value>[{"id":{"uuid":"80554327-0569-496b-bdeb-fcbbf52b827b"},...}]</value>
26230
+ # <version>4.5</version>
26231
+ # </system_option_value>
26232
+ # <system_option_value>
26233
+ # <value>[{"id":{"uuid":"80554327-0569-496b-bdeb-fcbbf52b827b"},...}]</value>
26234
+ # <version>4.6</version>
26235
+ # </system_option_value>
26236
+ # <system_option_value>
26237
+ # <value>[{"id":{"uuid":"80554327-0569-496b-bdeb-fcbbf52b827b"},...}]</value>
26238
+ # <version>4.7</version>
26239
+ # </system_option_value>
26240
+ # </values>
25943
26241
  # </system_option>
25944
26242
  # ----
25945
26243
  #
@@ -25962,26 +26260,26 @@ module OvirtSDK4
25962
26260
  # should be returned.
25963
26261
  # If this parameter isn't used then all the versions will be returned.
25964
26262
  #
25965
- # For example, to get the value of the `MigrationPoliciesSupported` option but only for version `4.2` send
26263
+ # For example, to get the value of the `MigrationPolicies` option but only for version `4.2` send
25966
26264
  # a request like this:
25967
26265
  #
25968
26266
  # [source]
25969
26267
  # ----
25970
- # GET /ovirt-engine/api/options/MigrationPoliciesSupported?version=4.2
26268
+ # GET /ovirt-engine/api/options/MigrationPolicies?version=4.2
25971
26269
  # ----
25972
26270
  #
25973
26271
  # The response to that request will be like this:
25974
26272
  #
25975
26273
  # [source,xml]
25976
26274
  # ----
25977
- # <system_option href="/ovirt-engine/api/options/MigrationPoliciesSupported" id="MigrationPoliciesSupported">
25978
- # <name>MigrationPoliciesSupported</name>
25979
- # <values>
25980
- # <system_option_value>
25981
- # <value>true</value>
25982
- # <version>4.2</version>
25983
- # </system_option_value>
25984
- # </values>
26275
+ # <system_option href="/ovirt-engine/api/options/MigrationPolicies" id="MigrationPolicies">
26276
+ # <name>MigrationPolicies</name>
26277
+ # <values>
26278
+ # <system_option_value>
26279
+ # <value>[{"id":{"uuid":"80554327-0569-496b-bdeb-fcbbf52b827b"},...}]</value>
26280
+ # <version>4.2</version>
26281
+ # </system_option_value>
26282
+ # </values>
25985
26283
  # </system_option>
25986
26284
  # ----
25987
26285
  #
@@ -26797,6 +27095,27 @@ module OvirtSDK4
26797
27095
  # </action>
26798
27096
  # ----
26799
27097
  #
27098
+ # Since version 4.2 of the engine it is also possible to export a template as a virtual appliance (OVA).
27099
+ # For example, to export template `123` as an OVA file named `myvm.ova` that is placed in the directory `/home/ovirt/` on host `myhost`:
27100
+ #
27101
+ # [source]
27102
+ # ----
27103
+ # POST /ovirt-engine/api/templates/123/export
27104
+ # ----
27105
+ #
27106
+ # With a request body like this:
27107
+ #
27108
+ # [source,xml]
27109
+ # ----
27110
+ # <action>
27111
+ # <host>
27112
+ # <name>myhost</name>
27113
+ # </host>
27114
+ # <directory>/home/ovirt</directory>
27115
+ # <filename>myvm.ova</filename>
27116
+ # </action>
27117
+ # ----
27118
+ #
26800
27119
  # @param opts [Hash] Additional options.
26801
27120
  #
26802
27121
  # @option opts [Boolean] :exclusive Indicates if the existing templates with the same name should be overwritten.
@@ -27045,6 +27364,15 @@ module OvirtSDK4
27045
27364
  @graphics_consoles_service ||= TemplateGraphicsConsolesService.new(self, 'graphicsconsoles')
27046
27365
  end
27047
27366
 
27367
+ #
27368
+ # Reference to the service that manages mediated devices associated with the template.
27369
+ #
27370
+ # @return [TemplateMediatedDevicesService] A reference to `mediated_devices` service.
27371
+ #
27372
+ def mediated_devices_service
27373
+ @mediated_devices_service ||= TemplateMediatedDevicesService.new(self, 'mediateddevices')
27374
+ end
27375
+
27048
27376
  #
27049
27377
  # Returns a reference to the service that manages the NICs that are associated with the template.
27050
27378
  #
@@ -27110,6 +27438,12 @@ module OvirtSDK4
27110
27438
  if path.start_with?('graphicsconsoles/')
27111
27439
  return graphics_consoles_service.service(path[17..-1])
27112
27440
  end
27441
+ if path == 'mediateddevices'
27442
+ return mediated_devices_service
27443
+ end
27444
+ if path.start_with?('mediateddevices/')
27445
+ return mediated_devices_service.service(path[16..-1])
27446
+ end
27113
27447
  if path == 'nics'
27114
27448
  return nics_service
27115
27449
  end
@@ -27776,6 +28110,238 @@ module OvirtSDK4
27776
28110
 
27777
28111
  end
27778
28112
 
28113
+ class TemplateMediatedDeviceService < Service
28114
+
28115
+ GET = [
28116
+ [:follow, String].freeze,
28117
+ ].freeze
28118
+
28119
+ private_constant :GET
28120
+
28121
+ #
28122
+ # Gets mediated device configuration of the template.
28123
+ #
28124
+ # @param opts [Hash] Additional options.
28125
+ #
28126
+ # @option opts [String] :follow Indicates which inner links should be _followed_. The objects referenced by these links will be fetched as part
28127
+ # of the current request. See <<documents/003_common_concepts/follow, here>> for details.
28128
+ #
28129
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
28130
+ #
28131
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
28132
+ #
28133
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
28134
+ # given then the timeout set globally for the connection will be used.
28135
+ #
28136
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
28137
+ #
28138
+ # @return [VmMediatedDevice]
28139
+ #
28140
+ def get(opts = {})
28141
+ internal_get(GET, opts)
28142
+ end
28143
+
28144
+ REMOVE = [
28145
+ [:async, TrueClass].freeze,
28146
+ ].freeze
28147
+
28148
+ private_constant :REMOVE
28149
+
28150
+ #
28151
+ # Remove the mediated device from the template.
28152
+ #
28153
+ # @param opts [Hash] Additional options.
28154
+ #
28155
+ # @option opts [Boolean] :async Indicates if the remove should be performed asynchronously.
28156
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
28157
+ #
28158
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
28159
+ #
28160
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
28161
+ # given then the timeout set globally for the connection will be used.
28162
+ #
28163
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
28164
+ #
28165
+ def remove(opts = {})
28166
+ internal_remove(REMOVE, opts)
28167
+ end
28168
+
28169
+ UPDATE = [
28170
+ [:async, TrueClass].freeze,
28171
+ ].freeze
28172
+
28173
+ private_constant :UPDATE
28174
+
28175
+ #
28176
+ # Updates the information about the mediated device.
28177
+ #
28178
+ # You can update the information using `specParams` element.
28179
+ #
28180
+ # For example, to update a mediated device, send a request like this:
28181
+ #
28182
+ # [source]
28183
+ # ----
28184
+ # PUT /ovirt-engine/api/templates/123/mediateddevices/00000000-0000-0000-0000-000000000000
28185
+ # <vm_mediated_device>
28186
+ # <spec_params>
28187
+ # <property>
28188
+ # <name>mdevType</name>
28189
+ # <value>nvidia-11</value>
28190
+ # </property>
28191
+ # </spec_params>
28192
+ # </vm_mediated_device>
28193
+ # ----
28194
+ #
28195
+ # with response body:
28196
+ #
28197
+ # [source,xml]
28198
+ # ----
28199
+ # <vm_mediated_device href="/ovirt-engine/api/templates/123/mediateddevices/00000000-0000-0000-0000-000000000000" id="00000000-0000-0000-0000-000000000000">
28200
+ # <template href="/ovirt-engine/api/templates/123" id="123"/>
28201
+ # <spec_params>
28202
+ # <property>
28203
+ # <name>mdevType</name>
28204
+ # <value>nvidia-11</value>
28205
+ # </property>
28206
+ # </spec_params>
28207
+ # </vm_mediated_device>
28208
+ # ----
28209
+ #
28210
+ # @param devices [VmMediatedDevice] The information about the mediated device.
28211
+ #
28212
+ # The request data must contain `specParams` properties.
28213
+ # The response data contains complete information about the
28214
+ # updated mediated device.
28215
+ # @param opts [Hash] Additional options.
28216
+ #
28217
+ # @option opts [Boolean] :async Indicates if the update should be performed asynchronously.
28218
+ #
28219
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
28220
+ #
28221
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
28222
+ #
28223
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
28224
+ # given then the timeout set globally for the connection will be used.
28225
+ #
28226
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
28227
+ #
28228
+ # @return [VmMediatedDevice]
28229
+ #
28230
+ def update(devices, opts = {})
28231
+ internal_update(devices, VmMediatedDevice, UPDATE, opts)
28232
+ end
28233
+
28234
+ #
28235
+ # Locates the service corresponding to the given path.
28236
+ #
28237
+ # @param path [String] The path of the service.
28238
+ #
28239
+ # @return [Service] A reference to the service.
28240
+ #
28241
+ def service(path)
28242
+ if path.nil? || path == ''
28243
+ return self
28244
+ end
28245
+ raise Error.new("The path \"#{path}\" doesn't correspond to any service")
28246
+ end
28247
+
28248
+ end
28249
+
28250
+ class TemplateMediatedDevicesService < Service
28251
+
28252
+ ADD = [
28253
+ ].freeze
28254
+
28255
+ private_constant :ADD
28256
+
28257
+ #
28258
+ # Add new mediated device to the template.
28259
+ #
28260
+ # @param device [VmMediatedDevice] The `device` to add.
28261
+ #
28262
+ # @param opts [Hash] Additional options.
28263
+ #
28264
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
28265
+ #
28266
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
28267
+ #
28268
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
28269
+ # given then the timeout set globally for the connection will be used.
28270
+ #
28271
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
28272
+ #
28273
+ # @return [VmMediatedDevice]
28274
+ #
28275
+ def add(device, opts = {})
28276
+ internal_add(device, VmMediatedDevice, ADD, opts)
28277
+ end
28278
+
28279
+ LIST = [
28280
+ [:follow, String].freeze,
28281
+ [:max, Integer].freeze,
28282
+ ].freeze
28283
+
28284
+ private_constant :LIST
28285
+
28286
+ #
28287
+ # Lists all the configured mediated devices of the template.
28288
+ #
28289
+ # The order of the returned list of mediated devices isn't guaranteed.
28290
+ #
28291
+ # @param opts [Hash] Additional options.
28292
+ #
28293
+ # @option opts [String] :follow Indicates which inner links should be _followed_. The objects referenced by these links will be fetched as part
28294
+ # of the current request. See <<documents/003_common_concepts/follow, here>> for details.
28295
+ #
28296
+ # @option opts [Integer] :max Sets the maximum number of mediated devices to return.
28297
+ # If not specified all the mediated devices are returned.
28298
+ #
28299
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
28300
+ #
28301
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
28302
+ #
28303
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
28304
+ # given then the timeout set globally for the connection will be used.
28305
+ #
28306
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
28307
+ #
28308
+ # @return [Array<VmMediatedDevice>]
28309
+ #
28310
+ def list(opts = {})
28311
+ internal_get(LIST, opts)
28312
+ end
28313
+
28314
+ #
28315
+ # Returns a reference to the service that manages a mediated device of a template.
28316
+ #
28317
+ # @param id [String] The identifier of the `device`.
28318
+ #
28319
+ # @return [TemplateMediatedDeviceService] A reference to the `device` service.
28320
+ #
28321
+ def device_service(id)
28322
+ TemplateMediatedDeviceService.new(self, id)
28323
+ end
28324
+
28325
+ #
28326
+ # Locates the service corresponding to the given path.
28327
+ #
28328
+ # @param path [String] The path of the service.
28329
+ #
28330
+ # @return [Service] A reference to the service.
28331
+ #
28332
+ def service(path)
28333
+ if path.nil? || path == ''
28334
+ return self
28335
+ end
28336
+ index = path.index('/')
28337
+ if index.nil?
28338
+ return device_service(path)
28339
+ end
28340
+ return device_service(path[0..(index - 1)]).service(path[(index + 1)..-1])
28341
+ end
28342
+
28343
+ end
28344
+
27779
28345
  class TemplateNicService < Service
27780
28346
 
27781
28347
  GET = [
@@ -28215,7 +28781,7 @@ module OvirtSDK4
28215
28781
  # original virtual machine. To do so use the `vm.disk_attachments` attribute, specifying the identifier of the disk
28216
28782
  # of the original virtual machine and the characteristics that you want to change. For example, if the original
28217
28783
  # virtual machine has a disk with the identifier `456`, and, for that disk, you want to change the name to `mydisk`
28218
- # the format to <<types/disk_format, _Copy On Write_>> and make it <<types/disk, sparse>>, send a request body like
28784
+ # the format to xref:types-disk_format[_Copy On Write_] and make it xref:types-disk[sparse], send a request body like
28219
28785
  # this:
28220
28786
  #
28221
28787
  # [source,xml]
@@ -28885,12 +29451,16 @@ module OvirtSDK4
28885
29451
  # <user_options>
28886
29452
  # <property>
28887
29453
  # <name>test</name>
28888
- # <value>test1</value>
29454
+ # <value>["any","JSON"]</value>
28889
29455
  # </property>
28890
29456
  # </user_options>
28891
29457
  # </user>
28892
29458
  # ----
28893
29459
  #
29460
+ # IMPORTANT: Since version 4.4.5 of the engine this operation is deprecated, and preserved only for backwards
29461
+ # compatibility. It will be removed in the future. Please use the xref:services-user_option[options]
29462
+ # endpoint instead.
29463
+ #
28894
29464
  # @param user [User] The `user` to update.
28895
29465
  # @param opts [Hash] Additional options.
28896
29466
  #
@@ -28927,6 +29497,15 @@ module OvirtSDK4
28927
29497
  @groups_service ||= DomainUserGroupsService.new(self, 'groups')
28928
29498
  end
28929
29499
 
29500
+ #
29501
+ # Locates the `options` service.
29502
+ #
29503
+ # @return [UserOptionsService] A reference to `options` service.
29504
+ #
29505
+ def options_service
29506
+ @options_service ||= UserOptionsService.new(self, 'options')
29507
+ end
29508
+
28930
29509
  #
28931
29510
  # Locates the `permissions` service.
28932
29511
  #
@@ -28986,6 +29565,12 @@ module OvirtSDK4
28986
29565
  if path.start_with?('groups/')
28987
29566
  return groups_service.service(path[7..-1])
28988
29567
  end
29568
+ if path == 'options'
29569
+ return options_service
29570
+ end
29571
+ if path.start_with?('options/')
29572
+ return options_service.service(path[8..-1])
29573
+ end
28989
29574
  if path == 'permissions'
28990
29575
  return permissions_service
28991
29576
  end
@@ -29015,6 +29600,219 @@ module OvirtSDK4
29015
29600
 
29016
29601
  end
29017
29602
 
29603
+ class UserOptionService < Service
29604
+
29605
+ GET = [
29606
+ ].freeze
29607
+
29608
+ private_constant :GET
29609
+
29610
+ #
29611
+ # Returns a user profile property of type JSON.
29612
+ #
29613
+ # Example request(for user with identifier `123` and option with identifier `456`):
29614
+ #
29615
+ # [source]
29616
+ # ----
29617
+ # GET /ovirt-engine/api/users/123/options/456
29618
+ # ----
29619
+ #
29620
+ # The result will be the following XML document:
29621
+ #
29622
+ # [source,xml]
29623
+ # ----
29624
+ # <user_option href="/ovirt-engine/api/users/123/options/456" id="456">
29625
+ # <name>SomeName</name>
29626
+ # <content>["any", "JSON"]</content>
29627
+ # <user href="/ovirt-engine/api/users/123" id="123"/>
29628
+ # </user_option>
29629
+ # ----
29630
+ #
29631
+ # @param opts [Hash] Additional options.
29632
+ #
29633
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
29634
+ #
29635
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
29636
+ #
29637
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
29638
+ # given then the timeout set globally for the connection will be used.
29639
+ #
29640
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
29641
+ #
29642
+ # @return [UserOption]
29643
+ #
29644
+ def get(opts = {})
29645
+ internal_get(GET, opts)
29646
+ end
29647
+
29648
+ REMOVE = [
29649
+ ].freeze
29650
+
29651
+ private_constant :REMOVE
29652
+
29653
+ #
29654
+ # Deletes an existing property of type JSON.
29655
+ #
29656
+ # Example request(for user with identifier `123` and option with identifier `456`):
29657
+ #
29658
+ # [source]
29659
+ # ----
29660
+ # DELETE /ovirt-engine/api/users/123/options/456
29661
+ # ----
29662
+ #
29663
+ # @param opts [Hash] Additional options.
29664
+ #
29665
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
29666
+ #
29667
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
29668
+ #
29669
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
29670
+ # given then the timeout set globally for the connection will be used.
29671
+ #
29672
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
29673
+ #
29674
+ def remove(opts = {})
29675
+ internal_remove(REMOVE, opts)
29676
+ end
29677
+
29678
+ #
29679
+ # Locates the service corresponding to the given path.
29680
+ #
29681
+ # @param path [String] The path of the service.
29682
+ #
29683
+ # @return [Service] A reference to the service.
29684
+ #
29685
+ def service(path)
29686
+ if path.nil? || path == ''
29687
+ return self
29688
+ end
29689
+ raise Error.new("The path \"#{path}\" doesn't correspond to any service")
29690
+ end
29691
+
29692
+ end
29693
+
29694
+ class UserOptionsService < Service
29695
+
29696
+ ADD = [
29697
+ ].freeze
29698
+
29699
+ private_constant :ADD
29700
+
29701
+ #
29702
+ # Adds a new user profile property of type JSON.
29703
+ #
29704
+ # Example request(for user with identifier `123`):
29705
+ #
29706
+ # [source]
29707
+ # ----
29708
+ # POST /ovirt-engine/api/users/123/options
29709
+ # ----
29710
+ #
29711
+ # Payload:
29712
+ #
29713
+ # [source,xml]
29714
+ # ----
29715
+ # <user_option>
29716
+ # <name>SomeName</name>
29717
+ # <content>["any", "JSON"]</content>
29718
+ # </user_option>
29719
+ # ----
29720
+ #
29721
+ # @param option [UserOption] The `option` to add.
29722
+ #
29723
+ # @param opts [Hash] Additional options.
29724
+ #
29725
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
29726
+ #
29727
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
29728
+ #
29729
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
29730
+ # given then the timeout set globally for the connection will be used.
29731
+ #
29732
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
29733
+ #
29734
+ # @return [UserOption]
29735
+ #
29736
+ def add(option, opts = {})
29737
+ internal_add(option, UserOption, ADD, opts)
29738
+ end
29739
+
29740
+ LIST = [
29741
+ ].freeze
29742
+
29743
+ private_constant :LIST
29744
+
29745
+ #
29746
+ # Returns a list of user profile properties of type JSON.
29747
+ #
29748
+ # Example request(for user with identifier `123`):
29749
+ #
29750
+ # [source]
29751
+ # ----
29752
+ # GET /ovirt-engine/api/users/123/options
29753
+ # ----
29754
+ #
29755
+ # The result will be the following XML document:
29756
+ #
29757
+ # [source,xml]
29758
+ # ----
29759
+ # <user_options>
29760
+ # <user_option href="/ovirt-engine/api/users/123/options/456" id="456">
29761
+ # <name>SomeName</name>
29762
+ # <content>["any", "JSON"]</content>
29763
+ # <user href="/ovirt-engine/api/users/123" id="123"/>
29764
+ # </user_option>
29765
+ # </user_options>
29766
+ # ----
29767
+ #
29768
+ # @param opts [Hash] Additional options.
29769
+ #
29770
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
29771
+ #
29772
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
29773
+ #
29774
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
29775
+ # given then the timeout set globally for the connection will be used.
29776
+ #
29777
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
29778
+ #
29779
+ # @return [Array<UserOption>]
29780
+ #
29781
+ def list(opts = {})
29782
+ internal_get(LIST, opts)
29783
+ end
29784
+
29785
+ #
29786
+ # Locates the `option` service.
29787
+ #
29788
+ # @param id [String] The identifier of the `option`.
29789
+ #
29790
+ # @return [UserOptionService] A reference to the `option` service.
29791
+ #
29792
+ def option_service(id)
29793
+ UserOptionService.new(self, id)
29794
+ end
29795
+
29796
+ #
29797
+ # Locates the service corresponding to the given path.
29798
+ #
29799
+ # @param path [String] The path of the service.
29800
+ #
29801
+ # @return [Service] A reference to the service.
29802
+ #
29803
+ def service(path)
29804
+ if path.nil? || path == ''
29805
+ return self
29806
+ end
29807
+ index = path.index('/')
29808
+ if index.nil?
29809
+ return option_service(path)
29810
+ end
29811
+ return option_service(path[0..(index - 1)]).service(path[(index + 1)..-1])
29812
+ end
29813
+
29814
+ end
29815
+
29018
29816
  class UsersService < Service
29019
29817
 
29020
29818
  ADD = [
@@ -29046,7 +29844,7 @@ module OvirtSDK4
29046
29844
  # ----
29047
29845
  #
29048
29846
  # In case you are working with Active Directory you have to pass user principal name (UPN) as `username`, followed
29049
- # by authorization provider name. Due to https://bugzilla.redhat.com/1147900[bug 1147900] you need to provide
29847
+ # by authorization provider name. Due to link:https://bugzilla.redhat.com/1147900[bug 1147900] you need to provide
29050
29848
  # also `principal` parameter set to UPN of the user.
29051
29849
  #
29052
29850
  # For example, to add the user with UPN `myuser@mysubdomain.mydomain.com` from the `myextension-authz`
@@ -29351,6 +30149,55 @@ module OvirtSDK4
29351
30149
 
29352
30150
  class VmService < MeasurableService
29353
30151
 
30152
+ AUTO_PIN_CPU_AND_NUMA_NODES = [
30153
+ [:async, TrueClass].freeze,
30154
+ [:optimize_cpu_settings, TrueClass].freeze,
30155
+ ].freeze
30156
+
30157
+ private_constant :AUTO_PIN_CPU_AND_NUMA_NODES
30158
+
30159
+ #
30160
+ # Apply an automatic CPU and NUMA configuration on the VM.
30161
+ #
30162
+ # IMPORTANT: Since version 4.5 of the engine this operation is deprecated, and preserved only for backwards
30163
+ # compatibility. It will be removed in the future. Instead please use PUT followed by xref:services-vm-methods-update[update operation].
30164
+ #
30165
+ # An example for a request:
30166
+ # [source]
30167
+ # ----
30168
+ # POST /ovirt-engine/api/vms/123/autopincpuandnumanodes
30169
+ # ----
30170
+ #
30171
+ # With a request body like this:
30172
+ #
30173
+ # [source,xml]
30174
+ # ----
30175
+ # <action>
30176
+ # <optimize_cpu_settings>true</optimize_cpu_settings>
30177
+ # </action>
30178
+ # ----
30179
+ #
30180
+ # @param opts [Hash] Additional options.
30181
+ #
30182
+ # @option opts [Boolean] :async Indicates if the detach action should be performed asynchronously.
30183
+ #
30184
+ # @option opts [Boolean] :optimize_cpu_settings Specifies how the auto CPU and NUMA configuration is applied.
30185
+ # If set to true, will adjust the CPU topology to fit the VM pinned host hardware.
30186
+ # Otherwise, it will use the VM CPU topology.
30187
+ #
30188
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
30189
+ #
30190
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
30191
+ #
30192
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
30193
+ # given then the timeout set globally for the connection will be used.
30194
+ #
30195
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
30196
+ #
30197
+ def auto_pin_cpu_and_numa_nodes(opts = {})
30198
+ internal_action(:autopincpuandnumanodes, nil, AUTO_PIN_CPU_AND_NUMA_NODES, opts)
30199
+ end
30200
+
29354
30201
  CANCEL_MIGRATION = [
29355
30202
  [:async, TrueClass].freeze,
29356
30203
  ].freeze
@@ -29435,7 +30282,7 @@ module OvirtSDK4
29435
30282
  #
29436
30283
  # Permanently restores the virtual machine to the state of the previewed snapshot.
29437
30284
  #
29438
- # See the <<services/vm/methods/preview_snapshot, preview_snapshot>> operation for details.
30285
+ # See the xref:services-vm-methods-preview_snapshot[preview_snapshot] operation for details.
29439
30286
  #
29440
30287
  # @param opts [Hash] Additional options.
29441
30288
  #
@@ -29547,6 +30394,8 @@ module OvirtSDK4
29547
30394
  # </action>
29548
30395
  # ----
29549
30396
  #
30397
+ # NOTE: Confirm that the export operation has completed before attempting any actions on the export domain.
30398
+ #
29550
30399
  # @param opts [Hash] Additional options.
29551
30400
  #
29552
30401
  # @option opts [Boolean] :async Indicates if the export should be performed asynchronously.
@@ -29619,6 +30468,7 @@ module OvirtSDK4
29619
30468
  [:filter, TrueClass].freeze,
29620
30469
  [:follow, String].freeze,
29621
30470
  [:next_run, TrueClass].freeze,
30471
+ [:ovf_as_ova, TrueClass].freeze,
29622
30472
  ].freeze
29623
30473
 
29624
30474
  private_constant :GET
@@ -29671,6 +30521,16 @@ module OvirtSDK4
29671
30521
  # GET /vms/{vm:id};next_run=true
29672
30522
  # ----
29673
30523
  #
30524
+ # @option opts [Boolean] :ovf_as_ova Indicates if the results should expose the OVF as it appears in OVA files of that VM. The OVF document
30525
+ # describing the virtual machine. This parameter will work only when all_content=True is set.
30526
+ # The OVF will be presented in `initialization.configuration.data`.
30527
+ #
30528
+ # For example:
30529
+ # [source]
30530
+ # ----
30531
+ # GET /vms/{vm:id}?all_content=true&ovf_as_ova=true
30532
+ # ----
30533
+ #
29674
30534
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
29675
30535
  #
29676
30536
  # @option opts [Hash] :query ({}) Additional URL query parameters.
@@ -29857,8 +30717,8 @@ module OvirtSDK4
29857
30717
  #
29858
30718
  # The snapshot is indicated with the `snapshot.id` parameter. It is restored temporarily, so that the content can
29859
30719
  # be inspected. Once that inspection is finished, the state of the virtual machine can be made permanent, using the
29860
- # <<services/vm/methods/commit_snapshot, commit_snapshot>> method, or discarded using the
29861
- # <<services/vm/methods/undo_snapshot, undo_snapshot>> method.
30720
+ # xref:services-vm-methods-commit_snapshot[commit_snapshot] method, or discarded using the
30721
+ # xref:services-vm-methods-undo_snapshot[undo_snapshot] method.
29862
30722
  #
29863
30723
  # @param opts [Hash] Additional options.
29864
30724
  #
@@ -29919,6 +30779,7 @@ module OvirtSDK4
29919
30779
 
29920
30780
  REBOOT = [
29921
30781
  [:async, TrueClass].freeze,
30782
+ [:force, TrueClass].freeze,
29922
30783
  ].freeze
29923
30784
 
29924
30785
  private_constant :REBOOT
@@ -29941,10 +30802,29 @@ module OvirtSDK4
29941
30802
  # <action/>
29942
30803
  # ----
29943
30804
  #
30805
+ # To reboot the VM even if a backup is running for it,
30806
+ # the action should include the 'force' element.
30807
+ #
30808
+ # For example, to force reboot virtual machine `123`:
30809
+ #
30810
+ # ----
30811
+ # POST /ovirt-engine/api/vms/123/reboot
30812
+ # ----
30813
+ #
30814
+ # [source,xml]
30815
+ # ----
30816
+ # <action>
30817
+ # <force>true</force>
30818
+ # </action>
30819
+ # ----
30820
+ #
29944
30821
  # @param opts [Hash] Additional options.
29945
30822
  #
29946
30823
  # @option opts [Boolean] :async Indicates if the reboot should be performed asynchronously.
29947
30824
  #
30825
+ # @option opts [Boolean] :force Indicates if the VM should be forcibly rebooted even
30826
+ # if a backup is running for it.
30827
+ #
29948
30828
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
29949
30829
  #
29950
30830
  # @option opts [Hash] :query ({}) Additional URL query parameters.
@@ -30023,8 +30903,90 @@ module OvirtSDK4
30023
30903
  internal_action(:reordermacaddresses, nil, REORDER_MAC_ADDRESSES, opts)
30024
30904
  end
30025
30905
 
30906
+ RESET = [
30907
+ [:async, TrueClass].freeze,
30908
+ ].freeze
30909
+
30910
+ private_constant :RESET
30911
+
30912
+ #
30913
+ # Sends a reset request to a virtual machine.
30914
+ #
30915
+ # For example:
30916
+ #
30917
+ # [source]
30918
+ # ----
30919
+ # POST /ovirt-engine/api/vms/123/reset
30920
+ # ----
30921
+ #
30922
+ # The reset action does not take any action specific parameters; therefore, the request body should contain an
30923
+ # empty `action`:
30924
+ #
30925
+ # [source,xml]
30926
+ # ----
30927
+ # <action/>
30928
+ # ----
30929
+ #
30930
+ # @param opts [Hash] Additional options.
30931
+ #
30932
+ # @option opts [Boolean] :async Indicates if the reset should be performed asynchronously.
30933
+ #
30934
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
30935
+ #
30936
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
30937
+ #
30938
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
30939
+ # given then the timeout set globally for the connection will be used.
30940
+ #
30941
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
30942
+ #
30943
+ def reset(opts = {})
30944
+ internal_action(:reset, nil, RESET, opts)
30945
+ end
30946
+
30947
+ SCREENSHOT = [
30948
+ ].freeze
30949
+
30950
+ private_constant :SCREENSHOT
30951
+
30952
+ #
30953
+ # Captures screenshot of the current state of the VM.
30954
+ #
30955
+ # For example:
30956
+ #
30957
+ # [source]
30958
+ # ----
30959
+ # POST /ovirt-engine/api/vms/123/screenshot
30960
+ # ----
30961
+ #
30962
+ # The screenshot action does not take any action specific parameters; therefore, the request body should contain an
30963
+ # empty `action`:
30964
+ #
30965
+ # [source,xml]
30966
+ # ----
30967
+ # <action/>
30968
+ #
30969
+ #
30970
+ # ----
30971
+ #
30972
+ # @param opts [Hash] Additional options.
30973
+ #
30974
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
30975
+ #
30976
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
30977
+ #
30978
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
30979
+ # given then the timeout set globally for the connection will be used.
30980
+ #
30981
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
30982
+ #
30983
+ def screenshot(opts = {})
30984
+ internal_action(:screenshot, nil, SCREENSHOT, opts)
30985
+ end
30986
+
30026
30987
  SHUTDOWN = [
30027
30988
  [:async, TrueClass].freeze,
30989
+ [:force, TrueClass].freeze,
30028
30990
  [:reason, String].freeze,
30029
30991
  ].freeze
30030
30992
 
@@ -30048,10 +31010,29 @@ module OvirtSDK4
30048
31010
  # <action/>
30049
31011
  # ----
30050
31012
  #
31013
+ # To shutdown the VM even if a backup is running for it,
31014
+ # the action should include the 'force' element.
31015
+ #
31016
+ # For example, to force shutdown virtual machine `123`:
31017
+ #
31018
+ # ----
31019
+ # POST /ovirt-engine/api/vms/123/shutdown
31020
+ # ----
31021
+ #
31022
+ # [source,xml]
31023
+ # ----
31024
+ # <action>
31025
+ # <force>true</force>
31026
+ # </action>
31027
+ # ----
31028
+ #
30051
31029
  # @param opts [Hash] Additional options.
30052
31030
  #
30053
31031
  # @option opts [Boolean] :async Indicates if the shutdown should be performed asynchronously.
30054
31032
  #
31033
+ # @option opts [Boolean] :force Indicates if the VM should be forcibly shutdown even
31034
+ # if a backup is running for it.
31035
+ #
30055
31036
  # @option opts [String] :reason The reason the virtual machine was stopped.
30056
31037
  # Optionally set by user when shutting down the virtual machine.
30057
31038
  #
@@ -30114,10 +31095,10 @@ module OvirtSDK4
30114
31095
  # @option opts [Boolean] :pause If set to `true`, start the virtual machine in paused mode. The default is `false`.
30115
31096
  #
30116
31097
  # @option opts [Boolean] :use_cloud_init If set to `true`, the initialization type is set to _cloud-init_. The default value is `false`.
30117
- # See https://cloudinit.readthedocs.io/en/latest[this] for details.
31098
+ # See link:https://cloudinit.readthedocs.io/en/latest[cloud-init documentation] for details.
30118
31099
  #
30119
31100
  # @option opts [Boolean] :use_ignition If set to `true`, the initialization type is set to _Ignition_. The default value is `false`.
30120
- # See https://coreos.com/ignition/docs/latest/[this] for details.
31101
+ # See link:https://coreos.com/ignition/docs/latest/[Ignition documentation] for details.
30121
31102
  #
30122
31103
  # @option opts [Boolean] :use_initialization If set to `true`, the initialization type is set by the VM's OS.
30123
31104
  # Windows will set to _Sysprep_, Linux to _cloud-init_ and RedHat CoreOS to _Ignition_.
@@ -30126,7 +31107,7 @@ module OvirtSDK4
30126
31107
  # The default value is `false`.
30127
31108
  #
30128
31109
  # @option opts [Boolean] :use_sysprep If set to `true`, the initialization type is set to _Sysprep_. The default value is `false`.
30129
- # See https://en.wikipedia.org/wiki/Sysprep[this] for details.
31110
+ # See link:https://en.wikipedia.org/wiki/Sysprep[Sysprep] for details.
30130
31111
  #
30131
31112
  # @option opts [Vm] :vm The definition of the virtual machine for this specific run.
30132
31113
  #
@@ -30168,6 +31149,7 @@ module OvirtSDK4
30168
31149
 
30169
31150
  STOP = [
30170
31151
  [:async, TrueClass].freeze,
31152
+ [:force, TrueClass].freeze,
30171
31153
  [:reason, String].freeze,
30172
31154
  ].freeze
30173
31155
 
@@ -30191,10 +31173,29 @@ module OvirtSDK4
30191
31173
  # <action/>
30192
31174
  # ----
30193
31175
  #
31176
+ # To stop the VM even if a backup is running for it,
31177
+ # the action should include the 'force' element.
31178
+ #
31179
+ # For example, to force stop virtual machine `123`:
31180
+ #
31181
+ # ----
31182
+ # POST /ovirt-engine/api/vms/123/stop
31183
+ # ----
31184
+ #
31185
+ # [source,xml]
31186
+ # ----
31187
+ # <action>
31188
+ # <force>true</force>
31189
+ # </action>
31190
+ # ----
31191
+ #
30194
31192
  # @param opts [Hash] Additional options.
30195
31193
  #
30196
31194
  # @option opts [Boolean] :async Indicates if the stop action should be performed asynchronously.
30197
31195
  #
31196
+ # @option opts [Boolean] :force Indicates if the VM should be forcibly stop even
31197
+ # if a backup is running for it.
31198
+ #
30198
31199
  # @option opts [String] :reason The reason the virtual machine was stopped.
30199
31200
  # Optionally set by user when shutting down the virtual machine.
30200
31201
  #
@@ -30335,8 +31336,8 @@ module OvirtSDK4
30335
31336
  # the SPICE protocol.
30336
31337
  #
30337
31338
  # In order to obtain an authentication token for a specific protocol, for
30338
- # example for VNC, use the `ticket` method of the <<services/vm_graphics_console,
30339
- # service>>, which manages the graphics consoles of the virtual machine, by sending
31339
+ # example for VNC, use the `ticket` method of the
31340
+ # xref:services-vm_graphics_console[service], which manages the graphics consoles of the virtual machine, by sending
30340
31341
  # a request:
30341
31342
  #
30342
31343
  # [source]
@@ -30459,7 +31460,7 @@ module OvirtSDK4
30459
31460
  #
30460
31461
  # Restores the virtual machine to the state it had before previewing the snapshot.
30461
31462
  #
30462
- # See the <<services/vm/methods/preview_snapshot, preview_snapshot>> operation for details.
31463
+ # See the xref:services-vm-methods-preview_snapshot[preview_snapshot] operation for details.
30463
31464
  #
30464
31465
  # @param opts [Hash] Additional options.
30465
31466
  #
@@ -30548,6 +31549,15 @@ module OvirtSDK4
30548
31549
  @cdroms_service ||= VmCdromsService.new(self, 'cdroms')
30549
31550
  end
30550
31551
 
31552
+ #
31553
+ # List of checkpoints of this virtual machine.
31554
+ #
31555
+ # @return [VmCheckpointsService] A reference to `checkpoints` service.
31556
+ #
31557
+ def checkpoints_service
31558
+ @checkpoints_service ||= VmCheckpointsService.new(self, 'checkpoints')
31559
+ end
31560
+
30551
31561
  #
30552
31562
  # List of disks attached to this virtual machine.
30553
31563
  #
@@ -30585,6 +31595,15 @@ module OvirtSDK4
30585
31595
  @katello_errata_service ||= KatelloErrataService.new(self, 'katelloerrata')
30586
31596
  end
30587
31597
 
31598
+ #
31599
+ # Reference to the service that manages mediated devices associated with the VM.
31600
+ #
31601
+ # @return [VmMediatedDevicesService] A reference to `mediated_devices` service.
31602
+ #
31603
+ def mediated_devices_service
31604
+ @mediated_devices_service ||= VmMediatedDevicesService.new(self, 'mediateddevices')
31605
+ end
31606
+
30588
31607
  #
30589
31608
  # Locates the `nics` service.
30590
31609
  #
@@ -30701,6 +31720,12 @@ module OvirtSDK4
30701
31720
  if path.start_with?('cdroms/')
30702
31721
  return cdroms_service.service(path[7..-1])
30703
31722
  end
31723
+ if path == 'checkpoints'
31724
+ return checkpoints_service
31725
+ end
31726
+ if path.start_with?('checkpoints/')
31727
+ return checkpoints_service.service(path[12..-1])
31728
+ end
30704
31729
  if path == 'diskattachments'
30705
31730
  return disk_attachments_service
30706
31731
  end
@@ -30725,6 +31750,12 @@ module OvirtSDK4
30725
31750
  if path.start_with?('katelloerrata/')
30726
31751
  return katello_errata_service.service(path[14..-1])
30727
31752
  end
31753
+ if path == 'mediateddevices'
31754
+ return mediated_devices_service
31755
+ end
31756
+ if path.start_with?('mediateddevices/')
31757
+ return mediated_devices_service.service(path[16..-1])
31758
+ end
30728
31759
  if path == 'nics'
30729
31760
  return nics_service
30730
31761
  end
@@ -30915,6 +31946,20 @@ module OvirtSDK4
30915
31946
  # Finalize the virtual machine backup entity.
30916
31947
  #
30917
31948
  # End backup, unlock resources, and perform cleanups.
31949
+ # To finalize a virtual machine with an id '123' and a backup with an id '456'
31950
+ # send a request as follows:
31951
+ #
31952
+ # [source]
31953
+ # ----
31954
+ # POST /ovirt-engine/api/vms/123/backups/456/finalize
31955
+ # ----
31956
+ #
31957
+ # With a request body as follows:
31958
+ #
31959
+ # [source,xml]
31960
+ # ----
31961
+ # <action />
31962
+ # ----
30918
31963
  #
30919
31964
  # @param opts [Hash] Additional options.
30920
31965
  #
@@ -31106,6 +32151,8 @@ module OvirtSDK4
31106
32151
  class VmBackupsService < Service
31107
32152
 
31108
32153
  ADD = [
32154
+ [:require_consistency, TrueClass].freeze,
32155
+ [:use_active, TrueClass].freeze,
31109
32156
  ].freeze
31110
32157
 
31111
32158
  private_constant :ADD
@@ -31125,7 +32172,6 @@ module OvirtSDK4
31125
32172
  #
31126
32173
  # [source,xml]
31127
32174
  # ----
31128
- # POST /ovirt-engine/api/vms/123/backups
31129
32175
  # <backup>
31130
32176
  # <from_checkpoint_id>previous-checkpoint-uuid</from_checkpoint_id>
31131
32177
  # <disks>
@@ -31152,10 +32198,55 @@ module OvirtSDK4
31152
32198
  # </backup>
31153
32199
  # ----
31154
32200
  #
32201
+ # To provide the ID of the created backup, send a request like this:
32202
+ #
32203
+ # [source]
32204
+ # ----
32205
+ # POST /ovirt-engine/api/vms/123/backups
32206
+ # ----
32207
+ #
32208
+ # With a request body like this:
32209
+ #
32210
+ # [source,xml]
32211
+ # ----
32212
+ # <backup id="backup-uuid">
32213
+ # <from_checkpoint_id>previous-checkpoint-uuid</from_checkpoint_id>
32214
+ # <disks>
32215
+ # <disk id="disk-uuid" />
32216
+ # ...
32217
+ # </disks>
32218
+ # </backup>
32219
+ # ----
32220
+ #
31155
32221
  # @param backup [Backup] The information about the virtual machine backup entity.
31156
32222
  #
31157
32223
  # @param opts [Hash] Additional options.
31158
32224
  #
32225
+ # @option opts [Boolean] :require_consistency Indicates if the backup will fail if VM failed to freeze or not.
32226
+ #
32227
+ # If requireConsistency=True VM backup will fail in case of a
32228
+ # failure to freeze the VM.
32229
+ #
32230
+ # The REST API call should look like this:
32231
+ #
32232
+ # ....
32233
+ # POST /ovirt-engine/api/vms/123/backups?require_consistency=true
32234
+ # ....
32235
+ #
32236
+ # The default value of the requireConsistency flag is `false`.
32237
+ #
32238
+ # @option opts [Boolean] :use_active Indicate whether to use the active volume for performing the backup.
32239
+ #
32240
+ # If useActive=False a snapshot will be created for the backup operation.
32241
+ #
32242
+ # The REST API call should look like this:
32243
+ #
32244
+ # ....
32245
+ # POST /ovirt-engine/api/vms/123/backups?use_active=false
32246
+ # ....
32247
+ #
32248
+ # The default value of the useActive flag is `false`.
32249
+ #
31159
32250
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
31160
32251
  #
31161
32252
  # @option opts [Hash] :query ({}) Additional URL query parameters.
@@ -31330,7 +32421,7 @@ module OvirtSDK4
31330
32421
  # ----
31331
32422
  #
31332
32423
  # By default the above operations change permanently the disk that will be visible to the virtual machine
31333
- # after the next boot, but they don't have any effect on the currently running virtual machine. If you want
32424
+ # after the next boot, but they do not have any effect on the currently running virtual machine. If you want
31334
32425
  # to change the disk that is visible to the current running virtual machine, add the `current=true` parameter.
31335
32426
  # For example, to eject the current disk send a request like this:
31336
32427
  #
@@ -31483,20 +32574,21 @@ module OvirtSDK4
31483
32574
 
31484
32575
  end
31485
32576
 
31486
- class VmDiskService < MeasurableService
32577
+ class VmCheckpointService < Service
31487
32578
 
31488
- ACTIVATE = [
31489
- [:async, TrueClass].freeze,
32579
+ GET = [
32580
+ [:follow, String].freeze,
31490
32581
  ].freeze
31491
32582
 
31492
- private_constant :ACTIVATE
32583
+ private_constant :GET
31493
32584
 
31494
32585
  #
31495
- # Executes the `activate` method.
32586
+ # Returns information about the virtual machine checkpoint.
31496
32587
  #
31497
32588
  # @param opts [Hash] Additional options.
31498
32589
  #
31499
- # @option opts [Boolean] :async Indicates if the activation should be performed asynchronously.
32590
+ # @option opts [String] :follow Indicates which inner links should be _followed_. The objects referenced by these links will be fetched as part
32591
+ # of the current request. See <<documents/003_common_concepts/follow, here>> for details.
31500
32592
  #
31501
32593
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
31502
32594
  #
@@ -31507,23 +32599,26 @@ module OvirtSDK4
31507
32599
  #
31508
32600
  # @option opts [Boolean] :wait (true) If `true` wait for the response.
31509
32601
  #
31510
- def activate(opts = {})
31511
- internal_action(:activate, nil, ACTIVATE, opts)
32602
+ # @return [Checkpoint]
32603
+ #
32604
+ def get(opts = {})
32605
+ internal_get(GET, opts)
31512
32606
  end
31513
32607
 
31514
- DEACTIVATE = [
32608
+ REMOVE = [
31515
32609
  [:async, TrueClass].freeze,
31516
32610
  ].freeze
31517
32611
 
31518
- private_constant :DEACTIVATE
32612
+ private_constant :REMOVE
31519
32613
 
31520
32614
  #
31521
- # Executes the `deactivate` method.
32615
+ # Remove the virtual machine checkpoint entity.
31522
32616
  #
31523
- # @param opts [Hash] Additional options.
32617
+ # Remove the checkpoint from libvirt and the database.
31524
32618
  #
31525
- # @option opts [Boolean] :async Indicates if the deactivation should be performed asynchronously.
32619
+ # @param opts [Hash] Additional options.
31526
32620
  #
32621
+ # @option opts [Boolean] :async Indicates if the remove should be performed asynchronously.
31527
32622
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
31528
32623
  #
31529
32624
  # @option opts [Hash] :query ({}) Additional URL query parameters.
@@ -31533,39 +32628,43 @@ module OvirtSDK4
31533
32628
  #
31534
32629
  # @option opts [Boolean] :wait (true) If `true` wait for the response.
31535
32630
  #
31536
- def deactivate(opts = {})
31537
- internal_action(:deactivate, nil, DEACTIVATE, opts)
32631
+ def remove(opts = {})
32632
+ internal_remove(REMOVE, opts)
31538
32633
  end
31539
32634
 
31540
- EXPORT = [
31541
- [:async, TrueClass].freeze,
31542
- [:filter, TrueClass].freeze,
31543
- ].freeze
31544
-
31545
- private_constant :EXPORT
31546
-
31547
32635
  #
31548
- # Executes the `export` method.
32636
+ # A reference to the service that lists the disks in checkpoint.
31549
32637
  #
31550
- # @param opts [Hash] Additional options.
32638
+ # @return [VmCheckpointDisksService] A reference to `disks` service.
31551
32639
  #
31552
- # @option opts [Boolean] :async Indicates if the export should be performed asynchronously.
31553
- #
31554
- # @option opts [Boolean] :filter Indicates if the results should be filtered according to the permissions of the user.
31555
- #
31556
- # @option opts [Hash] :headers ({}) Additional HTTP headers.
32640
+ def disks_service
32641
+ @disks_service ||= VmCheckpointDisksService.new(self, 'disks')
32642
+ end
32643
+
31557
32644
  #
31558
- # @option opts [Hash] :query ({}) Additional URL query parameters.
32645
+ # Locates the service corresponding to the given path.
31559
32646
  #
31560
- # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
31561
- # given then the timeout set globally for the connection will be used.
32647
+ # @param path [String] The path of the service.
31562
32648
  #
31563
- # @option opts [Boolean] :wait (true) If `true` wait for the response.
32649
+ # @return [Service] A reference to the service.
31564
32650
  #
31565
- def export(opts = {})
31566
- internal_action(:export, nil, EXPORT, opts)
32651
+ def service(path)
32652
+ if path.nil? || path == ''
32653
+ return self
32654
+ end
32655
+ if path == 'disks'
32656
+ return disks_service
32657
+ end
32658
+ if path.start_with?('disks/')
32659
+ return disks_service.service(path[6..-1])
32660
+ end
32661
+ raise Error.new("The path \"#{path}\" doesn't correspond to any service")
31567
32662
  end
31568
32663
 
32664
+ end
32665
+
32666
+ class VmCheckpointDiskService < Service
32667
+
31569
32668
  GET = [
31570
32669
  [:follow, String].freeze,
31571
32670
  ].freeze
@@ -31573,7 +32672,273 @@ module OvirtSDK4
31573
32672
  private_constant :GET
31574
32673
 
31575
32674
  #
31576
- # Returns the representation of the object managed by this service.
32675
+ # Retrieves the description of the disk.
32676
+ #
32677
+ # @param opts [Hash] Additional options.
32678
+ #
32679
+ # @option opts [String] :follow Indicates which inner links should be _followed_. The objects referenced by these links will be fetched as part
32680
+ # of the current request. See <<documents/003_common_concepts/follow, here>> for details.
32681
+ #
32682
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
32683
+ #
32684
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
32685
+ #
32686
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
32687
+ # given then the timeout set globally for the connection will be used.
32688
+ #
32689
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
32690
+ #
32691
+ # @return [Disk]
32692
+ #
32693
+ def get(opts = {})
32694
+ internal_get(GET, opts)
32695
+ end
32696
+
32697
+ #
32698
+ # Locates the service corresponding to the given path.
32699
+ #
32700
+ # @param path [String] The path of the service.
32701
+ #
32702
+ # @return [Service] A reference to the service.
32703
+ #
32704
+ def service(path)
32705
+ if path.nil? || path == ''
32706
+ return self
32707
+ end
32708
+ raise Error.new("The path \"#{path}\" doesn't correspond to any service")
32709
+ end
32710
+
32711
+ end
32712
+
32713
+ class VmCheckpointDisksService < Service
32714
+
32715
+ LIST = [
32716
+ [:follow, String].freeze,
32717
+ [:max, Integer].freeze,
32718
+ ].freeze
32719
+
32720
+ private_constant :LIST
32721
+
32722
+ #
32723
+ # Returns the list of disks in checkpoint.
32724
+ #
32725
+ # @param opts [Hash] Additional options.
32726
+ #
32727
+ # @option opts [String] :follow Indicates which inner links should be _followed_. The objects referenced by these links will be fetched as part
32728
+ # of the current request. See <<documents/003_common_concepts/follow, here>> for details.
32729
+ #
32730
+ # @option opts [Integer] :max Sets the maximum number of disks to return. If not specified, all the disks are returned.
32731
+ #
32732
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
32733
+ #
32734
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
32735
+ #
32736
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
32737
+ # given then the timeout set globally for the connection will be used.
32738
+ #
32739
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
32740
+ #
32741
+ # @return [Array<Disk>]
32742
+ #
32743
+ def list(opts = {})
32744
+ internal_get(LIST, opts)
32745
+ end
32746
+
32747
+ #
32748
+ # A reference to the service that manages a specific disk.
32749
+ #
32750
+ # @param id [String] The identifier of the `disk`.
32751
+ #
32752
+ # @return [VmCheckpointDiskService] A reference to the `disk` service.
32753
+ #
32754
+ def disk_service(id)
32755
+ VmCheckpointDiskService.new(self, id)
32756
+ end
32757
+
32758
+ #
32759
+ # Locates the service corresponding to the given path.
32760
+ #
32761
+ # @param path [String] The path of the service.
32762
+ #
32763
+ # @return [Service] A reference to the service.
32764
+ #
32765
+ def service(path)
32766
+ if path.nil? || path == ''
32767
+ return self
32768
+ end
32769
+ index = path.index('/')
32770
+ if index.nil?
32771
+ return disk_service(path)
32772
+ end
32773
+ return disk_service(path[0..(index - 1)]).service(path[(index + 1)..-1])
32774
+ end
32775
+
32776
+ end
32777
+
32778
+ class VmCheckpointsService < Service
32779
+
32780
+ LIST = [
32781
+ [:follow, String].freeze,
32782
+ [:max, Integer].freeze,
32783
+ ].freeze
32784
+
32785
+ private_constant :LIST
32786
+
32787
+ #
32788
+ # The list of virtual machine checkpoints.
32789
+ #
32790
+ # To get a list of checkpoints for a virtual machine with an id '123', send a request as follows:
32791
+ #
32792
+ # [source]
32793
+ # ----
32794
+ # GET /ovirt-engine/api/vms/123/checkpoints
32795
+ # ----
32796
+ #
32797
+ # @param opts [Hash] Additional options.
32798
+ #
32799
+ # @option opts [String] :follow Indicates which inner links should be _followed_. The objects referenced by these links will be fetched as part
32800
+ # of the current request. See <<documents/003_common_concepts/follow, here>> for details.
32801
+ #
32802
+ # @option opts [Integer] :max Sets the maximum number of virtual machine checkpoints to return.
32803
+ # If not specified, all the virtual machine checkpoints are returned.
32804
+ #
32805
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
32806
+ #
32807
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
32808
+ #
32809
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
32810
+ # given then the timeout set globally for the connection will be used.
32811
+ #
32812
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
32813
+ #
32814
+ # @return [Array<Checkpoint>]
32815
+ #
32816
+ def list(opts = {})
32817
+ internal_get(LIST, opts)
32818
+ end
32819
+
32820
+ #
32821
+ # Returns a reference to the service that manages a specific VM checkpoint.
32822
+ #
32823
+ # @param id [String] The identifier of the `checkpoint`.
32824
+ #
32825
+ # @return [VmCheckpointService] A reference to the `checkpoint` service.
32826
+ #
32827
+ def checkpoint_service(id)
32828
+ VmCheckpointService.new(self, id)
32829
+ end
32830
+
32831
+ #
32832
+ # Locates the service corresponding to the given path.
32833
+ #
32834
+ # @param path [String] The path of the service.
32835
+ #
32836
+ # @return [Service] A reference to the service.
32837
+ #
32838
+ def service(path)
32839
+ if path.nil? || path == ''
32840
+ return self
32841
+ end
32842
+ index = path.index('/')
32843
+ if index.nil?
32844
+ return checkpoint_service(path)
32845
+ end
32846
+ return checkpoint_service(path[0..(index - 1)]).service(path[(index + 1)..-1])
32847
+ end
32848
+
32849
+ end
32850
+
32851
+ class VmDiskService < MeasurableService
32852
+
32853
+ ACTIVATE = [
32854
+ [:async, TrueClass].freeze,
32855
+ ].freeze
32856
+
32857
+ private_constant :ACTIVATE
32858
+
32859
+ #
32860
+ # Executes the `activate` method.
32861
+ #
32862
+ # @param opts [Hash] Additional options.
32863
+ #
32864
+ # @option opts [Boolean] :async Indicates if the activation should be performed asynchronously.
32865
+ #
32866
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
32867
+ #
32868
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
32869
+ #
32870
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
32871
+ # given then the timeout set globally for the connection will be used.
32872
+ #
32873
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
32874
+ #
32875
+ def activate(opts = {})
32876
+ internal_action(:activate, nil, ACTIVATE, opts)
32877
+ end
32878
+
32879
+ DEACTIVATE = [
32880
+ [:async, TrueClass].freeze,
32881
+ ].freeze
32882
+
32883
+ private_constant :DEACTIVATE
32884
+
32885
+ #
32886
+ # Executes the `deactivate` method.
32887
+ #
32888
+ # @param opts [Hash] Additional options.
32889
+ #
32890
+ # @option opts [Boolean] :async Indicates if the deactivation should be performed asynchronously.
32891
+ #
32892
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
32893
+ #
32894
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
32895
+ #
32896
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
32897
+ # given then the timeout set globally for the connection will be used.
32898
+ #
32899
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
32900
+ #
32901
+ def deactivate(opts = {})
32902
+ internal_action(:deactivate, nil, DEACTIVATE, opts)
32903
+ end
32904
+
32905
+ EXPORT = [
32906
+ [:async, TrueClass].freeze,
32907
+ [:filter, TrueClass].freeze,
32908
+ ].freeze
32909
+
32910
+ private_constant :EXPORT
32911
+
32912
+ #
32913
+ # Executes the `export` method.
32914
+ #
32915
+ # @param opts [Hash] Additional options.
32916
+ #
32917
+ # @option opts [Boolean] :async Indicates if the export should be performed asynchronously.
32918
+ #
32919
+ # @option opts [Boolean] :filter Indicates if the results should be filtered according to the permissions of the user.
32920
+ #
32921
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
32922
+ #
32923
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
32924
+ #
32925
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
32926
+ # given then the timeout set globally for the connection will be used.
32927
+ #
32928
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
32929
+ #
32930
+ def export(opts = {})
32931
+ internal_action(:export, nil, EXPORT, opts)
32932
+ end
32933
+
32934
+ GET = [
32935
+ [:follow, String].freeze,
32936
+ ].freeze
32937
+
32938
+ private_constant :GET
32939
+
32940
+ #
32941
+ # Returns the representation of the object managed by this service.
31577
32942
  #
31578
32943
  # @param opts [Hash] Additional options.
31579
32944
  #
@@ -31664,8 +33029,7 @@ module OvirtSDK4
31664
33029
  # Detach the disk from the virtual machine.
31665
33030
  #
31666
33031
  # NOTE: In version 3 of the API this used to also remove the disk completely from the system, but starting with
31667
- # version 4 it doesn't. If you need to remove it completely use the <<services/disk/methods/remove,remove
31668
- # method of the top level disk service>>.
33032
+ # version 4 it doesn't. If you need to remove it completely use the xref:services-disk-methods-remove[remove method of the top level disk service].
31669
33033
  #
31670
33034
  # @param opts [Hash] Additional options.
31671
33035
  #
@@ -32373,7 +33737,7 @@ module OvirtSDK4
32373
33737
  # POST /ovirt-engine/api/vms/123/hostdevices
32374
33738
  # ----
32375
33739
  #
32376
- # With request body of type <<types/host_device,HostDevice>>, for example
33740
+ # With request body of type xref:types-host_device[HostDevice], for example
32377
33741
  #
32378
33742
  # [source,xml]
32379
33743
  # ----
@@ -32385,7 +33749,7 @@ module OvirtSDK4
32385
33749
  #
32386
33750
  # NOTE: Attachment of a PCI device that is part of a bigger IOMMU group will result in attachment of the remaining
32387
33751
  # devices from that IOMMU group as "placeholders". These devices are then identified using the `placeholder`
32388
- # attribute of the <<types/host_device,HostDevice>> type set to `true`.
33752
+ # attribute of the xref:types-host_device[HostDevice] type set to `true`.
32389
33753
  #
32390
33754
  # In case you want attach a device that already serves as an IOMMU placeholder, simply issue an explicit Add operation
32391
33755
  # for it, and its `placeholder` flag will be cleared, and the device will be accessible to the virtual machine.
@@ -32474,6 +33838,238 @@ module OvirtSDK4
32474
33838
 
32475
33839
  end
32476
33840
 
33841
+ class VmMediatedDeviceService < Service
33842
+
33843
+ GET = [
33844
+ [:follow, String].freeze,
33845
+ ].freeze
33846
+
33847
+ private_constant :GET
33848
+
33849
+ #
33850
+ # Retrieves the configuration of mediated devices in the virtual machine.
33851
+ #
33852
+ # @param opts [Hash] Additional options.
33853
+ #
33854
+ # @option opts [String] :follow Indicates which inner links should be _followed_. The objects referenced by these links will be fetched as part
33855
+ # of the current request. See <<documents/003_common_concepts/follow, here>> for details.
33856
+ #
33857
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
33858
+ #
33859
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
33860
+ #
33861
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
33862
+ # given then the timeout set globally for the connection will be used.
33863
+ #
33864
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
33865
+ #
33866
+ # @return [VmMediatedDevice]
33867
+ #
33868
+ def get(opts = {})
33869
+ internal_get(GET, opts)
33870
+ end
33871
+
33872
+ REMOVE = [
33873
+ [:async, TrueClass].freeze,
33874
+ ].freeze
33875
+
33876
+ private_constant :REMOVE
33877
+
33878
+ #
33879
+ # Remove the mediated device from the virtual machine.
33880
+ #
33881
+ # @param opts [Hash] Additional options.
33882
+ #
33883
+ # @option opts [Boolean] :async Indicates if the remove should be performed asynchronously.
33884
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
33885
+ #
33886
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
33887
+ #
33888
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
33889
+ # given then the timeout set globally for the connection will be used.
33890
+ #
33891
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
33892
+ #
33893
+ def remove(opts = {})
33894
+ internal_remove(REMOVE, opts)
33895
+ end
33896
+
33897
+ UPDATE = [
33898
+ [:async, TrueClass].freeze,
33899
+ ].freeze
33900
+
33901
+ private_constant :UPDATE
33902
+
33903
+ #
33904
+ # Updates the information about the mediated device.
33905
+ #
33906
+ # You can update the information using `specParams` element.
33907
+ #
33908
+ # For example, to update a mediated device, send a request like this:
33909
+ #
33910
+ # [source]
33911
+ # ----
33912
+ # PUT /ovirt-engine/api/vms/123/mediateddevices/00000000-0000-0000-0000-000000000000
33913
+ # <vm_mediated_device>
33914
+ # <spec_params>
33915
+ # <property>
33916
+ # <name>mdevType</name>
33917
+ # <value>nvidia-11</value>
33918
+ # </property>
33919
+ # </spec_params>
33920
+ # </vm_mediated_device>
33921
+ # ----
33922
+ #
33923
+ # with response body:
33924
+ #
33925
+ # [source,xml]
33926
+ # ----
33927
+ # <vm_mediated_device href="/ovirt-engine/api/vms/123/mediateddevices/00000000-0000-0000-0000-000000000000" id="00000000-0000-0000-0000-000000000000">
33928
+ # <vm href="/ovirt-engine/api/vms/123" id="123"/>
33929
+ # <spec_params>
33930
+ # <property>
33931
+ # <name>mdevType</name>
33932
+ # <value>nvidia-11</value>
33933
+ # </property>
33934
+ # </spec_params>
33935
+ # </vm_mediated_device>
33936
+ # ----
33937
+ #
33938
+ # @param device [VmMediatedDevice] The information about the mediated device.
33939
+ #
33940
+ # The request data must contain `specParams` properties.
33941
+ # The response data contains complete information about the
33942
+ # updated mediated device.
33943
+ # @param opts [Hash] Additional options.
33944
+ #
33945
+ # @option opts [Boolean] :async Indicates if the update should be performed asynchronously.
33946
+ #
33947
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
33948
+ #
33949
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
33950
+ #
33951
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
33952
+ # given then the timeout set globally for the connection will be used.
33953
+ #
33954
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
33955
+ #
33956
+ # @return [VmMediatedDevice]
33957
+ #
33958
+ def update(device, opts = {})
33959
+ internal_update(device, VmMediatedDevice, UPDATE, opts)
33960
+ end
33961
+
33962
+ #
33963
+ # Locates the service corresponding to the given path.
33964
+ #
33965
+ # @param path [String] The path of the service.
33966
+ #
33967
+ # @return [Service] A reference to the service.
33968
+ #
33969
+ def service(path)
33970
+ if path.nil? || path == ''
33971
+ return self
33972
+ end
33973
+ raise Error.new("The path \"#{path}\" doesn't correspond to any service")
33974
+ end
33975
+
33976
+ end
33977
+
33978
+ class VmMediatedDevicesService < Service
33979
+
33980
+ ADD = [
33981
+ ].freeze
33982
+
33983
+ private_constant :ADD
33984
+
33985
+ #
33986
+ # Add a new mediated device to the virtual machine.
33987
+ #
33988
+ # @param device [VmMediatedDevice] The `device` to add.
33989
+ #
33990
+ # @param opts [Hash] Additional options.
33991
+ #
33992
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
33993
+ #
33994
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
33995
+ #
33996
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
33997
+ # given then the timeout set globally for the connection will be used.
33998
+ #
33999
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
34000
+ #
34001
+ # @return [VmMediatedDevice]
34002
+ #
34003
+ def add(device, opts = {})
34004
+ internal_add(device, VmMediatedDevice, ADD, opts)
34005
+ end
34006
+
34007
+ LIST = [
34008
+ [:follow, String].freeze,
34009
+ [:max, Integer].freeze,
34010
+ ].freeze
34011
+
34012
+ private_constant :LIST
34013
+
34014
+ #
34015
+ # Lists all the configured mediated devices of the virtual machine.
34016
+ #
34017
+ # The order of the returned list of mediated devices is not guaranteed.
34018
+ #
34019
+ # @param opts [Hash] Additional options.
34020
+ #
34021
+ # @option opts [String] :follow Indicates which inner links should be _followed_. The objects referenced by these links will be fetched as part
34022
+ # of the current request. See <<documents/003_common_concepts/follow, here>> for details.
34023
+ #
34024
+ # @option opts [Integer] :max Sets the maximum number of mediated devices to return.
34025
+ # If not specified all the mediated devices are returned.
34026
+ #
34027
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
34028
+ #
34029
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
34030
+ #
34031
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
34032
+ # given then the timeout set globally for the connection will be used.
34033
+ #
34034
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
34035
+ #
34036
+ # @return [Array<VmMediatedDevice>]
34037
+ #
34038
+ def list(opts = {})
34039
+ internal_get(LIST, opts)
34040
+ end
34041
+
34042
+ #
34043
+ # Returns a reference to the service that manages a mediated device of a virtual machine.
34044
+ #
34045
+ # @param id [String] The identifier of the `device`.
34046
+ #
34047
+ # @return [VmMediatedDeviceService] A reference to the `device` service.
34048
+ #
34049
+ def device_service(id)
34050
+ VmMediatedDeviceService.new(self, id)
34051
+ end
34052
+
34053
+ #
34054
+ # Locates the service corresponding to the given path.
34055
+ #
34056
+ # @param path [String] The path of the service.
34057
+ #
34058
+ # @return [Service] A reference to the service.
34059
+ #
34060
+ def service(path)
34061
+ if path.nil? || path == ''
34062
+ return self
34063
+ end
34064
+ index = path.index('/')
34065
+ if index.nil?
34066
+ return device_service(path)
34067
+ end
34068
+ return device_service(path[0..(index - 1)]).service(path[(index + 1)..-1])
34069
+ end
34070
+
34071
+ end
34072
+
32477
34073
  class VmNicService < MeasurableService
32478
34074
 
32479
34075
  ACTIVATE = [
@@ -32662,7 +34258,7 @@ module OvirtSDK4
32662
34258
  #
32663
34259
  # Reference to the service that manages the network filter parameters of the NIC.
32664
34260
  #
32665
- # A single top-level network filter may assigned to the NIC by the NIC's <<types/vnic_profile,vNIC Profile>>.
34261
+ # A single top-level network filter may assigned to the NIC by the NIC's xref:types-vnic_profile[vNIC Profile].
32666
34262
  #
32667
34263
  # @return [NicNetworkFilterParametersService] A reference to `network_filter_parameters` service.
32668
34264
  #
@@ -33027,6 +34623,7 @@ module OvirtSDK4
33027
34623
  # </cpu>
33028
34624
  # <index>0</index>
33029
34625
  # <memory>1024</memory>
34626
+ # <numa_tune_mode>strict</numa_tune_mode>
33030
34627
  # </vm_numa_node>
33031
34628
  # ----
33032
34629
  #
@@ -33245,6 +34842,7 @@ module OvirtSDK4
33245
34842
 
33246
34843
  UPDATE = [
33247
34844
  [:async, TrueClass].freeze,
34845
+ [:seal, TrueClass].freeze,
33248
34846
  ].freeze
33249
34847
 
33250
34848
  private_constant :UPDATE
@@ -33277,6 +34875,33 @@ module OvirtSDK4
33277
34875
  #
33278
34876
  # @option opts [Boolean] :async Indicates if the update should be performed asynchronously.
33279
34877
  #
34878
+ # @option opts [Boolean] :seal Specifies if virtual machines created for the pool should be sealed after creation.
34879
+ #
34880
+ # If this optional parameter is provided, and its value is `true`, virtual machines created for the pool
34881
+ # will be sealed after creation. If the value is 'false', the virtual machines will not be sealed.
34882
+ # If the parameter is not provided, the virtual machines will be sealed, only if they are created from
34883
+ # a sealed template and their guest OS is not set to Windows. This parameter affects only the virtual machines
34884
+ # created when the pool is updated.
34885
+ #
34886
+ # For example, to update a virtual machine pool and to seal the additional virtual machines that are created,
34887
+ # send a request like this:
34888
+ #
34889
+ # [source]
34890
+ # ----
34891
+ # PUT /ovirt-engine/api/vmpools/123?seal=true
34892
+ # ----
34893
+ #
34894
+ # With the following body:
34895
+ #
34896
+ # [source,xml]
34897
+ # ----
34898
+ # <vmpool>
34899
+ # <name>VM_Pool_B</name>
34900
+ # <description>Virtual Machine Pool B</description>
34901
+ # <size>7</size>
34902
+ # </vmpool>
34903
+ # ----
34904
+ #
33280
34905
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
33281
34906
  #
33282
34907
  # @option opts [Hash] :query ({}) Additional URL query parameters.
@@ -33326,6 +34951,7 @@ module OvirtSDK4
33326
34951
  class VmPoolsService < Service
33327
34952
 
33328
34953
  ADD = [
34954
+ [:seal, TrueClass].freeze,
33329
34955
  ].freeze
33330
34956
 
33331
34957
  private_constant :ADD
@@ -33356,6 +34982,34 @@ module OvirtSDK4
33356
34982
  #
33357
34983
  # @param opts [Hash] Additional options.
33358
34984
  #
34985
+ # @option opts [Boolean] :seal Specifies if virtual machines created for the pool should be sealed after creation.
34986
+ #
34987
+ # If this optional parameter is provided, and its value is `true`, virtual machines created for the pool
34988
+ # will be sealed after creation. If the value is 'false', the virtual machines will not be sealed.
34989
+ # If the parameter is not provided, the virtual machines will be sealed, only if they are created from
34990
+ # a sealed template and their guest OS is not set to Windows. This parameter affects only the virtual machines
34991
+ # created when the pool is created.
34992
+ #
34993
+ # For example, to create a virtual machine pool with 5 virtual machines and to seal them, send a request
34994
+ # like this:
34995
+ #
34996
+ # [source]
34997
+ # ----
34998
+ # POST /ovirt-engine/api/vmpools?seal=true
34999
+ # ----
35000
+ #
35001
+ # With the following body:
35002
+ #
35003
+ # [source,xml]
35004
+ # ----
35005
+ # <vmpool>
35006
+ # <name>mypool</name>
35007
+ # <cluster id="123"/>
35008
+ # <template id="456"/>
35009
+ # <size>5</size>
35010
+ # </vmpool>
35011
+ # ----
35012
+ #
33359
35013
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
33360
35014
  #
33361
35015
  # @option opts [Hash] :query ({}) Additional URL query parameters.
@@ -33978,6 +35632,7 @@ module OvirtSDK4
33978
35632
  [:clone, TrueClass].freeze,
33979
35633
  [:clone_permissions, TrueClass].freeze,
33980
35634
  [:filter, TrueClass].freeze,
35635
+ [:seal, TrueClass].freeze,
33981
35636
  ].freeze
33982
35637
 
33983
35638
  private_constant :ADD
@@ -34118,7 +35773,7 @@ module OvirtSDK4
34118
35773
  # ----
34119
35774
  #
34120
35775
  # In order to boot from CDROM, you first need to insert a disk, as described in the
34121
- # <<services/vm_cdrom, CDROM service>>. Then booting from that CDROM can be specified using the `os.boot.devices`
35776
+ # xref:services-vm_cdrom[CDROM service]. Then booting from that CDROM can be specified using the `os.boot.devices`
34122
35777
  # attribute:
34123
35778
  #
34124
35779
  # [source,xml]
@@ -34144,7 +35799,7 @@ module OvirtSDK4
34144
35799
  # @option opts [Boolean] :clone Specifies if the virtual machine should be independent of the template.
34145
35800
  #
34146
35801
  # When a virtual machine is created from a template by default the disks of the virtual machine depend on
34147
- # the disks of the template, they are using the https://en.wikipedia.org/wiki/Copy-on-write[_copy on write_]
35802
+ # the disks of the template, they are using the link:https://en.wikipedia.org/wiki/Copy-on-write[_copy on write_]
34148
35803
  # mechanism so that only the differences from the template take up real storage space. If this parameter is
34149
35804
  # specified and the value is `true` then the disks of the created virtual machine will be _cloned_, and
34150
35805
  # independent of the template. For example, to create an independent virtual machine, send a request like this:
@@ -34207,6 +35862,36 @@ module OvirtSDK4
34207
35862
  # Machine will fail unless the Virtual Machine has been previously created by the admin as
34208
35863
  # a user (meaning with filter=true).
34209
35864
  #
35865
+ # @option opts [Boolean] :seal Specifies if the virtual machine should be sealed after creation.
35866
+ #
35867
+ # If this optional parameter is provided, and its value is `true`, the virtual machine will be sealed after
35868
+ # creation. If the value is 'false', the virtual machine will not be sealed. If the parameter is not provided,
35869
+ # the virtual machine will be sealed, only if it is created from a sealed template and its guest OS is not set
35870
+ # to Windows.
35871
+ #
35872
+ # For example, to create a virtual machine from the `mytemplate` template and to seal it, send a request
35873
+ # like this:
35874
+ #
35875
+ # [source]
35876
+ # ----
35877
+ # POST /ovirt-engine/api/vms?seal=true
35878
+ # ----
35879
+ #
35880
+ # With a request body like this:
35881
+ #
35882
+ # [source,xml]
35883
+ # ----
35884
+ # <vm>
35885
+ # <name>myvm<name>
35886
+ # <template>
35887
+ # <name>mytemplate<name>
35888
+ # </template>
35889
+ # <cluster>
35890
+ # <name>mycluster<name>
35891
+ # </cluster>
35892
+ # </vm>
35893
+ # ----
35894
+ #
34210
35895
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
34211
35896
  #
34212
35897
  # @option opts [Hash] :query ({}) Additional URL query parameters.
@@ -34226,6 +35911,7 @@ module OvirtSDK4
34226
35911
  [:clone, TrueClass].freeze,
34227
35912
  [:clone_permissions, TrueClass].freeze,
34228
35913
  [:filter, TrueClass].freeze,
35914
+ [:seal, TrueClass].freeze,
34229
35915
  ].freeze
34230
35916
 
34231
35917
  private_constant :ADD_FROM_CONFIGURATION
@@ -34240,7 +35926,7 @@ module OvirtSDK4
34240
35926
  # @option opts [Boolean] :clone Specifies if the virtual machine should be independent of the template.
34241
35927
  #
34242
35928
  # When a virtual machine is created from a template by default the disks of the virtual machine depend on
34243
- # the disks of the template, they are using the https://en.wikipedia.org/wiki/Copy-on-write[_copy on write_]
35929
+ # the disks of the template, they are using the link:https://en.wikipedia.org/wiki/Copy-on-write[_copy on write_]
34244
35930
  # mechanism so that only the differences from the template take up real storage space. If this parameter is
34245
35931
  # specified and the value is `true` then the disks of the created virtual machine will be _cloned_, and
34246
35932
  # independent of the template. For example, to create an independent virtual machine, send a request like this:
@@ -34303,6 +35989,36 @@ module OvirtSDK4
34303
35989
  # Machine will fail unless the Virtual Machine has been previously created by the admin as
34304
35990
  # a user (meaning with filter=true).
34305
35991
  #
35992
+ # @option opts [Boolean] :seal Specifies if the virtual machine should be sealed after creation.
35993
+ #
35994
+ # If this optional parameter is provided, and its value is `true`, the virtual machine will be sealed after
35995
+ # creation. If the value is 'false', the virtual machine will not be sealed. If the parameter is not provided,
35996
+ # the virtual machine will be sealed, only if it is created from a sealed template and its guest OS is not set
35997
+ # to Windows.
35998
+ #
35999
+ # For example, to create a virtual machine from the `mytemplate` template and to seal it, send a request
36000
+ # like this:
36001
+ #
36002
+ # [source]
36003
+ # ----
36004
+ # POST /ovirt-engine/api/vms?seal=true
36005
+ # ----
36006
+ #
36007
+ # With a request body like this:
36008
+ #
36009
+ # [source,xml]
36010
+ # ----
36011
+ # <vm>
36012
+ # <name>myvm<name>
36013
+ # <template>
36014
+ # <name>mytemplate<name>
36015
+ # </template>
36016
+ # <cluster>
36017
+ # <name>mycluster<name>
36018
+ # </cluster>
36019
+ # </vm>
36020
+ # ----
36021
+ #
34306
36022
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
34307
36023
  #
34308
36024
  # @option opts [Hash] :query ({}) Additional URL query parameters.
@@ -34322,6 +36038,7 @@ module OvirtSDK4
34322
36038
  [:clone, TrueClass].freeze,
34323
36039
  [:clone_permissions, TrueClass].freeze,
34324
36040
  [:filter, TrueClass].freeze,
36041
+ [:seal, TrueClass].freeze,
34325
36042
  ].freeze
34326
36043
 
34327
36044
  private_constant :ADD_FROM_SCRATCH
@@ -34336,7 +36053,7 @@ module OvirtSDK4
34336
36053
  # @option opts [Boolean] :clone Specifies if the virtual machine should be independent of the template.
34337
36054
  #
34338
36055
  # When a virtual machine is created from a template by default the disks of the virtual machine depend on
34339
- # the disks of the template, they are using the https://en.wikipedia.org/wiki/Copy-on-write[_copy on write_]
36056
+ # the disks of the template, they are using the link:https://en.wikipedia.org/wiki/Copy-on-write[_copy on write_]
34340
36057
  # mechanism so that only the differences from the template take up real storage space. If this parameter is
34341
36058
  # specified and the value is `true` then the disks of the created virtual machine will be _cloned_, and
34342
36059
  # independent of the template. For example, to create an independent virtual machine, send a request like this:
@@ -34399,6 +36116,36 @@ module OvirtSDK4
34399
36116
  # Machine will fail unless the Virtual Machine has been previously created by the admin as
34400
36117
  # a user (meaning with filter=true).
34401
36118
  #
36119
+ # @option opts [Boolean] :seal Specifies if the virtual machine should be sealed after creation.
36120
+ #
36121
+ # If this optional parameter is provided, and its value is `true`, the virtual machine will be sealed after
36122
+ # creation. If the value is 'false', the virtual machine will not be sealed. If the parameter is not provided,
36123
+ # the virtual machine will be sealed, only if it is created from a sealed template and its guest OS is not set
36124
+ # to Windows.
36125
+ #
36126
+ # For example, to create a virtual machine from the `mytemplate` template and to seal it, send a request
36127
+ # like this:
36128
+ #
36129
+ # [source]
36130
+ # ----
36131
+ # POST /ovirt-engine/api/vms?seal=true
36132
+ # ----
36133
+ #
36134
+ # With a request body like this:
36135
+ #
36136
+ # [source,xml]
36137
+ # ----
36138
+ # <vm>
36139
+ # <name>myvm<name>
36140
+ # <template>
36141
+ # <name>mytemplate<name>
36142
+ # </template>
36143
+ # <cluster>
36144
+ # <name>mycluster<name>
36145
+ # </cluster>
36146
+ # </vm>
36147
+ # ----
36148
+ #
34402
36149
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
34403
36150
  #
34404
36151
  # @option opts [Hash] :query ({}) Additional URL query parameters.
@@ -34418,6 +36165,7 @@ module OvirtSDK4
34418
36165
  [:clone, TrueClass].freeze,
34419
36166
  [:clone_permissions, TrueClass].freeze,
34420
36167
  [:filter, TrueClass].freeze,
36168
+ [:seal, TrueClass].freeze,
34421
36169
  ].freeze
34422
36170
 
34423
36171
  private_constant :ADD_FROM_SNAPSHOT
@@ -34432,7 +36180,7 @@ module OvirtSDK4
34432
36180
  # @option opts [Boolean] :clone Specifies if the virtual machine should be independent of the template.
34433
36181
  #
34434
36182
  # When a virtual machine is created from a template by default the disks of the virtual machine depend on
34435
- # the disks of the template, they are using the https://en.wikipedia.org/wiki/Copy-on-write[_copy on write_]
36183
+ # the disks of the template, they are using the link:https://en.wikipedia.org/wiki/Copy-on-write[_copy on write_]
34436
36184
  # mechanism so that only the differences from the template take up real storage space. If this parameter is
34437
36185
  # specified and the value is `true` then the disks of the created virtual machine will be _cloned_, and
34438
36186
  # independent of the template. For example, to create an independent virtual machine, send a request like this:
@@ -34495,6 +36243,36 @@ module OvirtSDK4
34495
36243
  # Machine will fail unless the Virtual Machine has been previously created by the admin as
34496
36244
  # a user (meaning with filter=true).
34497
36245
  #
36246
+ # @option opts [Boolean] :seal Specifies if the virtual machine should be sealed after creation.
36247
+ #
36248
+ # If this optional parameter is provided, and its value is `true`, the virtual machine will be sealed after
36249
+ # creation. If the value is 'false', the virtual machine will not be sealed. If the parameter is not provided,
36250
+ # the virtual machine will be sealed, only if it is created from a sealed template and its guest OS is not set
36251
+ # to Windows.
36252
+ #
36253
+ # For example, to create a virtual machine from the `mytemplate` template and to seal it, send a request
36254
+ # like this:
36255
+ #
36256
+ # [source]
36257
+ # ----
36258
+ # POST /ovirt-engine/api/vms?seal=true
36259
+ # ----
36260
+ #
36261
+ # With a request body like this:
36262
+ #
36263
+ # [source,xml]
36264
+ # ----
36265
+ # <vm>
36266
+ # <name>myvm<name>
36267
+ # <template>
36268
+ # <name>mytemplate<name>
36269
+ # </template>
36270
+ # <cluster>
36271
+ # <name>mycluster<name>
36272
+ # </cluster>
36273
+ # </vm>
36274
+ # ----
36275
+ #
34498
36276
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
34499
36277
  #
34500
36278
  # @option opts [Hash] :query ({}) Additional URL query parameters.
@@ -34516,6 +36294,7 @@ module OvirtSDK4
34516
36294
  [:filter, TrueClass].freeze,
34517
36295
  [:follow, String].freeze,
34518
36296
  [:max, Integer].freeze,
36297
+ [:ovf_as_ova, TrueClass].freeze,
34519
36298
  [:search, String].freeze,
34520
36299
  ].freeze
34521
36300
 
@@ -34559,6 +36338,16 @@ module OvirtSDK4
34559
36338
  #
34560
36339
  # @option opts [Integer] :max The maximum number of results to return.
34561
36340
  #
36341
+ # @option opts [Boolean] :ovf_as_ova Indicates if the results should expose the OVF as it appears in OVA files of that VM. The OVF document
36342
+ # describing the virtual machine. This parameter will work only when all_content=True is set.
36343
+ # The OVF will be presented in `initialization.configuration.data`.
36344
+ #
36345
+ # For example:
36346
+ # [source]
36347
+ # ----
36348
+ # GET /vms?all_content=true&ovf_as_ova=true
36349
+ # ----
36350
+ #
34562
36351
  # @option opts [String] :search A query string used to restrict the returned virtual machines.
34563
36352
  #
34564
36353
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
@@ -34755,7 +36544,7 @@ module OvirtSDK4
34755
36544
  #
34756
36545
  # Please note that there is a default network filter to each VNIC profile.
34757
36546
  # For more details of how the default network filter is calculated please refer to
34758
- # the documentation in <<services/network_filters,NetworkFilters>>.
36547
+ # the documentation in xref:services-network_filters[NetworkFilters].
34759
36548
  #
34760
36549
  # NOTE: The automatically created vNIC profile for the external network will be without network filter.
34761
36550
  #
@@ -35067,7 +36856,7 @@ module OvirtSDK4
35067
36856
  # Copies a disk to the specified storage domain.
35068
36857
  #
35069
36858
  # IMPORTANT: Since version 4.2 of the engine this operation is deprecated, and preserved only for backwards
35070
- # compatibility. It will be removed in the future. To copy a disk use the <<services/disk/methods/copy, copy>>
36859
+ # compatibility. It will be removed in the future. To copy a disk use the xref:services-disk-methods-copy[copy]
35071
36860
  # operation of the service that manages that disk.
35072
36861
  #
35073
36862
  # @param opts [Hash] Additional options.
@@ -35099,7 +36888,7 @@ module OvirtSDK4
35099
36888
  # Exports a disk to an export storage domain.
35100
36889
  #
35101
36890
  # IMPORTANT: Since version 4.2 of the engine this operation is deprecated, and preserved only for backwards
35102
- # compatibility. It will be removed in the future. To export a disk use the <<services/disk/methods/export, export>>
36891
+ # compatibility. It will be removed in the future. To export a disk use the xref:services-disk-methods-export[export]
35103
36892
  # operation of the service that manages that disk.
35104
36893
  #
35105
36894
  # @param opts [Hash] Additional options.
@@ -35160,7 +36949,7 @@ module OvirtSDK4
35160
36949
  # Moves a disk to another storage domain.
35161
36950
  #
35162
36951
  # IMPORTANT: Since version 4.2 of the engine this operation is deprecated, and preserved only for backwards
35163
- # compatibility. It will be removed in the future. To move a disk use the <<services/disk/methods/move, move>>
36952
+ # compatibility. It will be removed in the future. To move a disk use the xref:services-disk-methods-move[move]
35164
36953
  # operation of the service that manages that disk.
35165
36954
  #
35166
36955
  # @param opts [Hash] Additional options.
@@ -35216,7 +37005,7 @@ module OvirtSDK4
35216
37005
  # Removes a disk.
35217
37006
  #
35218
37007
  # IMPORTANT: Since version 4.2 of the engine this operation is deprecated, and preserved only for backwards
35219
- # compatibility. It will be removed in the future. To remove a disk use the <<services/disk/methods/remove, remove>>
37008
+ # compatibility. It will be removed in the future. To remove a disk use the xref:services-disk-methods-remove[remove]
35220
37009
  # operation of the service that manages that disk.
35221
37010
  #
35222
37011
  # @param opts [Hash] Additional options.
@@ -35243,7 +37032,7 @@ module OvirtSDK4
35243
37032
  # Sparsify the disk.
35244
37033
  #
35245
37034
  # IMPORTANT: Since version 4.2 of the engine this operation is deprecated, and preserved only for backwards
35246
- # compatibility. It will be removed in the future. To remove a disk use the <<services/disk/methods/remove, remove>>
37035
+ # compatibility. It will be removed in the future. To remove a disk use the xref:services-disk-methods-remove[remove]
35247
37036
  # operation of the service that manages that disk.
35248
37037
  #
35249
37038
  # @param opts [Hash] Additional options.
@@ -35271,7 +37060,7 @@ module OvirtSDK4
35271
37060
  #
35272
37061
  # IMPORTANT: Since version 4.2 of the engine this operation is deprecated, and preserved only for backwards
35273
37062
  # compatibility. It will be removed in the future. To update a disk use the
35274
- # <<services/disk/methods/update, update>> operation of the service that manages that disk.
37063
+ # xref:services-disk-methods-update[update] operation of the service that manages that disk.
35275
37064
  #
35276
37065
  # @param disk [Disk] The update to apply to the disk.
35277
37066
  # @param opts [Hash] Additional options.
@@ -35339,6 +37128,60 @@ module OvirtSDK4
35339
37128
 
35340
37129
  class DiskService < MeasurableService
35341
37130
 
37131
+ CONVERT = [
37132
+ [:disk, Disk].freeze,
37133
+ [:follow, String].freeze,
37134
+ ].freeze
37135
+
37136
+ private_constant :CONVERT
37137
+
37138
+ #
37139
+ # Converts disk format and/or preallocation mode.
37140
+ #
37141
+ # For example, to convert the disk format from preallocated-cow to a sparse-raw image,
37142
+ # send a request like the following:
37143
+ #
37144
+ # [source]
37145
+ # ----
37146
+ # POST /ovirt-engine/api/disks/123/convert
37147
+ # ----
37148
+ #
37149
+ # With the following request body:
37150
+ #
37151
+ # [source,xml]
37152
+ # ----
37153
+ # <action>
37154
+ # <disk>
37155
+ # <sparse>true</sparse>
37156
+ # <format>raw</format>
37157
+ # </disk>
37158
+ # </action>
37159
+ # ----
37160
+ #
37161
+ # Note: In order to sparsify a disk, two conversions might be needed if the disk is on a Block Storage Domain.
37162
+ # For example: If a disk is RAW, converting it to QCOW will result in a larger disk. In order to reduce the size,
37163
+ # it is possible to convert the disk again to QCOW and keep the same allocation policy.
37164
+ #
37165
+ # @param opts [Hash] Additional options.
37166
+ #
37167
+ # @option opts [Disk] :disk The description of the disk.
37168
+ #
37169
+ # @option opts [String] :follow Indicates which inner links should be _followed_. The objects referenced by these links will be fetched as part
37170
+ # of the current request. See <<documents/003_common_concepts/follow, here>> for details.
37171
+ #
37172
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
37173
+ #
37174
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
37175
+ #
37176
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
37177
+ # given then the timeout set globally for the connection will be used.
37178
+ #
37179
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
37180
+ #
37181
+ def convert(opts = {})
37182
+ internal_action(:convert, nil, CONVERT, opts)
37183
+ end
37184
+
35342
37185
  COPY = [
35343
37186
  [:async, TrueClass].freeze,
35344
37187
  [:disk, Disk].freeze,
@@ -35638,7 +37481,7 @@ module OvirtSDK4
35638
37481
  # Refreshing a direct LUN disk is useful when:
35639
37482
  #
35640
37483
  # - The LUN was added using the API without the host parameter, and therefore does not contain
35641
- # any information from the storage (see <<services/disks/methods/add, DisksService::add>>).
37484
+ # any information from the storage (see xref:services-disks-methods-add[DisksService::add]).
35642
37485
  # - New information about the LUN is available on the storage and you want to update the LUN with it.
35643
37486
  #
35644
37487
  # To refresh direct LUN disk `123` using host `456`, send the following request:
@@ -35742,7 +37585,9 @@ module OvirtSDK4
35742
37585
  #
35743
37586
  # * For LUN disks: `alias`, `description` and `shareable`.
35744
37587
  #
35745
- # * For Cinder and Managed Block disks: `provisioned_size`, `alias` and `description`.
37588
+ # * Cinder integration has been replaced by Managed Block Storage.
37589
+ #
37590
+ # * For Managed Block disks: `provisioned_size`, `alias` and `description`.
35746
37591
  #
35747
37592
  # * For VM attached disks, the `qcow_version` can also be updated.
35748
37593
  #
@@ -35785,6 +37630,26 @@ module OvirtSDK4
35785
37630
  internal_update(disk, Disk, UPDATE, opts)
35786
37631
  end
35787
37632
 
37633
+ #
37634
+ # Reference to the service that manages the DiskSnapshots.
37635
+ #
37636
+ # For example, to list all disk snapshots under the disks resource '123':
37637
+ #
37638
+ # ....
37639
+ # GET /ovirt-engine/api/disks/123/disksnapshots
37640
+ # ....
37641
+ #
37642
+ # For example, to retrieve a specific disk snapshot '789' under the disk resource '123':
37643
+ # ....
37644
+ # GET /ovirt-engine/api/disks/123/disksnapshots/789
37645
+ # ....
37646
+ #
37647
+ # @return [DiskSnapshotsService] A reference to `disk_snapshots` service.
37648
+ #
37649
+ def disk_snapshots_service
37650
+ @disk_snapshots_service ||= DiskSnapshotsService.new(self, 'disksnapshots')
37651
+ end
37652
+
35788
37653
  #
35789
37654
  # Reference to the service that manages the permissions assigned to the disk.
35790
37655
  #
@@ -35814,6 +37679,12 @@ module OvirtSDK4
35814
37679
  if path.nil? || path == ''
35815
37680
  return self
35816
37681
  end
37682
+ if path == 'disksnapshots'
37683
+ return disk_snapshots_service
37684
+ end
37685
+ if path.start_with?('disksnapshots/')
37686
+ return disk_snapshots_service.service(path[14..-1])
37687
+ end
35817
37688
  if path == 'permissions'
35818
37689
  return permissions_service
35819
37690
  end
@@ -36272,7 +38143,7 @@ module OvirtSDK4
36272
38143
  #
36273
38144
  # Removes a brick from the underlying gluster volume and deletes entries from database. This can be used only when
36274
38145
  # removing a single brick without data migration. To remove multiple bricks and with data migration, use
36275
- # <<services/gluster_bricks/methods/migrate, migrate>> instead.
38146
+ # xref:services-gluster_bricks-methods-migrate[migrate] instead.
36276
38147
  #
36277
38148
  # For example, to delete brick `234` from gluster volume `123`, send a request like this:
36278
38149
  #
@@ -36308,8 +38179,8 @@ module OvirtSDK4
36308
38179
  # Replaces this brick with a new one.
36309
38180
  #
36310
38181
  # IMPORTANT: This operation has been deprecated since version 3.5 of the engine and will be removed in the future.
36311
- # Use <<services/gluster_bricks/methods/add, add brick(s)>> and
36312
- # <<services/gluster_bricks/methods/migrate, migrate brick(s)>> instead.
38182
+ # Use xref:services-gluster_bricks-methods-add[add brick(s)] and
38183
+ # xref:services-gluster_bricks-methods-migrate[migrate brick(s)] instead.
36313
38184
  #
36314
38185
  # @param opts [Hash] Additional options.
36315
38186
  #
@@ -36928,6 +38799,7 @@ module OvirtSDK4
36928
38799
  [:async, TrueClass].freeze,
36929
38800
  [:cluster, Cluster].freeze,
36930
38801
  [:host, Host].freeze,
38802
+ [:reboot, TrueClass].freeze,
36931
38803
  ].freeze
36932
38804
 
36933
38805
  private_constant :APPROVE
@@ -36949,6 +38821,8 @@ module OvirtSDK4
36949
38821
  #
36950
38822
  # @option opts [Host] :host The host to approve.
36951
38823
  #
38824
+ # @option opts [Boolean] :reboot Indicates if the host should be rebooted after successful installation. The default value is `true`.
38825
+ #
36952
38826
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
36953
38827
  #
36954
38828
  # @option opts [Hash] :query ({}) Additional URL query parameters.
@@ -36993,10 +38867,10 @@ module OvirtSDK4
36993
38867
  # ----
36994
38868
  #
36995
38869
  # IMPORTANT: Since {engine-name} 4.3, it is possible to also specify `commit_on_success` in
36996
- # the <<services/host/methods/setup_networks, setupnetworks>> request, in which case the new
38870
+ # the xref:services-host-methods-setup_networks[setupnetworks] request, in which case the new
36997
38871
  # configuration is automatically saved in the {hypervisor-name} upon completing the setup and
36998
38872
  # re-establishing connectivity between the {hypervisor-name} and {engine-name}, and without
36999
- # waiting for a separate <<services/host/methods/commit_net_config, commitnetconfig>> request.
38873
+ # waiting for a separate xref:services-host-methods-commit_net_config[commitnetconfig] request.
37000
38874
  #
37001
38875
  # @param opts [Hash] Additional options.
37002
38876
  #
@@ -37025,6 +38899,9 @@ module OvirtSDK4
37025
38899
  #
37026
38900
  # Copy the network configuration of the specified host to current host.
37027
38901
  #
38902
+ # IMPORTANT: Any network attachments that are not present on the source host will be erased from the target host
38903
+ # by the copy operation.
38904
+ #
37028
38905
  # To copy networks from another host, send a request like this:
37029
38906
  #
37030
38907
  # [source]
@@ -37037,7 +38914,7 @@ module OvirtSDK4
37037
38914
  # [source,xml]
37038
38915
  # ----
37039
38916
  # <action>
37040
- # <sourceHost id="456" />
38917
+ # <source_host id="456"/>
37041
38918
  # </action>
37042
38919
  # ----
37043
38920
  #
@@ -37093,6 +38970,75 @@ module OvirtSDK4
37093
38970
  internal_action(:deactivate, nil, DEACTIVATE, opts)
37094
38971
  end
37095
38972
 
38973
+ DISCOVER_ISCSI = [
38974
+ [:async, TrueClass].freeze,
38975
+ [:iscsi, IscsiDetails].freeze,
38976
+ ].freeze
38977
+
38978
+ private_constant :DISCOVER_ISCSI
38979
+
38980
+ #
38981
+ # Discovers iSCSI targets on the host, using the initiator details.
38982
+ # Returns a list of IscsiDetails objects containing the discovered data.
38983
+ #
38984
+ # For example, to discover iSCSI targets available in `myiscsi.example.com`,
38985
+ # from host `123`, send a request like this:
38986
+ #
38987
+ # [source]
38988
+ # ----
38989
+ # POST /ovirt-engine/api/hosts/123/discoveriscsi
38990
+ # ----
38991
+ #
38992
+ # With a request body like this:
38993
+ #
38994
+ # [source,xml]
38995
+ # ----
38996
+ # <action>
38997
+ # <iscsi>
38998
+ # <address>myiscsi.example.com</address>
38999
+ # </iscsi>
39000
+ # </action>
39001
+ # ----
39002
+ #
39003
+ # The result will be like this:
39004
+ #
39005
+ # [source,xml]
39006
+ # ----
39007
+ # <discovered_targets>
39008
+ # <iscsi_details>
39009
+ # <address>10.35.1.72</address>
39010
+ # <port>3260</port>
39011
+ # <portal>10.35.1.72:3260,1</portal>
39012
+ # <target>iqn.2015-08.com.tgt:444</target>
39013
+ # </iscsi_details>
39014
+ # </discovered_targets>
39015
+ # ----
39016
+ #
39017
+ # IMPORTANT: When using this method to discover iscsi targets, you can use an FQDN or an
39018
+ # IP address, but you must use the iscsi details from the discovered targets results to log in
39019
+ # using the iscsilogin method.
39020
+ #
39021
+ # @param opts [Hash] Additional options.
39022
+ #
39023
+ # @option opts [Boolean] :async Indicates if the discovery should be performed asynchronously.
39024
+ #
39025
+ # @option opts [Array<IscsiDetails>] :discovered_targets The discovered targets including all connection information.
39026
+ #
39027
+ # @option opts [IscsiDetails] :iscsi The target iSCSI device.
39028
+ #
39029
+ # @option opts [Hash] :headers ({}) Additional HTTP headers.
39030
+ #
39031
+ # @option opts [Hash] :query ({}) Additional URL query parameters.
39032
+ #
39033
+ # @option opts [Integer] :timeout (nil) The timeout for this request, in seconds. If no value is explicitly
39034
+ # given then the timeout set globally for the connection will be used.
39035
+ #
39036
+ # @option opts [Boolean] :wait (true) If `true` wait for the response.
39037
+ #
39038
+ def discover_iscsi(opts = {})
39039
+ internal_action(:discoveriscsi, :discovered_targets, DISCOVER_ISCSI, opts)
39040
+ end
39041
+
37096
39042
  ENROLL_CERTIFICATE = [
37097
39043
  [:async, TrueClass].freeze,
37098
39044
  ].freeze
@@ -37278,6 +39224,7 @@ module OvirtSDK4
37278
39224
  [:deploy_hosted_engine, TrueClass].freeze,
37279
39225
  [:host, Host].freeze,
37280
39226
  [:image, String].freeze,
39227
+ [:reboot, TrueClass].freeze,
37281
39228
  [:root_password, String].freeze,
37282
39229
  [:ssh, Ssh].freeze,
37283
39230
  [:undeploy_hosted_engine, TrueClass].freeze,
@@ -37329,9 +39276,10 @@ module OvirtSDK4
37329
39276
  # --data '
37330
39277
  # {
37331
39278
  # "root_password": "myrootpassword"
39279
+ # "deploy_hosted_engine" : "true"
37332
39280
  # }
37333
39281
  # ' \
37334
- # "https://engine.example.com/ovirt-engine/api/hosts/123?deploy_hosted_engine=true"
39282
+ # "https://engine.example.com/ovirt-engine/api/hosts/123"
37335
39283
  # ----
37336
39284
  #
37337
39285
  # IMPORTANT: Since version 4.1.2 of the engine, when a host is reinstalled we override the host firewall
@@ -37354,6 +39302,8 @@ module OvirtSDK4
37354
39302
  #
37355
39303
  # @option opts [String] :image When installing {hypervisor-name}, an ISO image file is required.
37356
39304
  #
39305
+ # @option opts [Boolean] :reboot Indicates if the host should be rebooted after successful installation. The default value is `true`.
39306
+ #
37357
39307
  # @option opts [String] :root_password The password of the `root` user used to connect to the host via SSH.
37358
39308
  #
37359
39309
  # @option opts [Ssh] :ssh The SSH details used to connect to the host.
@@ -37382,8 +39332,12 @@ module OvirtSDK4
37382
39332
 
37383
39333
  private_constant :ISCSI_DISCOVER
37384
39334
 
39335
+ #
39336
+ # This method has been deprecated since Engine version 4.4.6.
39337
+ # DiscoverIscsi should be used instead.
37385
39338
  #
37386
39339
  # Discovers iSCSI targets on the host, using the initiator details.
39340
+ # Returns an array of strings containing the discovered data.
37387
39341
  #
37388
39342
  # For example, to discover iSCSI targets available in `myiscsi.example.com`,
37389
39343
  # from host `123`, send a request like this:
@@ -37404,32 +39358,14 @@ module OvirtSDK4
37404
39358
  # </action>
37405
39359
  # ----
37406
39360
  #
37407
- # The result will be like this:
37408
- #
37409
- # [source,xml]
37410
- # ----
37411
- # <discovered_targets>
37412
- # <iscsi_details>
37413
- # <address>10.35.1.72</address>
37414
- # <port>3260</port>
37415
- # <portal>10.35.1.72:3260,1</portal>
37416
- # <target>iqn.2015-08.com.tgt:444</target>
37417
- # </iscsi_details>
37418
- # </discovered_targets>
37419
- # ----
37420
- #
37421
39361
  # @param opts [Hash] Additional options.
37422
39362
  #
37423
39363
  # @option opts [Boolean] :async Indicates if the discovery should be performed asynchronously.
37424
39364
  #
37425
- # @option opts [Array<IscsiDetails>] :discovered_targets The discovered targets including all connection information.
37426
- #
37427
39365
  # @option opts [IscsiDetails] :iscsi The target iSCSI device.
37428
39366
  #
37429
39367
  # @option opts [Array<String>] :iscsi_targets The iSCSI targets.
37430
- #
37431
- # Since version 4.2 of the engine, this parameter is deprecated, use
37432
- # `discovered_targets` instead.
39368
+ # *
37433
39369
  #
37434
39370
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
37435
39371
  #
@@ -37454,6 +39390,10 @@ module OvirtSDK4
37454
39390
  #
37455
39391
  # Login to iSCSI targets on the host, using the target details.
37456
39392
  #
39393
+ #
39394
+ # IMPORTANT: When using this method to log in, you must use the iscsi details from the
39395
+ # discovered targets results in the discoveriscsi method.
39396
+ #
37457
39397
  # @param opts [Hash] Additional options.
37458
39398
  #
37459
39399
  # @option opts [Boolean] :async Indicates if the login should be performed asynchronously.
@@ -37619,8 +39559,8 @@ module OvirtSDK4
37619
39559
  # <name>bond0</name>
37620
39560
  # </host_nic>
37621
39561
  # <ip_address_assignments>
37622
- # <assignment_method>static</assignment_method>
37623
39562
  # <ip_address_assignment>
39563
+ # <assignment_method>static</assignment_method>
37624
39564
  # <ip>
37625
39565
  # <address>192.168.122.10</address>
37626
39566
  # <netmask>255.255.255.0</netmask>
@@ -37724,13 +39664,13 @@ module OvirtSDK4
37724
39664
  # ----
37725
39665
  #
37726
39666
  # IMPORTANT: To make sure that the network configuration has been saved in the host, and that it will be applied
37727
- # when the host is rebooted, remember to call <<services/host/methods/commit_net_config, commitnetconfig>>.
39667
+ # when the host is rebooted, remember to call xref:services-host-methods-commit_net_config[commitnetconfig].
37728
39668
  #
37729
39669
  # IMPORTANT: Since {engine-name} 4.3, it is possible to also specify `commit_on_success` in
37730
- # the <<services/host/methods/setup_networks, setupnetworks>> request, in which case the new
39670
+ # the xref:services-host-methods-setup_networks[setupnetworks] request, in which case the new
37731
39671
  # configuration is automatically saved in the {hypervisor-name} upon completing the setup and
37732
39672
  # re-establishing connectivity between the {hypervisor-name} and {engine-name}, and without
37733
- # waiting for a separate <<services/host/methods/commit_net_config, commitnetconfig>> request.
39673
+ # waiting for a separate xref:services-host-methods-commit_net_config[commitnetconfig] request.
37734
39674
  #
37735
39675
  # @param opts [Hash] Additional options.
37736
39676
  #
@@ -37740,7 +39680,7 @@ module OvirtSDK4
37740
39680
  #
37741
39681
  # @option opts [Boolean] :commit_on_success Specifies whether to automatically save the configuration in the {hypervisor-name} upon completing
37742
39682
  # the setup and re-establishing connectivity between the {hypervisor-name} and {engine-name},
37743
- # and without waiting for a separate <<services/host/methods/commit_net_config, commitnetconfig>>
39683
+ # and without waiting for a separate xref:services-host-methods-commit_net_config[commitnetconfig]
37744
39684
  # request.
37745
39685
  # The default value is `false`, which means that the configuration will not be
37746
39686
  # saved automatically.
@@ -37941,7 +39881,7 @@ module OvirtSDK4
37941
39881
  # Check if there are upgrades available for the host. If there are upgrades available an icon will be displayed
37942
39882
  # next to host status icon in the Administration Portal. Audit log messages are also added to indicate the
37943
39883
  # availability of upgrades. The upgrade can be started from the webadmin or by using the
37944
- # <<services/host/methods/upgrade, upgrade>> host action.
39884
+ # xref:services-host-methods-upgrade[upgrade] host action.
37945
39885
  #
37946
39886
  # @param opts [Hash] Additional options.
37947
39887
  #
@@ -37963,6 +39903,7 @@ module OvirtSDK4
37963
39903
  [:async, TrueClass].freeze,
37964
39904
  [:cluster, Cluster].freeze,
37965
39905
  [:host, Host].freeze,
39906
+ [:reboot, TrueClass].freeze,
37966
39907
  ].freeze
37967
39908
 
37968
39909
  private_constant :APPROVE_USING_ROOT_PASSWORD
@@ -37982,6 +39923,8 @@ module OvirtSDK4
37982
39923
  #
37983
39924
  # @option opts [Host] :host The host to approve.
37984
39925
  #
39926
+ # @option opts [Boolean] :reboot Indicates if the host should be rebooted after successful installation. The default value is `true`.
39927
+ #
37985
39928
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
37986
39929
  #
37987
39930
  # @option opts [Hash] :query ({}) Additional URL query parameters.
@@ -38001,6 +39944,7 @@ module OvirtSDK4
38001
39944
  [:deploy_hosted_engine, TrueClass].freeze,
38002
39945
  [:host, Host].freeze,
38003
39946
  [:image, String].freeze,
39947
+ [:reboot, TrueClass].freeze,
38004
39948
  [:root_password, String].freeze,
38005
39949
  [:ssh, Ssh].freeze,
38006
39950
  [:undeploy_hosted_engine, TrueClass].freeze,
@@ -38029,6 +39973,8 @@ module OvirtSDK4
38029
39973
  #
38030
39974
  # @option opts [String] :image When installing {hypervisor-name}, an ISO image file is required.
38031
39975
  #
39976
+ # @option opts [Boolean] :reboot Indicates if the host should be rebooted after successful installation. The default value is `true`.
39977
+ #
38032
39978
  # @option opts [String] :root_password The password of the `root` user used to connect to the host via SSH.
38033
39979
  #
38034
39980
  # @option opts [Ssh] :ssh The SSH details used to connect to the host.
@@ -38084,6 +40030,7 @@ module OvirtSDK4
38084
40030
  [:async, TrueClass].freeze,
38085
40031
  [:cluster, Cluster].freeze,
38086
40032
  [:host, Host].freeze,
40033
+ [:reboot, TrueClass].freeze,
38087
40034
  ].freeze
38088
40035
 
38089
40036
  private_constant :APPROVE_USING_SSH
@@ -38104,6 +40051,8 @@ module OvirtSDK4
38104
40051
  #
38105
40052
  # @option opts [Host] :host The host to approve.
38106
40053
  #
40054
+ # @option opts [Boolean] :reboot Indicates if the host should be rebooted after successful installation. The default value is `true`.
40055
+ #
38107
40056
  # @option opts [Hash] :headers ({}) Additional HTTP headers.
38108
40057
  #
38109
40058
  # @option opts [Hash] :query ({}) Additional URL query parameters.
@@ -38123,6 +40072,7 @@ module OvirtSDK4
38123
40072
  [:deploy_hosted_engine, TrueClass].freeze,
38124
40073
  [:host, Host].freeze,
38125
40074
  [:image, String].freeze,
40075
+ [:reboot, TrueClass].freeze,
38126
40076
  [:root_password, String].freeze,
38127
40077
  [:ssh, Ssh].freeze,
38128
40078
  [:undeploy_hosted_engine, TrueClass].freeze,
@@ -38151,6 +40101,8 @@ module OvirtSDK4
38151
40101
  #
38152
40102
  # @option opts [String] :image When installing {hypervisor-name}, an ISO image file is required.
38153
40103
  #
40104
+ # @option opts [Boolean] :reboot Indicates if the host should be rebooted after successful installation. The default value is `true`.
40105
+ #
38154
40106
  # @option opts [String] :root_password The password of the `root` user used to connect to the host via SSH.
38155
40107
  #
38156
40108
  # @option opts [Ssh] :ssh The SSH details used to connect to the host.
@@ -38210,6 +40162,17 @@ module OvirtSDK4
38210
40162
  @affinity_labels_service ||= AssignedAffinityLabelsService.new(self, 'affinitylabels')
38211
40163
  end
38212
40164
 
40165
+ #
40166
+ # A reference to the list of all host's CPUs with detailed information
40167
+ # about the topology (socket, core) and with information
40168
+ # about the current CPU pinning.
40169
+ #
40170
+ # @return [HostCpuUnitsService] A reference to `cpu_units` service.
40171
+ #
40172
+ def cpu_units_service
40173
+ @cpu_units_service ||= HostCpuUnitsService.new(self, 'cpuunits')
40174
+ end
40175
+
38213
40176
  #
38214
40177
  # A reference to the host devices service. Use this service to view the devices of the host object.
38215
40178
  #
@@ -38357,6 +40320,12 @@ module OvirtSDK4
38357
40320
  if path.start_with?('affinitylabels/')
38358
40321
  return affinity_labels_service.service(path[15..-1])
38359
40322
  end
40323
+ if path == 'cpuunits'
40324
+ return cpu_units_service
40325
+ end
40326
+ if path.start_with?('cpuunits/')
40327
+ return cpu_units_service.service(path[9..-1])
40328
+ end
38360
40329
  if path == 'devices'
38361
40330
  return devices_service
38362
40331
  end