diff --git a/CHANGES b/CHANGES index 02cf4ff..d0e358e 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,6 @@ +0.9.11 (18-Dec-2015) +* Update to latest XenAPI from xen-api.git#098c548 + 0.9.10 (27-Oct-2015) * use non-blocking Async print functions diff --git a/_oasis b/_oasis index fef9dfe..43c44ee 100644 --- a/_oasis +++ b/_oasis @@ -1,6 +1,6 @@ OASISFormat: 0.3 Name: xen-api-client -Version: 0.9.10 +Version: 0.9.11 Synopsis: Xen API client Authors: Jonathan Ludlam, Anil Madhavapeddy, David Scott License: LGPL-2.0 with OCaml linking exception diff --git a/lib/aPI.ml b/lib/aPI.ml index 16b4fe6..acf757a 100644 --- a/lib/aPI.ml +++ b/lib/aPI.ml @@ -94,6 +94,7 @@ type vdi_type_set = vdi_type list with rpc type vdi_operations = [ `scan | `clone | `copy | `resize | `resize_online | `snapshot | `destroy | `forget | `update | `force_unlock | `generate_config | `blocked ] with rpc type string_to_vdi_operations_map = (string * vdi_operations) list with rpc type vdi_operations_set = vdi_operations list with rpc +type ref_LVHD = [`LVHD] Ref.t with rpc type ref_DR_task = [`DR_task] Ref.t with rpc type string_to_ref_blob_map = (string * ref_blob) list with rpc type storage_operations = [ `scan | `destroy | `forget | `plug | `unplug | `update | `vdi_create | `vdi_introduce | `vdi_destroy | `vdi_resize | `vdi_clone | `vdi_snapshot | `pbd_create | `pbd_destroy ] with rpc @@ -249,6 +250,7 @@ type event_operation_set = event_operation list with rpc type ref_data_source = [`data_source] Ref.t with rpc type ref_data_source_set = [`data_source] Ref.t list with rpc type ref_user_set = [`user] Ref.t list with rpc +type ref_LVHD_set = [`LVHD] Ref.t list with rpc type ref_event = [`event] Ref.t with rpc type ref_event_set = [`event] Ref.t list with rpc type ref_auth = [`auth] Ref.t with rpc @@ -351,15 +353,21 @@ let vDI_t_of_rpc x = on_dict (fun x -> { vDI_uuid = string_of_rpc (List.assoc "u type ref_VDI_to_vDI_t_map = (ref_VDI * vDI_t) list with rpc type vDI_t_set = vDI_t list with rpc -type sR_t = { sR_uuid : string; sR_name_label : string; sR_name_description : string; sR_allowed_operations : storage_operations_set; sR_current_operations : string_to_storage_operations_map; sR_VDIs : ref_VDI_set; sR_PBDs : ref_PBD_set; sR_virtual_allocation : int64; sR_physical_utilisation : int64; sR_physical_size : int64; sR_type : string; sR_content_type : string; sR_shared : bool; sR_other_config : string_to_string_map; sR_tags : string_set; sR_sm_config : string_to_string_map; sR_blobs : string_to_ref_blob_map; sR_local_cache_enabled : bool; sR_introduced_by : ref_DR_task } -let rpc_of_sR_t x = Rpc.Dict [ "uuid",rpc_of_string x.sR_uuid; "name_label",rpc_of_string x.sR_name_label; "name_description",rpc_of_string x.sR_name_description; "allowed_operations",rpc_of_storage_operations_set x.sR_allowed_operations; "current_operations",rpc_of_string_to_storage_operations_map x.sR_current_operations; "VDIs",rpc_of_ref_VDI_set x.sR_VDIs; "PBDs",rpc_of_ref_PBD_set x.sR_PBDs; "virtual_allocation",rpc_of_int64 x.sR_virtual_allocation; "physical_utilisation",rpc_of_int64 x.sR_physical_utilisation; "physical_size",rpc_of_int64 x.sR_physical_size; "type",rpc_of_string x.sR_type; "content_type",rpc_of_string x.sR_content_type; "shared",rpc_of_bool x.sR_shared; "other_config",rpc_of_string_to_string_map x.sR_other_config; "tags",rpc_of_string_set x.sR_tags; "sm_config",rpc_of_string_to_string_map x.sR_sm_config; "blobs",rpc_of_string_to_ref_blob_map x.sR_blobs; "local_cache_enabled",rpc_of_bool x.sR_local_cache_enabled; "introduced_by",rpc_of_ref_DR_task x.sR_introduced_by ] -let sR_t_of_rpc x = on_dict (fun x -> { sR_uuid = string_of_rpc (List.assoc "uuid" x); sR_name_label = string_of_rpc (List.assoc "name_label" x); sR_name_description = string_of_rpc (List.assoc "name_description" x); sR_allowed_operations = storage_operations_set_of_rpc (List.assoc "allowed_operations" x); sR_current_operations = string_to_storage_operations_map_of_rpc (List.assoc "current_operations" x); sR_VDIs = ref_VDI_set_of_rpc (List.assoc "VDIs" x); sR_PBDs = ref_PBD_set_of_rpc (List.assoc "PBDs" x); sR_virtual_allocation = int64_of_rpc (List.assoc "virtual_allocation" x); sR_physical_utilisation = int64_of_rpc (List.assoc "physical_utilisation" x); sR_physical_size = int64_of_rpc (List.assoc "physical_size" x); sR_type = string_of_rpc (List.assoc "type" x); sR_content_type = string_of_rpc (List.assoc "content_type" x); sR_shared = bool_of_rpc (List.assoc "shared" x); sR_other_config = string_to_string_map_of_rpc (List.assoc "other_config" x); sR_tags = string_set_of_rpc (List.assoc "tags" x); sR_sm_config = string_to_string_map_of_rpc (List.assoc "sm_config" x); sR_blobs = string_to_ref_blob_map_of_rpc (List.assoc "blobs" x); sR_local_cache_enabled = bool_of_rpc (List.assoc "local_cache_enabled" x); sR_introduced_by = ref_DR_task_of_rpc (List.assoc "introduced_by" x) }) x +type lVHD_t = { lVHD_uuid : string } +let rpc_of_lVHD_t x = Rpc.Dict [ "uuid",rpc_of_string x.lVHD_uuid ] +let lVHD_t_of_rpc x = on_dict (fun x -> { lVHD_uuid = string_of_rpc (List.assoc "uuid" x) }) x +type ref_LVHD_to_lVHD_t_map = (ref_LVHD * lVHD_t) list with rpc +type lVHD_t_set = lVHD_t list with rpc + +type sR_t = { sR_uuid : string; sR_name_label : string; sR_name_description : string; sR_allowed_operations : storage_operations_set; sR_current_operations : string_to_storage_operations_map; sR_VDIs : ref_VDI_set; sR_PBDs : ref_PBD_set; sR_virtual_allocation : int64; sR_physical_utilisation : int64; sR_physical_size : int64; sR_type : string; sR_content_type : string; sR_shared : bool; sR_other_config : string_to_string_map; sR_tags : string_set; sR_sm_config : string_to_string_map; sR_blobs : string_to_ref_blob_map; sR_local_cache_enabled : bool; sR_introduced_by : ref_DR_task; sR_clustered : bool } +let rpc_of_sR_t x = Rpc.Dict [ "uuid",rpc_of_string x.sR_uuid; "name_label",rpc_of_string x.sR_name_label; "name_description",rpc_of_string x.sR_name_description; "allowed_operations",rpc_of_storage_operations_set x.sR_allowed_operations; "current_operations",rpc_of_string_to_storage_operations_map x.sR_current_operations; "VDIs",rpc_of_ref_VDI_set x.sR_VDIs; "PBDs",rpc_of_ref_PBD_set x.sR_PBDs; "virtual_allocation",rpc_of_int64 x.sR_virtual_allocation; "physical_utilisation",rpc_of_int64 x.sR_physical_utilisation; "physical_size",rpc_of_int64 x.sR_physical_size; "type",rpc_of_string x.sR_type; "content_type",rpc_of_string x.sR_content_type; "shared",rpc_of_bool x.sR_shared; "other_config",rpc_of_string_to_string_map x.sR_other_config; "tags",rpc_of_string_set x.sR_tags; "sm_config",rpc_of_string_to_string_map x.sR_sm_config; "blobs",rpc_of_string_to_ref_blob_map x.sR_blobs; "local_cache_enabled",rpc_of_bool x.sR_local_cache_enabled; "introduced_by",rpc_of_ref_DR_task x.sR_introduced_by; "clustered",rpc_of_bool x.sR_clustered ] +let sR_t_of_rpc x = on_dict (fun x -> { sR_uuid = string_of_rpc (List.assoc "uuid" x); sR_name_label = string_of_rpc (List.assoc "name_label" x); sR_name_description = string_of_rpc (List.assoc "name_description" x); sR_allowed_operations = storage_operations_set_of_rpc (List.assoc "allowed_operations" x); sR_current_operations = string_to_storage_operations_map_of_rpc (List.assoc "current_operations" x); sR_VDIs = ref_VDI_set_of_rpc (List.assoc "VDIs" x); sR_PBDs = ref_PBD_set_of_rpc (List.assoc "PBDs" x); sR_virtual_allocation = int64_of_rpc (List.assoc "virtual_allocation" x); sR_physical_utilisation = int64_of_rpc (List.assoc "physical_utilisation" x); sR_physical_size = int64_of_rpc (List.assoc "physical_size" x); sR_type = string_of_rpc (List.assoc "type" x); sR_content_type = string_of_rpc (List.assoc "content_type" x); sR_shared = bool_of_rpc (List.assoc "shared" x); sR_other_config = string_to_string_map_of_rpc (List.assoc "other_config" x); sR_tags = string_set_of_rpc (List.assoc "tags" x); sR_sm_config = string_to_string_map_of_rpc (List.assoc "sm_config" x); sR_blobs = string_to_ref_blob_map_of_rpc (List.assoc "blobs" x); sR_local_cache_enabled = bool_of_rpc (List.assoc "local_cache_enabled" x); sR_introduced_by = ref_DR_task_of_rpc (List.assoc "introduced_by" x); sR_clustered = bool_of_rpc (List.assoc "clustered" x) }) x type ref_SR_to_sR_t_map = (ref_SR * sR_t) list with rpc type sR_t_set = sR_t list with rpc -type sM_t = { sM_uuid : string; sM_name_label : string; sM_name_description : string; sM_type : string; sM_vendor : string; sM_copyright : string; sM_version : string; sM_required_api_version : string; sM_configuration : string_to_string_map; sM_capabilities : string_set; sM_features : string_to_int64_map; sM_other_config : string_to_string_map; sM_driver_filename : string } -let rpc_of_sM_t x = Rpc.Dict [ "uuid",rpc_of_string x.sM_uuid; "name_label",rpc_of_string x.sM_name_label; "name_description",rpc_of_string x.sM_name_description; "type",rpc_of_string x.sM_type; "vendor",rpc_of_string x.sM_vendor; "copyright",rpc_of_string x.sM_copyright; "version",rpc_of_string x.sM_version; "required_api_version",rpc_of_string x.sM_required_api_version; "configuration",rpc_of_string_to_string_map x.sM_configuration; "capabilities",rpc_of_string_set x.sM_capabilities; "features",rpc_of_string_to_int64_map x.sM_features; "other_config",rpc_of_string_to_string_map x.sM_other_config; "driver_filename",rpc_of_string x.sM_driver_filename ] -let sM_t_of_rpc x = on_dict (fun x -> { sM_uuid = string_of_rpc (List.assoc "uuid" x); sM_name_label = string_of_rpc (List.assoc "name_label" x); sM_name_description = string_of_rpc (List.assoc "name_description" x); sM_type = string_of_rpc (List.assoc "type" x); sM_vendor = string_of_rpc (List.assoc "vendor" x); sM_copyright = string_of_rpc (List.assoc "copyright" x); sM_version = string_of_rpc (List.assoc "version" x); sM_required_api_version = string_of_rpc (List.assoc "required_api_version" x); sM_configuration = string_to_string_map_of_rpc (List.assoc "configuration" x); sM_capabilities = string_set_of_rpc (List.assoc "capabilities" x); sM_features = string_to_int64_map_of_rpc (List.assoc "features" x); sM_other_config = string_to_string_map_of_rpc (List.assoc "other_config" x); sM_driver_filename = string_of_rpc (List.assoc "driver_filename" x) }) x +type sM_t = { sM_uuid : string; sM_name_label : string; sM_name_description : string; sM_type : string; sM_vendor : string; sM_copyright : string; sM_version : string; sM_required_api_version : string; sM_configuration : string_to_string_map; sM_capabilities : string_set; sM_features : string_to_int64_map; sM_other_config : string_to_string_map; sM_driver_filename : string; sM_required_cluster_stack : string_set } +let rpc_of_sM_t x = Rpc.Dict [ "uuid",rpc_of_string x.sM_uuid; "name_label",rpc_of_string x.sM_name_label; "name_description",rpc_of_string x.sM_name_description; "type",rpc_of_string x.sM_type; "vendor",rpc_of_string x.sM_vendor; "copyright",rpc_of_string x.sM_copyright; "version",rpc_of_string x.sM_version; "required_api_version",rpc_of_string x.sM_required_api_version; "configuration",rpc_of_string_to_string_map x.sM_configuration; "capabilities",rpc_of_string_set x.sM_capabilities; "features",rpc_of_string_to_int64_map x.sM_features; "other_config",rpc_of_string_to_string_map x.sM_other_config; "driver_filename",rpc_of_string x.sM_driver_filename; "required_cluster_stack",rpc_of_string_set x.sM_required_cluster_stack ] +let sM_t_of_rpc x = on_dict (fun x -> { sM_uuid = string_of_rpc (List.assoc "uuid" x); sM_name_label = string_of_rpc (List.assoc "name_label" x); sM_name_description = string_of_rpc (List.assoc "name_description" x); sM_type = string_of_rpc (List.assoc "type" x); sM_vendor = string_of_rpc (List.assoc "vendor" x); sM_copyright = string_of_rpc (List.assoc "copyright" x); sM_version = string_of_rpc (List.assoc "version" x); sM_required_api_version = string_of_rpc (List.assoc "required_api_version" x); sM_configuration = string_to_string_map_of_rpc (List.assoc "configuration" x); sM_capabilities = string_set_of_rpc (List.assoc "capabilities" x); sM_features = string_to_int64_map_of_rpc (List.assoc "features" x); sM_other_config = string_to_string_map_of_rpc (List.assoc "other_config" x); sM_driver_filename = string_of_rpc (List.assoc "driver_filename" x); sM_required_cluster_stack = string_set_of_rpc (List.assoc "required_cluster_stack" x) }) x type ref_SM_to_sM_t_map = (ref_SM * sM_t) list with rpc type sM_t_set = sM_t list with rpc @@ -465,9 +473,9 @@ let vM_metrics_t_of_rpc x = on_dict (fun x -> { vM_metrics_uuid = string_of_rpc type ref_VM_metrics_to_vM_metrics_t_map = (ref_VM_metrics * vM_metrics_t) list with rpc type vM_metrics_t_set = vM_metrics_t list with rpc -type vM_t = { vM_uuid : string; vM_allowed_operations : vm_operations_set; vM_current_operations : string_to_vm_operations_map; vM_power_state : vm_power_state; vM_name_label : string; vM_name_description : string; vM_user_version : int64; vM_is_a_template : bool; vM_suspend_VDI : ref_VDI; vM_resident_on : ref_host; vM_affinity : ref_host; vM_memory_overhead : int64; vM_memory_target : int64; vM_memory_static_max : int64; vM_memory_dynamic_max : int64; vM_memory_dynamic_min : int64; vM_memory_static_min : int64; vM_VCPUs_params : string_to_string_map; vM_VCPUs_max : int64; vM_VCPUs_at_startup : int64; vM_actions_after_shutdown : on_normal_exit; vM_actions_after_reboot : on_normal_exit; vM_actions_after_crash : on_crash_behaviour; vM_consoles : ref_console_set; vM_VIFs : ref_VIF_set; vM_VBDs : ref_VBD_set; vM_crash_dumps : ref_crashdump_set; vM_VTPMs : ref_VTPM_set; vM_PV_bootloader : string; vM_PV_kernel : string; vM_PV_ramdisk : string; vM_PV_args : string; vM_PV_bootloader_args : string; vM_PV_legacy_args : string; vM_HVM_boot_policy : string; vM_HVM_boot_params : string_to_string_map; vM_HVM_shadow_multiplier : float; vM_platform : string_to_string_map; vM_PCI_bus : string; vM_other_config : string_to_string_map; vM_domid : int64; vM_domarch : string; vM_last_boot_CPU_flags : string_to_string_map; vM_is_control_domain : bool; vM_metrics : ref_VM_metrics; vM_guest_metrics : ref_VM_guest_metrics; vM_last_booted_record : string; vM_recommendations : string; vM_xenstore_data : string_to_string_map; vM_ha_always_run : bool; vM_ha_restart_priority : string; vM_is_a_snapshot : bool; vM_snapshot_of : ref_VM; vM_snapshots : ref_VM_set; vM_snapshot_time : datetime; vM_transportable_snapshot_id : string; vM_blobs : string_to_ref_blob_map; vM_tags : string_set; vM_blocked_operations : vm_operations_to_string_map; vM_snapshot_info : string_to_string_map; vM_snapshot_metadata : string; vM_parent : ref_VM; vM_children : ref_VM_set; vM_bios_strings : string_to_string_map; vM_protection_policy : ref_VMPP; vM_is_snapshot_from_vmpp : bool; vM_appliance : ref_VM_appliance; vM_start_delay : int64; vM_shutdown_delay : int64; vM_order : int64; vM_VGPUs : ref_VGPU_set; vM_attached_PCIs : ref_PCI_set; vM_suspend_SR : ref_SR; vM_version : int64; vM_generation_id : string; vM_hardware_platform_version : int64; vM_auto_update_drivers : bool } -let rpc_of_vM_t x = Rpc.Dict [ "uuid",rpc_of_string x.vM_uuid; "allowed_operations",rpc_of_vm_operations_set x.vM_allowed_operations; "current_operations",rpc_of_string_to_vm_operations_map x.vM_current_operations; "power_state",rpc_of_vm_power_state x.vM_power_state; "name_label",rpc_of_string x.vM_name_label; "name_description",rpc_of_string x.vM_name_description; "user_version",rpc_of_int64 x.vM_user_version; "is_a_template",rpc_of_bool x.vM_is_a_template; "suspend_VDI",rpc_of_ref_VDI x.vM_suspend_VDI; "resident_on",rpc_of_ref_host x.vM_resident_on; "affinity",rpc_of_ref_host x.vM_affinity; "memory_overhead",rpc_of_int64 x.vM_memory_overhead; "memory_target",rpc_of_int64 x.vM_memory_target; "memory_static_max",rpc_of_int64 x.vM_memory_static_max; "memory_dynamic_max",rpc_of_int64 x.vM_memory_dynamic_max; "memory_dynamic_min",rpc_of_int64 x.vM_memory_dynamic_min; "memory_static_min",rpc_of_int64 x.vM_memory_static_min; "VCPUs_params",rpc_of_string_to_string_map x.vM_VCPUs_params; "VCPUs_max",rpc_of_int64 x.vM_VCPUs_max; "VCPUs_at_startup",rpc_of_int64 x.vM_VCPUs_at_startup; "actions_after_shutdown",rpc_of_on_normal_exit x.vM_actions_after_shutdown; "actions_after_reboot",rpc_of_on_normal_exit x.vM_actions_after_reboot; "actions_after_crash",rpc_of_on_crash_behaviour x.vM_actions_after_crash; "consoles",rpc_of_ref_console_set x.vM_consoles; "VIFs",rpc_of_ref_VIF_set x.vM_VIFs; "VBDs",rpc_of_ref_VBD_set x.vM_VBDs; "crash_dumps",rpc_of_ref_crashdump_set x.vM_crash_dumps; "VTPMs",rpc_of_ref_VTPM_set x.vM_VTPMs; "PV_bootloader",rpc_of_string x.vM_PV_bootloader; "PV_kernel",rpc_of_string x.vM_PV_kernel; "PV_ramdisk",rpc_of_string x.vM_PV_ramdisk; "PV_args",rpc_of_string x.vM_PV_args; "PV_bootloader_args",rpc_of_string x.vM_PV_bootloader_args; "PV_legacy_args",rpc_of_string x.vM_PV_legacy_args; "HVM_boot_policy",rpc_of_string x.vM_HVM_boot_policy; "HVM_boot_params",rpc_of_string_to_string_map x.vM_HVM_boot_params; "HVM_shadow_multiplier",rpc_of_float x.vM_HVM_shadow_multiplier; "platform",rpc_of_string_to_string_map x.vM_platform; "PCI_bus",rpc_of_string x.vM_PCI_bus; "other_config",rpc_of_string_to_string_map x.vM_other_config; "domid",rpc_of_int64 x.vM_domid; "domarch",rpc_of_string x.vM_domarch; "last_boot_CPU_flags",rpc_of_string_to_string_map x.vM_last_boot_CPU_flags; "is_control_domain",rpc_of_bool x.vM_is_control_domain; "metrics",rpc_of_ref_VM_metrics x.vM_metrics; "guest_metrics",rpc_of_ref_VM_guest_metrics x.vM_guest_metrics; "last_booted_record",rpc_of_string x.vM_last_booted_record; "recommendations",rpc_of_string x.vM_recommendations; "xenstore_data",rpc_of_string_to_string_map x.vM_xenstore_data; "ha_always_run",rpc_of_bool x.vM_ha_always_run; "ha_restart_priority",rpc_of_string x.vM_ha_restart_priority; "is_a_snapshot",rpc_of_bool x.vM_is_a_snapshot; "snapshot_of",rpc_of_ref_VM x.vM_snapshot_of; "snapshots",rpc_of_ref_VM_set x.vM_snapshots; "snapshot_time",rpc_of_datetime x.vM_snapshot_time; "transportable_snapshot_id",rpc_of_string x.vM_transportable_snapshot_id; "blobs",rpc_of_string_to_ref_blob_map x.vM_blobs; "tags",rpc_of_string_set x.vM_tags; "blocked_operations",rpc_of_vm_operations_to_string_map x.vM_blocked_operations; "snapshot_info",rpc_of_string_to_string_map x.vM_snapshot_info; "snapshot_metadata",rpc_of_string x.vM_snapshot_metadata; "parent",rpc_of_ref_VM x.vM_parent; "children",rpc_of_ref_VM_set x.vM_children; "bios_strings",rpc_of_string_to_string_map x.vM_bios_strings; "protection_policy",rpc_of_ref_VMPP x.vM_protection_policy; "is_snapshot_from_vmpp",rpc_of_bool x.vM_is_snapshot_from_vmpp; "appliance",rpc_of_ref_VM_appliance x.vM_appliance; "start_delay",rpc_of_int64 x.vM_start_delay; "shutdown_delay",rpc_of_int64 x.vM_shutdown_delay; "order",rpc_of_int64 x.vM_order; "VGPUs",rpc_of_ref_VGPU_set x.vM_VGPUs; "attached_PCIs",rpc_of_ref_PCI_set x.vM_attached_PCIs; "suspend_SR",rpc_of_ref_SR x.vM_suspend_SR; "version",rpc_of_int64 x.vM_version; "generation_id",rpc_of_string x.vM_generation_id; "hardware_platform_version",rpc_of_int64 x.vM_hardware_platform_version; "auto_update_drivers",rpc_of_bool x.vM_auto_update_drivers ] -let vM_t_of_rpc x = on_dict (fun x -> { vM_uuid = string_of_rpc (List.assoc "uuid" x); vM_allowed_operations = vm_operations_set_of_rpc (List.assoc "allowed_operations" x); vM_current_operations = string_to_vm_operations_map_of_rpc (List.assoc "current_operations" x); vM_power_state = vm_power_state_of_rpc (List.assoc "power_state" x); vM_name_label = string_of_rpc (List.assoc "name_label" x); vM_name_description = string_of_rpc (List.assoc "name_description" x); vM_user_version = int64_of_rpc (List.assoc "user_version" x); vM_is_a_template = bool_of_rpc (List.assoc "is_a_template" x); vM_suspend_VDI = ref_VDI_of_rpc (List.assoc "suspend_VDI" x); vM_resident_on = ref_host_of_rpc (List.assoc "resident_on" x); vM_affinity = ref_host_of_rpc (List.assoc "affinity" x); vM_memory_overhead = int64_of_rpc (List.assoc "memory_overhead" x); vM_memory_target = int64_of_rpc (List.assoc "memory_target" x); vM_memory_static_max = int64_of_rpc (List.assoc "memory_static_max" x); vM_memory_dynamic_max = int64_of_rpc (List.assoc "memory_dynamic_max" x); vM_memory_dynamic_min = int64_of_rpc (List.assoc "memory_dynamic_min" x); vM_memory_static_min = int64_of_rpc (List.assoc "memory_static_min" x); vM_VCPUs_params = string_to_string_map_of_rpc (List.assoc "VCPUs_params" x); vM_VCPUs_max = int64_of_rpc (List.assoc "VCPUs_max" x); vM_VCPUs_at_startup = int64_of_rpc (List.assoc "VCPUs_at_startup" x); vM_actions_after_shutdown = on_normal_exit_of_rpc (List.assoc "actions_after_shutdown" x); vM_actions_after_reboot = on_normal_exit_of_rpc (List.assoc "actions_after_reboot" x); vM_actions_after_crash = on_crash_behaviour_of_rpc (List.assoc "actions_after_crash" x); vM_consoles = ref_console_set_of_rpc (List.assoc "consoles" x); vM_VIFs = ref_VIF_set_of_rpc (List.assoc "VIFs" x); vM_VBDs = ref_VBD_set_of_rpc (List.assoc "VBDs" x); vM_crash_dumps = ref_crashdump_set_of_rpc (List.assoc "crash_dumps" x); vM_VTPMs = ref_VTPM_set_of_rpc (List.assoc "VTPMs" x); vM_PV_bootloader = string_of_rpc (List.assoc "PV_bootloader" x); vM_PV_kernel = string_of_rpc (List.assoc "PV_kernel" x); vM_PV_ramdisk = string_of_rpc (List.assoc "PV_ramdisk" x); vM_PV_args = string_of_rpc (List.assoc "PV_args" x); vM_PV_bootloader_args = string_of_rpc (List.assoc "PV_bootloader_args" x); vM_PV_legacy_args = string_of_rpc (List.assoc "PV_legacy_args" x); vM_HVM_boot_policy = string_of_rpc (List.assoc "HVM_boot_policy" x); vM_HVM_boot_params = string_to_string_map_of_rpc (List.assoc "HVM_boot_params" x); vM_HVM_shadow_multiplier = float_of_rpc (List.assoc "HVM_shadow_multiplier" x); vM_platform = string_to_string_map_of_rpc (List.assoc "platform" x); vM_PCI_bus = string_of_rpc (List.assoc "PCI_bus" x); vM_other_config = string_to_string_map_of_rpc (List.assoc "other_config" x); vM_domid = int64_of_rpc (List.assoc "domid" x); vM_domarch = string_of_rpc (List.assoc "domarch" x); vM_last_boot_CPU_flags = string_to_string_map_of_rpc (List.assoc "last_boot_CPU_flags" x); vM_is_control_domain = bool_of_rpc (List.assoc "is_control_domain" x); vM_metrics = ref_VM_metrics_of_rpc (List.assoc "metrics" x); vM_guest_metrics = ref_VM_guest_metrics_of_rpc (List.assoc "guest_metrics" x); vM_last_booted_record = string_of_rpc (List.assoc "last_booted_record" x); vM_recommendations = string_of_rpc (List.assoc "recommendations" x); vM_xenstore_data = string_to_string_map_of_rpc (List.assoc "xenstore_data" x); vM_ha_always_run = bool_of_rpc (List.assoc "ha_always_run" x); vM_ha_restart_priority = string_of_rpc (List.assoc "ha_restart_priority" x); vM_is_a_snapshot = bool_of_rpc (List.assoc "is_a_snapshot" x); vM_snapshot_of = ref_VM_of_rpc (List.assoc "snapshot_of" x); vM_snapshots = ref_VM_set_of_rpc (List.assoc "snapshots" x); vM_snapshot_time = datetime_of_rpc (List.assoc "snapshot_time" x); vM_transportable_snapshot_id = string_of_rpc (List.assoc "transportable_snapshot_id" x); vM_blobs = string_to_ref_blob_map_of_rpc (List.assoc "blobs" x); vM_tags = string_set_of_rpc (List.assoc "tags" x); vM_blocked_operations = vm_operations_to_string_map_of_rpc (List.assoc "blocked_operations" x); vM_snapshot_info = string_to_string_map_of_rpc (List.assoc "snapshot_info" x); vM_snapshot_metadata = string_of_rpc (List.assoc "snapshot_metadata" x); vM_parent = ref_VM_of_rpc (List.assoc "parent" x); vM_children = ref_VM_set_of_rpc (List.assoc "children" x); vM_bios_strings = string_to_string_map_of_rpc (List.assoc "bios_strings" x); vM_protection_policy = ref_VMPP_of_rpc (List.assoc "protection_policy" x); vM_is_snapshot_from_vmpp = bool_of_rpc (List.assoc "is_snapshot_from_vmpp" x); vM_appliance = ref_VM_appliance_of_rpc (List.assoc "appliance" x); vM_start_delay = int64_of_rpc (List.assoc "start_delay" x); vM_shutdown_delay = int64_of_rpc (List.assoc "shutdown_delay" x); vM_order = int64_of_rpc (List.assoc "order" x); vM_VGPUs = ref_VGPU_set_of_rpc (List.assoc "VGPUs" x); vM_attached_PCIs = ref_PCI_set_of_rpc (List.assoc "attached_PCIs" x); vM_suspend_SR = ref_SR_of_rpc (List.assoc "suspend_SR" x); vM_version = int64_of_rpc (List.assoc "version" x); vM_generation_id = string_of_rpc (List.assoc "generation_id" x); vM_hardware_platform_version = int64_of_rpc (List.assoc "hardware_platform_version" x); vM_auto_update_drivers = bool_of_rpc (List.assoc "auto_update_drivers" x) }) x +type vM_t = { vM_uuid : string; vM_allowed_operations : vm_operations_set; vM_current_operations : string_to_vm_operations_map; vM_power_state : vm_power_state; vM_name_label : string; vM_name_description : string; vM_user_version : int64; vM_is_a_template : bool; vM_suspend_VDI : ref_VDI; vM_resident_on : ref_host; vM_affinity : ref_host; vM_memory_overhead : int64; vM_memory_target : int64; vM_memory_static_max : int64; vM_memory_dynamic_max : int64; vM_memory_dynamic_min : int64; vM_memory_static_min : int64; vM_VCPUs_params : string_to_string_map; vM_VCPUs_max : int64; vM_VCPUs_at_startup : int64; vM_actions_after_shutdown : on_normal_exit; vM_actions_after_reboot : on_normal_exit; vM_actions_after_crash : on_crash_behaviour; vM_consoles : ref_console_set; vM_VIFs : ref_VIF_set; vM_VBDs : ref_VBD_set; vM_crash_dumps : ref_crashdump_set; vM_VTPMs : ref_VTPM_set; vM_PV_bootloader : string; vM_PV_kernel : string; vM_PV_ramdisk : string; vM_PV_args : string; vM_PV_bootloader_args : string; vM_PV_legacy_args : string; vM_HVM_boot_policy : string; vM_HVM_boot_params : string_to_string_map; vM_HVM_shadow_multiplier : float; vM_platform : string_to_string_map; vM_PCI_bus : string; vM_other_config : string_to_string_map; vM_domid : int64; vM_domarch : string; vM_last_boot_CPU_flags : string_to_string_map; vM_is_control_domain : bool; vM_metrics : ref_VM_metrics; vM_guest_metrics : ref_VM_guest_metrics; vM_last_booted_record : string; vM_recommendations : string; vM_xenstore_data : string_to_string_map; vM_ha_always_run : bool; vM_ha_restart_priority : string; vM_is_a_snapshot : bool; vM_snapshot_of : ref_VM; vM_snapshots : ref_VM_set; vM_snapshot_time : datetime; vM_transportable_snapshot_id : string; vM_blobs : string_to_ref_blob_map; vM_tags : string_set; vM_blocked_operations : vm_operations_to_string_map; vM_snapshot_info : string_to_string_map; vM_snapshot_metadata : string; vM_parent : ref_VM; vM_children : ref_VM_set; vM_bios_strings : string_to_string_map; vM_protection_policy : ref_VMPP; vM_is_snapshot_from_vmpp : bool; vM_appliance : ref_VM_appliance; vM_start_delay : int64; vM_shutdown_delay : int64; vM_order : int64; vM_VGPUs : ref_VGPU_set; vM_attached_PCIs : ref_PCI_set; vM_suspend_SR : ref_SR; vM_version : int64; vM_generation_id : string; vM_hardware_platform_version : int64; vM_has_vendor_device : bool } +let rpc_of_vM_t x = Rpc.Dict [ "uuid",rpc_of_string x.vM_uuid; "allowed_operations",rpc_of_vm_operations_set x.vM_allowed_operations; "current_operations",rpc_of_string_to_vm_operations_map x.vM_current_operations; "power_state",rpc_of_vm_power_state x.vM_power_state; "name_label",rpc_of_string x.vM_name_label; "name_description",rpc_of_string x.vM_name_description; "user_version",rpc_of_int64 x.vM_user_version; "is_a_template",rpc_of_bool x.vM_is_a_template; "suspend_VDI",rpc_of_ref_VDI x.vM_suspend_VDI; "resident_on",rpc_of_ref_host x.vM_resident_on; "affinity",rpc_of_ref_host x.vM_affinity; "memory_overhead",rpc_of_int64 x.vM_memory_overhead; "memory_target",rpc_of_int64 x.vM_memory_target; "memory_static_max",rpc_of_int64 x.vM_memory_static_max; "memory_dynamic_max",rpc_of_int64 x.vM_memory_dynamic_max; "memory_dynamic_min",rpc_of_int64 x.vM_memory_dynamic_min; "memory_static_min",rpc_of_int64 x.vM_memory_static_min; "VCPUs_params",rpc_of_string_to_string_map x.vM_VCPUs_params; "VCPUs_max",rpc_of_int64 x.vM_VCPUs_max; "VCPUs_at_startup",rpc_of_int64 x.vM_VCPUs_at_startup; "actions_after_shutdown",rpc_of_on_normal_exit x.vM_actions_after_shutdown; "actions_after_reboot",rpc_of_on_normal_exit x.vM_actions_after_reboot; "actions_after_crash",rpc_of_on_crash_behaviour x.vM_actions_after_crash; "consoles",rpc_of_ref_console_set x.vM_consoles; "VIFs",rpc_of_ref_VIF_set x.vM_VIFs; "VBDs",rpc_of_ref_VBD_set x.vM_VBDs; "crash_dumps",rpc_of_ref_crashdump_set x.vM_crash_dumps; "VTPMs",rpc_of_ref_VTPM_set x.vM_VTPMs; "PV_bootloader",rpc_of_string x.vM_PV_bootloader; "PV_kernel",rpc_of_string x.vM_PV_kernel; "PV_ramdisk",rpc_of_string x.vM_PV_ramdisk; "PV_args",rpc_of_string x.vM_PV_args; "PV_bootloader_args",rpc_of_string x.vM_PV_bootloader_args; "PV_legacy_args",rpc_of_string x.vM_PV_legacy_args; "HVM_boot_policy",rpc_of_string x.vM_HVM_boot_policy; "HVM_boot_params",rpc_of_string_to_string_map x.vM_HVM_boot_params; "HVM_shadow_multiplier",rpc_of_float x.vM_HVM_shadow_multiplier; "platform",rpc_of_string_to_string_map x.vM_platform; "PCI_bus",rpc_of_string x.vM_PCI_bus; "other_config",rpc_of_string_to_string_map x.vM_other_config; "domid",rpc_of_int64 x.vM_domid; "domarch",rpc_of_string x.vM_domarch; "last_boot_CPU_flags",rpc_of_string_to_string_map x.vM_last_boot_CPU_flags; "is_control_domain",rpc_of_bool x.vM_is_control_domain; "metrics",rpc_of_ref_VM_metrics x.vM_metrics; "guest_metrics",rpc_of_ref_VM_guest_metrics x.vM_guest_metrics; "last_booted_record",rpc_of_string x.vM_last_booted_record; "recommendations",rpc_of_string x.vM_recommendations; "xenstore_data",rpc_of_string_to_string_map x.vM_xenstore_data; "ha_always_run",rpc_of_bool x.vM_ha_always_run; "ha_restart_priority",rpc_of_string x.vM_ha_restart_priority; "is_a_snapshot",rpc_of_bool x.vM_is_a_snapshot; "snapshot_of",rpc_of_ref_VM x.vM_snapshot_of; "snapshots",rpc_of_ref_VM_set x.vM_snapshots; "snapshot_time",rpc_of_datetime x.vM_snapshot_time; "transportable_snapshot_id",rpc_of_string x.vM_transportable_snapshot_id; "blobs",rpc_of_string_to_ref_blob_map x.vM_blobs; "tags",rpc_of_string_set x.vM_tags; "blocked_operations",rpc_of_vm_operations_to_string_map x.vM_blocked_operations; "snapshot_info",rpc_of_string_to_string_map x.vM_snapshot_info; "snapshot_metadata",rpc_of_string x.vM_snapshot_metadata; "parent",rpc_of_ref_VM x.vM_parent; "children",rpc_of_ref_VM_set x.vM_children; "bios_strings",rpc_of_string_to_string_map x.vM_bios_strings; "protection_policy",rpc_of_ref_VMPP x.vM_protection_policy; "is_snapshot_from_vmpp",rpc_of_bool x.vM_is_snapshot_from_vmpp; "appliance",rpc_of_ref_VM_appliance x.vM_appliance; "start_delay",rpc_of_int64 x.vM_start_delay; "shutdown_delay",rpc_of_int64 x.vM_shutdown_delay; "order",rpc_of_int64 x.vM_order; "VGPUs",rpc_of_ref_VGPU_set x.vM_VGPUs; "attached_PCIs",rpc_of_ref_PCI_set x.vM_attached_PCIs; "suspend_SR",rpc_of_ref_SR x.vM_suspend_SR; "version",rpc_of_int64 x.vM_version; "generation_id",rpc_of_string x.vM_generation_id; "hardware_platform_version",rpc_of_int64 x.vM_hardware_platform_version; "has_vendor_device",rpc_of_bool x.vM_has_vendor_device ] +let vM_t_of_rpc x = on_dict (fun x -> { vM_uuid = string_of_rpc (List.assoc "uuid" x); vM_allowed_operations = vm_operations_set_of_rpc (List.assoc "allowed_operations" x); vM_current_operations = string_to_vm_operations_map_of_rpc (List.assoc "current_operations" x); vM_power_state = vm_power_state_of_rpc (List.assoc "power_state" x); vM_name_label = string_of_rpc (List.assoc "name_label" x); vM_name_description = string_of_rpc (List.assoc "name_description" x); vM_user_version = int64_of_rpc (List.assoc "user_version" x); vM_is_a_template = bool_of_rpc (List.assoc "is_a_template" x); vM_suspend_VDI = ref_VDI_of_rpc (List.assoc "suspend_VDI" x); vM_resident_on = ref_host_of_rpc (List.assoc "resident_on" x); vM_affinity = ref_host_of_rpc (List.assoc "affinity" x); vM_memory_overhead = int64_of_rpc (List.assoc "memory_overhead" x); vM_memory_target = int64_of_rpc (List.assoc "memory_target" x); vM_memory_static_max = int64_of_rpc (List.assoc "memory_static_max" x); vM_memory_dynamic_max = int64_of_rpc (List.assoc "memory_dynamic_max" x); vM_memory_dynamic_min = int64_of_rpc (List.assoc "memory_dynamic_min" x); vM_memory_static_min = int64_of_rpc (List.assoc "memory_static_min" x); vM_VCPUs_params = string_to_string_map_of_rpc (List.assoc "VCPUs_params" x); vM_VCPUs_max = int64_of_rpc (List.assoc "VCPUs_max" x); vM_VCPUs_at_startup = int64_of_rpc (List.assoc "VCPUs_at_startup" x); vM_actions_after_shutdown = on_normal_exit_of_rpc (List.assoc "actions_after_shutdown" x); vM_actions_after_reboot = on_normal_exit_of_rpc (List.assoc "actions_after_reboot" x); vM_actions_after_crash = on_crash_behaviour_of_rpc (List.assoc "actions_after_crash" x); vM_consoles = ref_console_set_of_rpc (List.assoc "consoles" x); vM_VIFs = ref_VIF_set_of_rpc (List.assoc "VIFs" x); vM_VBDs = ref_VBD_set_of_rpc (List.assoc "VBDs" x); vM_crash_dumps = ref_crashdump_set_of_rpc (List.assoc "crash_dumps" x); vM_VTPMs = ref_VTPM_set_of_rpc (List.assoc "VTPMs" x); vM_PV_bootloader = string_of_rpc (List.assoc "PV_bootloader" x); vM_PV_kernel = string_of_rpc (List.assoc "PV_kernel" x); vM_PV_ramdisk = string_of_rpc (List.assoc "PV_ramdisk" x); vM_PV_args = string_of_rpc (List.assoc "PV_args" x); vM_PV_bootloader_args = string_of_rpc (List.assoc "PV_bootloader_args" x); vM_PV_legacy_args = string_of_rpc (List.assoc "PV_legacy_args" x); vM_HVM_boot_policy = string_of_rpc (List.assoc "HVM_boot_policy" x); vM_HVM_boot_params = string_to_string_map_of_rpc (List.assoc "HVM_boot_params" x); vM_HVM_shadow_multiplier = float_of_rpc (List.assoc "HVM_shadow_multiplier" x); vM_platform = string_to_string_map_of_rpc (List.assoc "platform" x); vM_PCI_bus = string_of_rpc (List.assoc "PCI_bus" x); vM_other_config = string_to_string_map_of_rpc (List.assoc "other_config" x); vM_domid = int64_of_rpc (List.assoc "domid" x); vM_domarch = string_of_rpc (List.assoc "domarch" x); vM_last_boot_CPU_flags = string_to_string_map_of_rpc (List.assoc "last_boot_CPU_flags" x); vM_is_control_domain = bool_of_rpc (List.assoc "is_control_domain" x); vM_metrics = ref_VM_metrics_of_rpc (List.assoc "metrics" x); vM_guest_metrics = ref_VM_guest_metrics_of_rpc (List.assoc "guest_metrics" x); vM_last_booted_record = string_of_rpc (List.assoc "last_booted_record" x); vM_recommendations = string_of_rpc (List.assoc "recommendations" x); vM_xenstore_data = string_to_string_map_of_rpc (List.assoc "xenstore_data" x); vM_ha_always_run = bool_of_rpc (List.assoc "ha_always_run" x); vM_ha_restart_priority = string_of_rpc (List.assoc "ha_restart_priority" x); vM_is_a_snapshot = bool_of_rpc (List.assoc "is_a_snapshot" x); vM_snapshot_of = ref_VM_of_rpc (List.assoc "snapshot_of" x); vM_snapshots = ref_VM_set_of_rpc (List.assoc "snapshots" x); vM_snapshot_time = datetime_of_rpc (List.assoc "snapshot_time" x); vM_transportable_snapshot_id = string_of_rpc (List.assoc "transportable_snapshot_id" x); vM_blobs = string_to_ref_blob_map_of_rpc (List.assoc "blobs" x); vM_tags = string_set_of_rpc (List.assoc "tags" x); vM_blocked_operations = vm_operations_to_string_map_of_rpc (List.assoc "blocked_operations" x); vM_snapshot_info = string_to_string_map_of_rpc (List.assoc "snapshot_info" x); vM_snapshot_metadata = string_of_rpc (List.assoc "snapshot_metadata" x); vM_parent = ref_VM_of_rpc (List.assoc "parent" x); vM_children = ref_VM_set_of_rpc (List.assoc "children" x); vM_bios_strings = string_to_string_map_of_rpc (List.assoc "bios_strings" x); vM_protection_policy = ref_VMPP_of_rpc (List.assoc "protection_policy" x); vM_is_snapshot_from_vmpp = bool_of_rpc (List.assoc "is_snapshot_from_vmpp" x); vM_appliance = ref_VM_appliance_of_rpc (List.assoc "appliance" x); vM_start_delay = int64_of_rpc (List.assoc "start_delay" x); vM_shutdown_delay = int64_of_rpc (List.assoc "shutdown_delay" x); vM_order = int64_of_rpc (List.assoc "order" x); vM_VGPUs = ref_VGPU_set_of_rpc (List.assoc "VGPUs" x); vM_attached_PCIs = ref_PCI_set_of_rpc (List.assoc "attached_PCIs" x); vM_suspend_SR = ref_SR_of_rpc (List.assoc "suspend_SR" x); vM_version = int64_of_rpc (List.assoc "version" x); vM_generation_id = string_of_rpc (List.assoc "generation_id" x); vM_hardware_platform_version = int64_of_rpc (List.assoc "hardware_platform_version" x); vM_has_vendor_device = bool_of_rpc (List.assoc "has_vendor_device" x) }) x type ref_VM_to_vM_t_map = (ref_VM * vM_t) list with rpc type vM_t_set = vM_t list with rpc @@ -477,9 +485,9 @@ let pool_patch_t_of_rpc x = on_dict (fun x -> { pool_patch_uuid = string_of_rpc type ref_pool_patch_to_pool_patch_t_map = (ref_pool_patch * pool_patch_t) list with rpc type pool_patch_t_set = pool_patch_t list with rpc -type pool_t = { pool_uuid : string; pool_name_label : string; pool_name_description : string; pool_master : ref_host; pool_default_SR : ref_SR; pool_suspend_image_SR : ref_SR; pool_crash_dump_SR : ref_SR; pool_other_config : string_to_string_map; pool_ha_enabled : bool; pool_ha_configuration : string_to_string_map; pool_ha_statefiles : string_set; pool_ha_host_failures_to_tolerate : int64; pool_ha_plan_exists_for : int64; pool_ha_allow_overcommit : bool; pool_ha_overcommitted : bool; pool_blobs : string_to_ref_blob_map; pool_tags : string_set; pool_gui_config : string_to_string_map; pool_health_check_config : string_to_string_map; pool_wlb_url : string; pool_wlb_username : string; pool_wlb_enabled : bool; pool_wlb_verify_cert : bool; pool_redo_log_enabled : bool; pool_redo_log_vdi : ref_VDI; pool_vswitch_controller : string; pool_restrictions : string_to_string_map; pool_metadata_VDIs : ref_VDI_set; pool_ha_cluster_stack : string; pool_allowed_operations : pool_allowed_operations_set; pool_current_operations : string_to_pool_allowed_operations_map } -let rpc_of_pool_t x = Rpc.Dict [ "uuid",rpc_of_string x.pool_uuid; "name_label",rpc_of_string x.pool_name_label; "name_description",rpc_of_string x.pool_name_description; "master",rpc_of_ref_host x.pool_master; "default_SR",rpc_of_ref_SR x.pool_default_SR; "suspend_image_SR",rpc_of_ref_SR x.pool_suspend_image_SR; "crash_dump_SR",rpc_of_ref_SR x.pool_crash_dump_SR; "other_config",rpc_of_string_to_string_map x.pool_other_config; "ha_enabled",rpc_of_bool x.pool_ha_enabled; "ha_configuration",rpc_of_string_to_string_map x.pool_ha_configuration; "ha_statefiles",rpc_of_string_set x.pool_ha_statefiles; "ha_host_failures_to_tolerate",rpc_of_int64 x.pool_ha_host_failures_to_tolerate; "ha_plan_exists_for",rpc_of_int64 x.pool_ha_plan_exists_for; "ha_allow_overcommit",rpc_of_bool x.pool_ha_allow_overcommit; "ha_overcommitted",rpc_of_bool x.pool_ha_overcommitted; "blobs",rpc_of_string_to_ref_blob_map x.pool_blobs; "tags",rpc_of_string_set x.pool_tags; "gui_config",rpc_of_string_to_string_map x.pool_gui_config; "health_check_config",rpc_of_string_to_string_map x.pool_health_check_config; "wlb_url",rpc_of_string x.pool_wlb_url; "wlb_username",rpc_of_string x.pool_wlb_username; "wlb_enabled",rpc_of_bool x.pool_wlb_enabled; "wlb_verify_cert",rpc_of_bool x.pool_wlb_verify_cert; "redo_log_enabled",rpc_of_bool x.pool_redo_log_enabled; "redo_log_vdi",rpc_of_ref_VDI x.pool_redo_log_vdi; "vswitch_controller",rpc_of_string x.pool_vswitch_controller; "restrictions",rpc_of_string_to_string_map x.pool_restrictions; "metadata_VDIs",rpc_of_ref_VDI_set x.pool_metadata_VDIs; "ha_cluster_stack",rpc_of_string x.pool_ha_cluster_stack; "allowed_operations",rpc_of_pool_allowed_operations_set x.pool_allowed_operations; "current_operations",rpc_of_string_to_pool_allowed_operations_map x.pool_current_operations ] -let pool_t_of_rpc x = on_dict (fun x -> { pool_uuid = string_of_rpc (List.assoc "uuid" x); pool_name_label = string_of_rpc (List.assoc "name_label" x); pool_name_description = string_of_rpc (List.assoc "name_description" x); pool_master = ref_host_of_rpc (List.assoc "master" x); pool_default_SR = ref_SR_of_rpc (List.assoc "default_SR" x); pool_suspend_image_SR = ref_SR_of_rpc (List.assoc "suspend_image_SR" x); pool_crash_dump_SR = ref_SR_of_rpc (List.assoc "crash_dump_SR" x); pool_other_config = string_to_string_map_of_rpc (List.assoc "other_config" x); pool_ha_enabled = bool_of_rpc (List.assoc "ha_enabled" x); pool_ha_configuration = string_to_string_map_of_rpc (List.assoc "ha_configuration" x); pool_ha_statefiles = string_set_of_rpc (List.assoc "ha_statefiles" x); pool_ha_host_failures_to_tolerate = int64_of_rpc (List.assoc "ha_host_failures_to_tolerate" x); pool_ha_plan_exists_for = int64_of_rpc (List.assoc "ha_plan_exists_for" x); pool_ha_allow_overcommit = bool_of_rpc (List.assoc "ha_allow_overcommit" x); pool_ha_overcommitted = bool_of_rpc (List.assoc "ha_overcommitted" x); pool_blobs = string_to_ref_blob_map_of_rpc (List.assoc "blobs" x); pool_tags = string_set_of_rpc (List.assoc "tags" x); pool_gui_config = string_to_string_map_of_rpc (List.assoc "gui_config" x); pool_health_check_config = string_to_string_map_of_rpc (List.assoc "health_check_config" x); pool_wlb_url = string_of_rpc (List.assoc "wlb_url" x); pool_wlb_username = string_of_rpc (List.assoc "wlb_username" x); pool_wlb_enabled = bool_of_rpc (List.assoc "wlb_enabled" x); pool_wlb_verify_cert = bool_of_rpc (List.assoc "wlb_verify_cert" x); pool_redo_log_enabled = bool_of_rpc (List.assoc "redo_log_enabled" x); pool_redo_log_vdi = ref_VDI_of_rpc (List.assoc "redo_log_vdi" x); pool_vswitch_controller = string_of_rpc (List.assoc "vswitch_controller" x); pool_restrictions = string_to_string_map_of_rpc (List.assoc "restrictions" x); pool_metadata_VDIs = ref_VDI_set_of_rpc (List.assoc "metadata_VDIs" x); pool_ha_cluster_stack = string_of_rpc (List.assoc "ha_cluster_stack" x); pool_allowed_operations = pool_allowed_operations_set_of_rpc (List.assoc "allowed_operations" x); pool_current_operations = string_to_pool_allowed_operations_map_of_rpc (List.assoc "current_operations" x) }) x +type pool_t = { pool_uuid : string; pool_name_label : string; pool_name_description : string; pool_master : ref_host; pool_default_SR : ref_SR; pool_suspend_image_SR : ref_SR; pool_crash_dump_SR : ref_SR; pool_other_config : string_to_string_map; pool_ha_enabled : bool; pool_ha_configuration : string_to_string_map; pool_ha_statefiles : string_set; pool_ha_host_failures_to_tolerate : int64; pool_ha_plan_exists_for : int64; pool_ha_allow_overcommit : bool; pool_ha_overcommitted : bool; pool_blobs : string_to_ref_blob_map; pool_tags : string_set; pool_gui_config : string_to_string_map; pool_health_check_config : string_to_string_map; pool_wlb_url : string; pool_wlb_username : string; pool_wlb_enabled : bool; pool_wlb_verify_cert : bool; pool_redo_log_enabled : bool; pool_redo_log_vdi : ref_VDI; pool_vswitch_controller : string; pool_restrictions : string_to_string_map; pool_metadata_VDIs : ref_VDI_set; pool_ha_cluster_stack : string; pool_allowed_operations : pool_allowed_operations_set; pool_current_operations : string_to_pool_allowed_operations_map; pool_guest_agent_config : string_to_string_map; pool_cpu_info : string_to_string_map } +let rpc_of_pool_t x = Rpc.Dict [ "uuid",rpc_of_string x.pool_uuid; "name_label",rpc_of_string x.pool_name_label; "name_description",rpc_of_string x.pool_name_description; "master",rpc_of_ref_host x.pool_master; "default_SR",rpc_of_ref_SR x.pool_default_SR; "suspend_image_SR",rpc_of_ref_SR x.pool_suspend_image_SR; "crash_dump_SR",rpc_of_ref_SR x.pool_crash_dump_SR; "other_config",rpc_of_string_to_string_map x.pool_other_config; "ha_enabled",rpc_of_bool x.pool_ha_enabled; "ha_configuration",rpc_of_string_to_string_map x.pool_ha_configuration; "ha_statefiles",rpc_of_string_set x.pool_ha_statefiles; "ha_host_failures_to_tolerate",rpc_of_int64 x.pool_ha_host_failures_to_tolerate; "ha_plan_exists_for",rpc_of_int64 x.pool_ha_plan_exists_for; "ha_allow_overcommit",rpc_of_bool x.pool_ha_allow_overcommit; "ha_overcommitted",rpc_of_bool x.pool_ha_overcommitted; "blobs",rpc_of_string_to_ref_blob_map x.pool_blobs; "tags",rpc_of_string_set x.pool_tags; "gui_config",rpc_of_string_to_string_map x.pool_gui_config; "health_check_config",rpc_of_string_to_string_map x.pool_health_check_config; "wlb_url",rpc_of_string x.pool_wlb_url; "wlb_username",rpc_of_string x.pool_wlb_username; "wlb_enabled",rpc_of_bool x.pool_wlb_enabled; "wlb_verify_cert",rpc_of_bool x.pool_wlb_verify_cert; "redo_log_enabled",rpc_of_bool x.pool_redo_log_enabled; "redo_log_vdi",rpc_of_ref_VDI x.pool_redo_log_vdi; "vswitch_controller",rpc_of_string x.pool_vswitch_controller; "restrictions",rpc_of_string_to_string_map x.pool_restrictions; "metadata_VDIs",rpc_of_ref_VDI_set x.pool_metadata_VDIs; "ha_cluster_stack",rpc_of_string x.pool_ha_cluster_stack; "allowed_operations",rpc_of_pool_allowed_operations_set x.pool_allowed_operations; "current_operations",rpc_of_string_to_pool_allowed_operations_map x.pool_current_operations; "guest_agent_config",rpc_of_string_to_string_map x.pool_guest_agent_config; "cpu_info",rpc_of_string_to_string_map x.pool_cpu_info ] +let pool_t_of_rpc x = on_dict (fun x -> { pool_uuid = string_of_rpc (List.assoc "uuid" x); pool_name_label = string_of_rpc (List.assoc "name_label" x); pool_name_description = string_of_rpc (List.assoc "name_description" x); pool_master = ref_host_of_rpc (List.assoc "master" x); pool_default_SR = ref_SR_of_rpc (List.assoc "default_SR" x); pool_suspend_image_SR = ref_SR_of_rpc (List.assoc "suspend_image_SR" x); pool_crash_dump_SR = ref_SR_of_rpc (List.assoc "crash_dump_SR" x); pool_other_config = string_to_string_map_of_rpc (List.assoc "other_config" x); pool_ha_enabled = bool_of_rpc (List.assoc "ha_enabled" x); pool_ha_configuration = string_to_string_map_of_rpc (List.assoc "ha_configuration" x); pool_ha_statefiles = string_set_of_rpc (List.assoc "ha_statefiles" x); pool_ha_host_failures_to_tolerate = int64_of_rpc (List.assoc "ha_host_failures_to_tolerate" x); pool_ha_plan_exists_for = int64_of_rpc (List.assoc "ha_plan_exists_for" x); pool_ha_allow_overcommit = bool_of_rpc (List.assoc "ha_allow_overcommit" x); pool_ha_overcommitted = bool_of_rpc (List.assoc "ha_overcommitted" x); pool_blobs = string_to_ref_blob_map_of_rpc (List.assoc "blobs" x); pool_tags = string_set_of_rpc (List.assoc "tags" x); pool_gui_config = string_to_string_map_of_rpc (List.assoc "gui_config" x); pool_health_check_config = string_to_string_map_of_rpc (List.assoc "health_check_config" x); pool_wlb_url = string_of_rpc (List.assoc "wlb_url" x); pool_wlb_username = string_of_rpc (List.assoc "wlb_username" x); pool_wlb_enabled = bool_of_rpc (List.assoc "wlb_enabled" x); pool_wlb_verify_cert = bool_of_rpc (List.assoc "wlb_verify_cert" x); pool_redo_log_enabled = bool_of_rpc (List.assoc "redo_log_enabled" x); pool_redo_log_vdi = ref_VDI_of_rpc (List.assoc "redo_log_vdi" x); pool_vswitch_controller = string_of_rpc (List.assoc "vswitch_controller" x); pool_restrictions = string_to_string_map_of_rpc (List.assoc "restrictions" x); pool_metadata_VDIs = ref_VDI_set_of_rpc (List.assoc "metadata_VDIs" x); pool_ha_cluster_stack = string_of_rpc (List.assoc "ha_cluster_stack" x); pool_allowed_operations = pool_allowed_operations_set_of_rpc (List.assoc "allowed_operations" x); pool_current_operations = string_to_pool_allowed_operations_map_of_rpc (List.assoc "current_operations" x); pool_guest_agent_config = string_to_string_map_of_rpc (List.assoc "guest_agent_config" x); pool_cpu_info = string_to_string_map_of_rpc (List.assoc "cpu_info" x) }) x type ref_pool_to_pool_t_map = (ref_pool * pool_t) list with rpc type pool_t_set = pool_t list with rpc @@ -590,6 +598,9 @@ module type API = sig val apply_edition : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_pool -> edition:string -> ref_task val enable_ssl_legacy : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_pool -> ref_task val disable_ssl_legacy : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_pool -> ref_task + val has_extension : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_pool -> name:string -> ref_task + val add_to_guest_agent_config : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_pool -> key:string -> value:string -> ref_task + val remove_from_guest_agent_config : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_pool -> key:string -> ref_task end module Pool_patch : sig val apply : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_pool_patch -> host:ref_host -> ref_task @@ -601,7 +612,7 @@ module type API = sig val clean_on_host : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_pool_patch -> host:ref_host -> ref_task end module VM : sig - val create : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> name_label:string -> name_description:string -> user_version:int64 -> is_a_template:bool -> affinity:ref_host -> memory_target:int64 -> memory_static_max:int64 -> memory_dynamic_max:int64 -> memory_dynamic_min:int64 -> memory_static_min:int64 -> vCPUs_params:string_to_string_map -> vCPUs_max:int64 -> vCPUs_at_startup:int64 -> actions_after_shutdown:on_normal_exit -> actions_after_reboot:on_normal_exit -> actions_after_crash:on_crash_behaviour -> pV_bootloader:string -> pV_kernel:string -> pV_ramdisk:string -> pV_args:string -> pV_bootloader_args:string -> pV_legacy_args:string -> hVM_boot_policy:string -> hVM_boot_params:string_to_string_map -> hVM_shadow_multiplier:float -> platform:string_to_string_map -> pCI_bus:string -> other_config:string_to_string_map -> recommendations:string -> xenstore_data:string_to_string_map -> ha_always_run:bool -> ha_restart_priority:string -> tags:string_set -> blocked_operations:vm_operations_to_string_map -> protection_policy:ref_VMPP -> is_snapshot_from_vmpp:bool -> appliance:ref_VM_appliance -> start_delay:int64 -> shutdown_delay:int64 -> order:int64 -> suspend_SR:ref_SR -> version:int64 -> generation_id:string -> hardware_platform_version:int64 -> ref_task + val create : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> name_label:string -> name_description:string -> user_version:int64 -> is_a_template:bool -> affinity:ref_host -> memory_target:int64 -> memory_static_max:int64 -> memory_dynamic_max:int64 -> memory_dynamic_min:int64 -> memory_static_min:int64 -> vCPUs_params:string_to_string_map -> vCPUs_max:int64 -> vCPUs_at_startup:int64 -> actions_after_shutdown:on_normal_exit -> actions_after_reboot:on_normal_exit -> actions_after_crash:on_crash_behaviour -> pV_bootloader:string -> pV_kernel:string -> pV_ramdisk:string -> pV_args:string -> pV_bootloader_args:string -> pV_legacy_args:string -> hVM_boot_policy:string -> hVM_boot_params:string_to_string_map -> hVM_shadow_multiplier:float -> platform:string_to_string_map -> pCI_bus:string -> other_config:string_to_string_map -> recommendations:string -> xenstore_data:string_to_string_map -> ha_always_run:bool -> ha_restart_priority:string -> tags:string_set -> blocked_operations:vm_operations_to_string_map -> protection_policy:ref_VMPP -> is_snapshot_from_vmpp:bool -> appliance:ref_VM_appliance -> start_delay:int64 -> shutdown_delay:int64 -> order:int64 -> suspend_SR:ref_SR -> version:int64 -> generation_id:string -> hardware_platform_version:int64 -> has_vendor_device:bool -> ref_task val destroy : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VM -> ref_task val snapshot : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> vm:ref_VM -> new_name:string -> ref_task val snapshot_with_quiesce : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> vm:ref_VM -> new_name:string -> ref_task @@ -665,10 +676,8 @@ module type API = sig val set_appliance : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VM -> value:ref_VM_appliance -> ref_task val query_services : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VM -> ref_task val call_plugin : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> vm:ref_VM -> plugin:string -> fn:string -> args:string_to_string_map -> ref_task - val set_auto_update_drivers : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VM -> value:bool -> ref_task - val assert_can_set_auto_update_drivers : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VM -> value:bool -> ref_task + val set_has_vendor_device : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VM -> value:bool -> ref_task val import : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> url:string -> sr:ref_SR -> full_restore:bool -> force:bool -> ref_task - val xenprep_start : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VM -> ref_task val create_from_record : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> value:vM_t -> ref_task end module VM_metrics : sig @@ -707,6 +716,8 @@ module type API = sig val send_debug_keys : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> host:ref_host -> keys:string -> ref_task val bugreport_upload : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> host:ref_host -> url:string -> options:string_to_string_map -> ref_task val license_apply : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> host:ref_host -> contents:string -> ref_task + val license_add : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> host:ref_host -> contents:string -> ref_task + val license_remove : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> host:ref_host -> ref_task val create : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> uuid:string -> name_label:string -> name_description:string -> hostname:string -> address:string -> external_auth_type:string -> external_auth_service_name:string -> external_auth_configuration:string_to_string_map -> license_params:string_to_string_map -> edition:string -> license_server:string_to_string_map -> local_cache_sr:ref_SR -> chipset_info:string_to_string_map -> ref_task val destroy : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_host -> ref_task val power_on : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> host:ref_host -> ref_task @@ -756,6 +767,7 @@ module type API = sig val enable_display : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> host:ref_host -> ref_task val disable_display : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> host:ref_host -> ref_task val set_ssl_legacy : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_host -> value:bool -> ref_task + val apply_guest_agent_config : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> host:ref_host -> ref_task end module Host_crashdump : sig val destroy : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_host_crashdump -> ref_task @@ -845,6 +857,9 @@ module type API = sig val enable_database_replication : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> sr:ref_SR -> ref_task val disable_database_replication : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> sr:ref_SR -> ref_task end + module LVHD : sig + val enable_thin_provisioning : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> sR:ref_SR -> initial_allocation:int64 -> allocation_quantum:int64 -> ref_task + end module VDI : sig val create : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> name_label:string -> name_description:string -> sR:ref_SR -> virtual_size:int64 -> _type:vdi_type -> sharable:bool -> read_only:bool -> other_config:string_to_string_map -> xenstore_data:string_to_string_map -> sm_config:string_to_string_map -> tags:string_set -> ref_task val destroy : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VDI -> ref_task @@ -1097,6 +1112,8 @@ module type API = sig val get_ha_cluster_stack : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_pool -> string val get_allowed_operations : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_pool -> pool_allowed_operations_set val get_current_operations : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_pool -> string_to_pool_allowed_operations_map + val get_guest_agent_config : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_pool -> string_to_string_map + val get_cpu_info : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_pool -> string_to_string_map val set_name_label : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_pool -> value:string -> unit val set_name_description : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_pool -> value:string -> unit val set_default_SR : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_pool -> value:ref_SR -> unit @@ -1170,6 +1187,9 @@ module type API = sig val apply_edition : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_pool -> edition:string -> unit val enable_ssl_legacy : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_pool -> unit val disable_ssl_legacy : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_pool -> unit + val has_extension : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_pool -> name:string -> bool + val add_to_guest_agent_config : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_pool -> key:string -> value:string -> unit + val remove_from_guest_agent_config : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_pool -> key:string -> unit val get_all : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> ref_pool_set val get_all_records_where : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> expr:string -> ref_pool_to_pool_t_map val get_all_records : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> ref_pool_to_pool_t_map @@ -1204,7 +1224,7 @@ module type API = sig module VM : sig val get_record : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VM -> vM_t val get_by_uuid : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> uuid:string -> ref_VM - val create : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> name_label:string -> name_description:string -> user_version:int64 -> is_a_template:bool -> affinity:ref_host -> memory_target:int64 -> memory_static_max:int64 -> memory_dynamic_max:int64 -> memory_dynamic_min:int64 -> memory_static_min:int64 -> vCPUs_params:string_to_string_map -> vCPUs_max:int64 -> vCPUs_at_startup:int64 -> actions_after_shutdown:on_normal_exit -> actions_after_reboot:on_normal_exit -> actions_after_crash:on_crash_behaviour -> pV_bootloader:string -> pV_kernel:string -> pV_ramdisk:string -> pV_args:string -> pV_bootloader_args:string -> pV_legacy_args:string -> hVM_boot_policy:string -> hVM_boot_params:string_to_string_map -> hVM_shadow_multiplier:float -> platform:string_to_string_map -> pCI_bus:string -> other_config:string_to_string_map -> recommendations:string -> xenstore_data:string_to_string_map -> ha_always_run:bool -> ha_restart_priority:string -> tags:string_set -> blocked_operations:vm_operations_to_string_map -> protection_policy:ref_VMPP -> is_snapshot_from_vmpp:bool -> appliance:ref_VM_appliance -> start_delay:int64 -> shutdown_delay:int64 -> order:int64 -> suspend_SR:ref_SR -> version:int64 -> generation_id:string -> hardware_platform_version:int64 -> ref_VM + val create : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> name_label:string -> name_description:string -> user_version:int64 -> is_a_template:bool -> affinity:ref_host -> memory_target:int64 -> memory_static_max:int64 -> memory_dynamic_max:int64 -> memory_dynamic_min:int64 -> memory_static_min:int64 -> vCPUs_params:string_to_string_map -> vCPUs_max:int64 -> vCPUs_at_startup:int64 -> actions_after_shutdown:on_normal_exit -> actions_after_reboot:on_normal_exit -> actions_after_crash:on_crash_behaviour -> pV_bootloader:string -> pV_kernel:string -> pV_ramdisk:string -> pV_args:string -> pV_bootloader_args:string -> pV_legacy_args:string -> hVM_boot_policy:string -> hVM_boot_params:string_to_string_map -> hVM_shadow_multiplier:float -> platform:string_to_string_map -> pCI_bus:string -> other_config:string_to_string_map -> recommendations:string -> xenstore_data:string_to_string_map -> ha_always_run:bool -> ha_restart_priority:string -> tags:string_set -> blocked_operations:vm_operations_to_string_map -> protection_policy:ref_VMPP -> is_snapshot_from_vmpp:bool -> appliance:ref_VM_appliance -> start_delay:int64 -> shutdown_delay:int64 -> order:int64 -> suspend_SR:ref_SR -> version:int64 -> generation_id:string -> hardware_platform_version:int64 -> has_vendor_device:bool -> ref_VM val destroy : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VM -> unit val get_by_name_label : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> label:string -> ref_VM_set val get_uuid : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VM -> string @@ -1283,7 +1303,7 @@ module type API = sig val get_version : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VM -> int64 val get_generation_id : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VM -> string val get_hardware_platform_version : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VM -> int64 - val get_auto_update_drivers : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VM -> bool + val get_has_vendor_device : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VM -> bool val set_name_label : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VM -> value:string -> unit val set_name_description : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VM -> value:string -> unit val set_user_version : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VM -> value:int64 -> unit @@ -1403,10 +1423,8 @@ module type API = sig val set_appliance : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VM -> value:ref_VM_appliance -> unit val query_services : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VM -> string_to_string_map val call_plugin : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> vm:ref_VM -> plugin:string -> fn:string -> args:string_to_string_map -> string - val set_auto_update_drivers : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VM -> value:bool -> unit - val assert_can_set_auto_update_drivers : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VM -> value:bool -> unit + val set_has_vendor_device : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VM -> value:bool -> unit val import : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> url:string -> sr:ref_SR -> full_restore:bool -> force:bool -> ref_VM_set - val xenprep_start : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VM -> unit val get_all : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> ref_VM_set val get_all_records_where : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> expr:string -> ref_VM_to_vM_t_map val get_all_records : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> ref_VM_to_vM_t_map @@ -1642,6 +1660,8 @@ module type API = sig val bugreport_upload : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> host:ref_host -> url:string -> options:string_to_string_map -> unit val list_methods : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> string_set val license_apply : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> host:ref_host -> contents:string -> unit + val license_add : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> host:ref_host -> contents:string -> unit + val license_remove : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> host:ref_host -> unit val create : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> uuid:string -> name_label:string -> name_description:string -> hostname:string -> address:string -> external_auth_type:string -> external_auth_service_name:string -> external_auth_configuration:string_to_string_map -> license_params:string_to_string_map -> edition:string -> license_server:string_to_string_map -> local_cache_sr:ref_SR -> chipset_info:string_to_string_map -> ref_host val destroy : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_host -> unit val power_on : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> host:ref_host -> unit @@ -1729,6 +1749,7 @@ module type API = sig val enable_display : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> host:ref_host -> host_display val disable_display : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> host:ref_host -> host_display val set_ssl_legacy : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_host -> value:bool -> unit + val apply_guest_agent_config : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> host:ref_host -> unit val get_all : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> ref_host_set val get_all_records_where : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> expr:string -> ref_host_to_host_t_map val get_all_records : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> ref_host_to_host_t_map @@ -2050,6 +2071,7 @@ module type API = sig val get_features : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_SM -> string_to_int64_map val get_other_config : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_SM -> string_to_string_map val get_driver_filename : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_SM -> string + val get_required_cluster_stack : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_SM -> string_set val set_other_config : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_SM -> value:string_to_string_map -> unit val add_to_other_config : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_SM -> key:string -> value:string -> unit val remove_from_other_config : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_SM -> key:string -> unit @@ -2080,6 +2102,7 @@ module type API = sig val get_blobs : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_SR -> string_to_ref_blob_map val get_local_cache_enabled : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_SR -> bool val get_introduced_by : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_SR -> ref_DR_task + val get_clustered : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_SR -> bool val set_other_config : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_SR -> value:string_to_string_map -> unit val add_to_other_config : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_SR -> key:string -> value:string -> unit val remove_from_other_config : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_SR -> key:string -> unit @@ -2109,10 +2132,20 @@ module type API = sig val assert_supports_database_replication : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> sr:ref_SR -> unit val enable_database_replication : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> sr:ref_SR -> unit val disable_database_replication : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> sr:ref_SR -> unit + val get_data_sources : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> sr:ref_SR -> data_source_t_set + val record_data_source : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> sr:ref_SR -> data_source:string -> unit + val query_data_source : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> sr:ref_SR -> data_source:string -> float + val forget_data_source_archives : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> sr:ref_SR -> data_source:string -> unit val get_all : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> ref_SR_set val get_all_records_where : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> expr:string -> ref_SR_to_sR_t_map val get_all_records : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> ref_SR_to_sR_t_map end + module LVHD : sig + val get_record : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_LVHD -> lVHD_t + val get_by_uuid : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> uuid:string -> ref_LVHD + val get_uuid : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_LVHD -> string + val enable_thin_provisioning : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> sR:ref_SR -> initial_allocation:int64 -> allocation_quantum:int64 -> unit + end module VDI : sig val get_record : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VDI -> vDI_t val get_by_uuid : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> uuid:string -> ref_VDI @@ -2502,15 +2535,39 @@ module type API = sig val get_device : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VGPU -> string val get_currently_attached : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VGPU -> bool val get_other_config : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VGPU -> string_to_string_map + val get_type : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VGPU -> ref_VGPU_type + val get_resident_on : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VGPU -> ref_PGPU val set_other_config : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VGPU -> value:string_to_string_map -> unit val add_to_other_config : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VGPU -> key:string -> value:string -> unit val remove_from_other_config : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VGPU -> key:string -> unit - val create : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> vM:ref_VM -> gPU_group:ref_GPU_group -> device:string -> other_config:string_to_string_map -> ref_VGPU + val create : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> vM:ref_VM -> gPU_group:ref_GPU_group -> device:string -> other_config:string_to_string_map -> _type:ref_VGPU_type -> ref_VGPU val destroy : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VGPU -> unit + val atomic_set_resident_on : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VGPU -> value:ref_PGPU -> unit val get_all : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> ref_VGPU_set val get_all_records_where : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> expr:string -> ref_VGPU_to_vGPU_t_map val get_all_records : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> ref_VGPU_to_vGPU_t_map end + module VGPU_type : sig + val get_record : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VGPU_type -> vGPU_type_t + val get_by_uuid : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> uuid:string -> ref_VGPU_type + val get_uuid : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VGPU_type -> string + val get_vendor_name : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VGPU_type -> string + val get_model_name : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VGPU_type -> string + val get_framebuffer_size : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VGPU_type -> int64 + val get_max_heads : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VGPU_type -> int64 + val get_max_resolution_x : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VGPU_type -> int64 + val get_max_resolution_y : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VGPU_type -> int64 + val get_supported_on_PGPUs : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VGPU_type -> ref_PGPU_set + val get_enabled_on_PGPUs : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VGPU_type -> ref_PGPU_set + val get_VGPUs : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VGPU_type -> ref_VGPU_set + val get_supported_on_GPU_groups : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VGPU_type -> ref_GPU_group_set + val get_enabled_on_GPU_groups : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VGPU_type -> ref_GPU_group_set + val get_implementation : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VGPU_type -> vgpu_type_implementation + val get_identifier : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VGPU_type -> string + val get_experimental : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> self:ref_VGPU_type -> bool + val get_all : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> ref_VGPU_type_set + val get_all_records_where : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> expr:string -> ref_VGPU_type_to_vGPU_type_t_map + val get_all_records : rpc:(Rpc.call -> Rpc.response) -> session_id:ref_session -> ref_VGPU_type_to_vGPU_type_t_map + end end - diff --git a/lib/api_errors.ml b/lib/api_errors.ml index bc1de37..c0d4964 100644 --- a/lib/api_errors.ml +++ b/lib/api_errors.ml @@ -215,6 +215,7 @@ let vbd_cds_must_be_readonly = "VBD_CDS_MUST_BE_READONLY" let disk_vbd_must_be_readwrite_for_hvm = "DISK_VBD_MUST_BE_READWRITE_FOR_HVM" let host_cd_drive_empty = "HOST_CD_DRIVE_EMPTY" let vdi_not_available = "VDI_NOT_AVAILABLE" +let vdi_has_rrds = "VDI_HAS_RRDS" let vdi_location_missing = "VDI_LOCATION_MISSING" let vdi_content_id_missing = "VDI_CONTENT_ID_MISSING" let vdi_missing = "VDI_MISSING" @@ -238,7 +239,10 @@ let sr_device_in_use = "SR_DEVICE_IN_USE" let sr_operation_not_supported = "SR_OPERATION_NOT_SUPPORTED" let sr_not_sharable = "SR_NOT_SHARABLE" let sr_indestructible = "SR_INDESTRUCTIBLE" - +let sr_detached_on_master = "SR_DETACHED_ON_MASTER" +let sr_attached_on_slave = "SR_ATTACHED_ON_SLAVE" +let clustered_sr_degraded = "CLUSTERED_SR_DEGRADED" + let sm_plugin_communication_failure = "SM_PLUGIN_COMMUNICATION_FAILURE" let pbd_exists = "PBD_EXISTS" @@ -501,4 +505,7 @@ let vm_has_checkpoint = "VM_HAS_CHECKPOINT" let mirror_failed = "MIRROR_FAILED" let too_many_storage_migrates = "TOO_MANY_STORAGE_MIGRATES" +let sr_does_not_support_migration = "SR_DOES_NOT_SUPPORT_MIGRATION" let unimplemented_in_sm_backend = "UNIMPLEMENTED_IN_SM_BACKEND" + +let vm_call_plugin_rate_limit = "VM_CALL_PLUGIN_RATE_LIMIT" diff --git a/lib/api_messages.ml b/lib/api_messages.ml index 86f74d8..cbda475 100644 --- a/lib/api_messages.ml +++ b/lib/api_messages.ml @@ -108,3 +108,8 @@ let vmpp_archive_missed_event = addMessage "VMPP_ARCHIVE_MISSED_EVENT" 3L (*'A s let vmpp_snapshot_archive_already_exists = addMessage "VMPP_SNAPSHOT_ARCHIVE_ALREADY_EXISTS" 3L (*'Failed to archive the snapshot, it has already been archived on the specified target'*) let bond_status_changed = addMessage "BOND_STATUS_CHANGED" 3L (* A link in a bond went down or came back up *) (* Previously missing from table *) + +let host_cpu_features_down = addMessage "HOST_CPU_FEATURES_DOWN" 3L +let host_cpu_features_up = addMessage "HOST_CPU_FEATURES_UP" 5L +let pool_cpu_features_down = addMessage "POOL_CPU_FEATURES_DOWN" 5L +let pool_cpu_features_up = addMessage "POOL_CPU_FEATURES_UP" 5L diff --git a/lib/client.ml b/lib/client.ml index b0a3e7a..4760078 100644 --- a/lib/client.ml +++ b/lib/client.ml @@ -342,6 +342,28 @@ module ClientF = functor(X : IO) ->struct let self = rpc_of_ref_pool self in rpc_wrapper rpc "Async.pool.disable_ssl_legacy" [ session_id; self ] >>= fun x -> return (ref_task_of_rpc x) + (** *) + let has_extension ~rpc ~session_id ~self ~name = + let session_id = rpc_of_ref_session session_id in + let self = rpc_of_ref_pool self in + let name = rpc_of_string name in + + rpc_wrapper rpc "Async.pool.has_extension" [ session_id; self; name ] >>= fun x -> return (ref_task_of_rpc x) + (** *) + let add_to_guest_agent_config ~rpc ~session_id ~self ~key ~value = + let session_id = rpc_of_ref_session session_id in + let self = rpc_of_ref_pool self in + let key = rpc_of_string key in + let value = rpc_of_string value in + + rpc_wrapper rpc "Async.pool.add_to_guest_agent_config" [ session_id; self; key; value ] >>= fun x -> return (ref_task_of_rpc x) + (** *) + let remove_from_guest_agent_config ~rpc ~session_id ~self ~key = + let session_id = rpc_of_ref_session session_id in + let self = rpc_of_ref_pool self in + let key = rpc_of_string key in + + rpc_wrapper rpc "Async.pool.remove_from_guest_agent_config" [ session_id; self; key ] >>= fun x -> return (ref_task_of_rpc x) end module Pool_patch = struct (** *) @@ -392,7 +414,7 @@ module ClientF = functor(X : IO) ->struct end module VM = struct (** *) - let create ~rpc ~session_id ~name_label ~name_description ~user_version ~is_a_template ~affinity ~memory_target ~memory_static_max ~memory_dynamic_max ~memory_dynamic_min ~memory_static_min ~vCPUs_params ~vCPUs_max ~vCPUs_at_startup ~actions_after_shutdown ~actions_after_reboot ~actions_after_crash ~pV_bootloader ~pV_kernel ~pV_ramdisk ~pV_args ~pV_bootloader_args ~pV_legacy_args ~hVM_boot_policy ~hVM_boot_params ~hVM_shadow_multiplier ~platform ~pCI_bus ~other_config ~recommendations ~xenstore_data ~ha_always_run ~ha_restart_priority ~tags ~blocked_operations ~protection_policy ~is_snapshot_from_vmpp ~appliance ~start_delay ~shutdown_delay ~order ~suspend_SR ~version ~generation_id ~hardware_platform_version = + let create ~rpc ~session_id ~name_label ~name_description ~user_version ~is_a_template ~affinity ~memory_target ~memory_static_max ~memory_dynamic_max ~memory_dynamic_min ~memory_static_min ~vCPUs_params ~vCPUs_max ~vCPUs_at_startup ~actions_after_shutdown ~actions_after_reboot ~actions_after_crash ~pV_bootloader ~pV_kernel ~pV_ramdisk ~pV_args ~pV_bootloader_args ~pV_legacy_args ~hVM_boot_policy ~hVM_boot_params ~hVM_shadow_multiplier ~platform ~pCI_bus ~other_config ~recommendations ~xenstore_data ~ha_always_run ~ha_restart_priority ~tags ~blocked_operations ~protection_policy ~is_snapshot_from_vmpp ~appliance ~start_delay ~shutdown_delay ~order ~suspend_SR ~version ~generation_id ~hardware_platform_version ~has_vendor_device = let session_id = rpc_of_ref_session session_id in let name_label = rpc_of_string name_label in let name_description = rpc_of_string name_description in @@ -438,7 +460,8 @@ module ClientF = functor(X : IO) ->struct let version = rpc_of_int64 version in let generation_id = rpc_of_string generation_id in let hardware_platform_version = rpc_of_int64 hardware_platform_version in - let args = Dict [ "name_label", name_label; "name_description", name_description; "user_version", user_version; "is_a_template", is_a_template; "affinity", affinity; "memory_target", memory_target; "memory_static_max", memory_static_max; "memory_dynamic_max", memory_dynamic_max; "memory_dynamic_min", memory_dynamic_min; "memory_static_min", memory_static_min; "VCPUs_params", vCPUs_params; "VCPUs_max", vCPUs_max; "VCPUs_at_startup", vCPUs_at_startup; "actions_after_shutdown", actions_after_shutdown; "actions_after_reboot", actions_after_reboot; "actions_after_crash", actions_after_crash; "PV_bootloader", pV_bootloader; "PV_kernel", pV_kernel; "PV_ramdisk", pV_ramdisk; "PV_args", pV_args; "PV_bootloader_args", pV_bootloader_args; "PV_legacy_args", pV_legacy_args; "HVM_boot_policy", hVM_boot_policy; "HVM_boot_params", hVM_boot_params; "HVM_shadow_multiplier", hVM_shadow_multiplier; "platform", platform; "PCI_bus", pCI_bus; "other_config", other_config; "recommendations", recommendations; "xenstore_data", xenstore_data; "ha_always_run", ha_always_run; "ha_restart_priority", ha_restart_priority; "tags", tags; "blocked_operations", blocked_operations; "protection_policy", protection_policy; "is_snapshot_from_vmpp", is_snapshot_from_vmpp; "appliance", appliance; "start_delay", start_delay; "shutdown_delay", shutdown_delay; "order", order; "suspend_SR", suspend_SR; "version", version; "generation_id", generation_id; "hardware_platform_version", hardware_platform_version] in + let has_vendor_device = rpc_of_bool has_vendor_device in + let args = Dict [ "name_label", name_label; "name_description", name_description; "user_version", user_version; "is_a_template", is_a_template; "affinity", affinity; "memory_target", memory_target; "memory_static_max", memory_static_max; "memory_dynamic_max", memory_dynamic_max; "memory_dynamic_min", memory_dynamic_min; "memory_static_min", memory_static_min; "VCPUs_params", vCPUs_params; "VCPUs_max", vCPUs_max; "VCPUs_at_startup", vCPUs_at_startup; "actions_after_shutdown", actions_after_shutdown; "actions_after_reboot", actions_after_reboot; "actions_after_crash", actions_after_crash; "PV_bootloader", pV_bootloader; "PV_kernel", pV_kernel; "PV_ramdisk", pV_ramdisk; "PV_args", pV_args; "PV_bootloader_args", pV_bootloader_args; "PV_legacy_args", pV_legacy_args; "HVM_boot_policy", hVM_boot_policy; "HVM_boot_params", hVM_boot_params; "HVM_shadow_multiplier", hVM_shadow_multiplier; "platform", platform; "PCI_bus", pCI_bus; "other_config", other_config; "recommendations", recommendations; "xenstore_data", xenstore_data; "ha_always_run", ha_always_run; "ha_restart_priority", ha_restart_priority; "tags", tags; "blocked_operations", blocked_operations; "protection_policy", protection_policy; "is_snapshot_from_vmpp", is_snapshot_from_vmpp; "appliance", appliance; "start_delay", start_delay; "shutdown_delay", shutdown_delay; "order", order; "suspend_SR", suspend_SR; "version", version; "generation_id", generation_id; "hardware_platform_version", hardware_platform_version; "has_vendor_device", has_vendor_device] in rpc_wrapper rpc "Async.VM.create" [ session_id; args ] >>= fun x -> return (ref_task_of_rpc x) (** *) let destroy ~rpc ~session_id ~self = @@ -891,19 +914,12 @@ module ClientF = functor(X : IO) ->struct rpc_wrapper rpc "Async.VM.call_plugin" [ session_id; vm; plugin; fn; args ] >>= fun x -> return (ref_task_of_rpc x) (** *) - let set_auto_update_drivers ~rpc ~session_id ~self ~value = - let session_id = rpc_of_ref_session session_id in - let self = rpc_of_ref_VM self in - let value = rpc_of_bool value in - - rpc_wrapper rpc "Async.VM.set_auto_update_drivers" [ session_id; self; value ] >>= fun x -> return (ref_task_of_rpc x) - (** *) - let assert_can_set_auto_update_drivers ~rpc ~session_id ~self ~value = + let set_has_vendor_device ~rpc ~session_id ~self ~value = let session_id = rpc_of_ref_session session_id in let self = rpc_of_ref_VM self in let value = rpc_of_bool value in - rpc_wrapper rpc "Async.VM.assert_can_set_auto_update_drivers" [ session_id; self; value ] >>= fun x -> return (ref_task_of_rpc x) + rpc_wrapper rpc "Async.VM.set_has_vendor_device" [ session_id; self; value ] >>= fun x -> return (ref_task_of_rpc x) (** *) let import ~rpc ~session_id ~url ~sr ~full_restore ~force = let session_id = rpc_of_ref_session session_id in @@ -914,12 +930,6 @@ module ClientF = functor(X : IO) ->struct rpc_wrapper rpc "Async.VM.import" [ session_id; url; sr; full_restore; force ] >>= fun x -> return (ref_task_of_rpc x) (** *) - let xenprep_start ~rpc ~session_id ~self = - let session_id = rpc_of_ref_session session_id in - let self = rpc_of_ref_VM self in - - rpc_wrapper rpc "Async.VM.xenprep_start" [ session_id; self ] >>= fun x -> return (ref_task_of_rpc x) - (** *) let create_from_record ~rpc ~session_id ~value = create ~rpc @@ -968,6 +978,7 @@ module ClientF = functor(X : IO) ->struct ~version:value.vM_version ~generation_id:value.vM_generation_id ~hardware_platform_version:value.vM_hardware_platform_version + ~has_vendor_device:value.vM_has_vendor_device end module VM_metrics = struct end @@ -1168,6 +1179,19 @@ module ClientF = functor(X : IO) ->struct rpc_wrapper rpc "Async.host.license_apply" [ session_id; host; contents ] >>= fun x -> return (ref_task_of_rpc x) (** *) + let license_add ~rpc ~session_id ~host ~contents = + let session_id = rpc_of_ref_session session_id in + let host = rpc_of_ref_host host in + let contents = rpc_of_string contents in + + rpc_wrapper rpc "Async.host.license_add" [ session_id; host; contents ] >>= fun x -> return (ref_task_of_rpc x) + (** *) + let license_remove ~rpc ~session_id ~host = + let session_id = rpc_of_ref_session session_id in + let host = rpc_of_ref_host host in + + rpc_wrapper rpc "Async.host.license_remove" [ session_id; host ] >>= fun x -> return (ref_task_of_rpc x) + (** *) let create ~rpc ~session_id ~uuid ~name_label ~name_description ~hostname ~address ~external_auth_type ~external_auth_service_name ~external_auth_configuration ~license_params ~edition ~license_server ~local_cache_sr ~chipset_info = let session_id = rpc_of_ref_session session_id in let uuid = rpc_of_string uuid in @@ -1501,6 +1525,12 @@ module ClientF = functor(X : IO) ->struct let value = rpc_of_bool value in rpc_wrapper rpc "Async.host.set_ssl_legacy" [ session_id; self; value ] >>= fun x -> return (ref_task_of_rpc x) + (** *) + let apply_guest_agent_config ~rpc ~session_id ~host = + let session_id = rpc_of_ref_session session_id in + let host = rpc_of_ref_host host in + + rpc_wrapper rpc "Async.host.apply_guest_agent_config" [ session_id; host ] >>= fun x -> return (ref_task_of_rpc x) end module Host_crashdump = struct (** *) @@ -2049,6 +2079,16 @@ module ClientF = functor(X : IO) ->struct rpc_wrapper rpc "Async.SR.disable_database_replication" [ session_id; sr ] >>= fun x -> return (ref_task_of_rpc x) end + module LVHD = struct + (** *) + let enable_thin_provisioning ~rpc ~session_id ~sR ~initial_allocation ~allocation_quantum = + let session_id = rpc_of_ref_session session_id in + let sR = rpc_of_ref_SR sR in + let initial_allocation = rpc_of_int64 initial_allocation in + let allocation_quantum = rpc_of_int64 allocation_quantum in + + rpc_wrapper rpc "Async.LVHD.enable_thin_provisioning" [ session_id; sR; initial_allocation; allocation_quantum ] >>= fun x -> return (ref_task_of_rpc x) + end module VDI = struct (** *) let create ~rpc ~session_id ~name_label ~name_description ~sR ~virtual_size ~_type ~sharable ~read_only ~other_config ~xenstore_data ~sm_config ~tags = @@ -3455,6 +3495,18 @@ module ClientF = functor(X : IO) ->struct rpc_wrapper rpc "pool.get_current_operations" [ session_id; self ] >>= fun x -> return (string_to_pool_allowed_operations_map_of_rpc x) (** *) + let get_guest_agent_config ~rpc ~session_id ~self = + let session_id = rpc_of_ref_session session_id in + let self = rpc_of_ref_pool self in + + rpc_wrapper rpc "pool.get_guest_agent_config" [ session_id; self ] >>= fun x -> return (string_to_string_map_of_rpc x) + (** *) + let get_cpu_info ~rpc ~session_id ~self = + let session_id = rpc_of_ref_session session_id in + let self = rpc_of_ref_pool self in + + rpc_wrapper rpc "pool.get_cpu_info" [ session_id; self ] >>= fun x -> return (string_to_string_map_of_rpc x) + (** *) let set_name_label ~rpc ~session_id ~self ~value = let session_id = rpc_of_ref_session session_id in let self = rpc_of_ref_pool self in @@ -3932,6 +3984,28 @@ module ClientF = functor(X : IO) ->struct rpc_wrapper rpc "pool.disable_ssl_legacy" [ session_id; self ] >>= fun x -> return (ignore x) (** *) + let has_extension ~rpc ~session_id ~self ~name = + let session_id = rpc_of_ref_session session_id in + let self = rpc_of_ref_pool self in + let name = rpc_of_string name in + + rpc_wrapper rpc "pool.has_extension" [ session_id; self; name ] >>= fun x -> return (bool_of_rpc x) + (** *) + let add_to_guest_agent_config ~rpc ~session_id ~self ~key ~value = + let session_id = rpc_of_ref_session session_id in + let self = rpc_of_ref_pool self in + let key = rpc_of_string key in + let value = rpc_of_string value in + + rpc_wrapper rpc "pool.add_to_guest_agent_config" [ session_id; self; key; value ] >>= fun x -> return (ignore x) + (** *) + let remove_from_guest_agent_config ~rpc ~session_id ~self ~key = + let session_id = rpc_of_ref_session session_id in + let self = rpc_of_ref_pool self in + let key = rpc_of_string key in + + rpc_wrapper rpc "pool.remove_from_guest_agent_config" [ session_id; self; key ] >>= fun x -> return (ignore x) + (** *) let get_all ~rpc ~session_id = let session_id = rpc_of_ref_session session_id in @@ -4119,7 +4193,7 @@ module ClientF = functor(X : IO) ->struct rpc_wrapper rpc "VM.get_by_uuid" [ session_id; uuid ] >>= fun x -> return (ref_VM_of_rpc x) (** *) - let create ~rpc ~session_id ~name_label ~name_description ~user_version ~is_a_template ~affinity ~memory_target ~memory_static_max ~memory_dynamic_max ~memory_dynamic_min ~memory_static_min ~vCPUs_params ~vCPUs_max ~vCPUs_at_startup ~actions_after_shutdown ~actions_after_reboot ~actions_after_crash ~pV_bootloader ~pV_kernel ~pV_ramdisk ~pV_args ~pV_bootloader_args ~pV_legacy_args ~hVM_boot_policy ~hVM_boot_params ~hVM_shadow_multiplier ~platform ~pCI_bus ~other_config ~recommendations ~xenstore_data ~ha_always_run ~ha_restart_priority ~tags ~blocked_operations ~protection_policy ~is_snapshot_from_vmpp ~appliance ~start_delay ~shutdown_delay ~order ~suspend_SR ~version ~generation_id ~hardware_platform_version = + let create ~rpc ~session_id ~name_label ~name_description ~user_version ~is_a_template ~affinity ~memory_target ~memory_static_max ~memory_dynamic_max ~memory_dynamic_min ~memory_static_min ~vCPUs_params ~vCPUs_max ~vCPUs_at_startup ~actions_after_shutdown ~actions_after_reboot ~actions_after_crash ~pV_bootloader ~pV_kernel ~pV_ramdisk ~pV_args ~pV_bootloader_args ~pV_legacy_args ~hVM_boot_policy ~hVM_boot_params ~hVM_shadow_multiplier ~platform ~pCI_bus ~other_config ~recommendations ~xenstore_data ~ha_always_run ~ha_restart_priority ~tags ~blocked_operations ~protection_policy ~is_snapshot_from_vmpp ~appliance ~start_delay ~shutdown_delay ~order ~suspend_SR ~version ~generation_id ~hardware_platform_version ~has_vendor_device = let session_id = rpc_of_ref_session session_id in let name_label = rpc_of_string name_label in let name_description = rpc_of_string name_description in @@ -4165,7 +4239,8 @@ module ClientF = functor(X : IO) ->struct let version = rpc_of_int64 version in let generation_id = rpc_of_string generation_id in let hardware_platform_version = rpc_of_int64 hardware_platform_version in - let args = Dict [ "name_label", name_label; "name_description", name_description; "user_version", user_version; "is_a_template", is_a_template; "affinity", affinity; "memory_target", memory_target; "memory_static_max", memory_static_max; "memory_dynamic_max", memory_dynamic_max; "memory_dynamic_min", memory_dynamic_min; "memory_static_min", memory_static_min; "VCPUs_params", vCPUs_params; "VCPUs_max", vCPUs_max; "VCPUs_at_startup", vCPUs_at_startup; "actions_after_shutdown", actions_after_shutdown; "actions_after_reboot", actions_after_reboot; "actions_after_crash", actions_after_crash; "PV_bootloader", pV_bootloader; "PV_kernel", pV_kernel; "PV_ramdisk", pV_ramdisk; "PV_args", pV_args; "PV_bootloader_args", pV_bootloader_args; "PV_legacy_args", pV_legacy_args; "HVM_boot_policy", hVM_boot_policy; "HVM_boot_params", hVM_boot_params; "HVM_shadow_multiplier", hVM_shadow_multiplier; "platform", platform; "PCI_bus", pCI_bus; "other_config", other_config; "recommendations", recommendations; "xenstore_data", xenstore_data; "ha_always_run", ha_always_run; "ha_restart_priority", ha_restart_priority; "tags", tags; "blocked_operations", blocked_operations; "protection_policy", protection_policy; "is_snapshot_from_vmpp", is_snapshot_from_vmpp; "appliance", appliance; "start_delay", start_delay; "shutdown_delay", shutdown_delay; "order", order; "suspend_SR", suspend_SR; "version", version; "generation_id", generation_id; "hardware_platform_version", hardware_platform_version] in + let has_vendor_device = rpc_of_bool has_vendor_device in + let args = Dict [ "name_label", name_label; "name_description", name_description; "user_version", user_version; "is_a_template", is_a_template; "affinity", affinity; "memory_target", memory_target; "memory_static_max", memory_static_max; "memory_dynamic_max", memory_dynamic_max; "memory_dynamic_min", memory_dynamic_min; "memory_static_min", memory_static_min; "VCPUs_params", vCPUs_params; "VCPUs_max", vCPUs_max; "VCPUs_at_startup", vCPUs_at_startup; "actions_after_shutdown", actions_after_shutdown; "actions_after_reboot", actions_after_reboot; "actions_after_crash", actions_after_crash; "PV_bootloader", pV_bootloader; "PV_kernel", pV_kernel; "PV_ramdisk", pV_ramdisk; "PV_args", pV_args; "PV_bootloader_args", pV_bootloader_args; "PV_legacy_args", pV_legacy_args; "HVM_boot_policy", hVM_boot_policy; "HVM_boot_params", hVM_boot_params; "HVM_shadow_multiplier", hVM_shadow_multiplier; "platform", platform; "PCI_bus", pCI_bus; "other_config", other_config; "recommendations", recommendations; "xenstore_data", xenstore_data; "ha_always_run", ha_always_run; "ha_restart_priority", ha_restart_priority; "tags", tags; "blocked_operations", blocked_operations; "protection_policy", protection_policy; "is_snapshot_from_vmpp", is_snapshot_from_vmpp; "appliance", appliance; "start_delay", start_delay; "shutdown_delay", shutdown_delay; "order", order; "suspend_SR", suspend_SR; "version", version; "generation_id", generation_id; "hardware_platform_version", hardware_platform_version; "has_vendor_device", has_vendor_device] in rpc_wrapper rpc "VM.create" [ session_id; args ] >>= fun x -> return (ref_VM_of_rpc x) (** *) let destroy ~rpc ~session_id ~self = @@ -4636,11 +4711,11 @@ module ClientF = functor(X : IO) ->struct rpc_wrapper rpc "VM.get_hardware_platform_version" [ session_id; self ] >>= fun x -> return (int64_of_rpc x) (** *) - let get_auto_update_drivers ~rpc ~session_id ~self = + let get_has_vendor_device ~rpc ~session_id ~self = let session_id = rpc_of_ref_session session_id in let self = rpc_of_ref_VM self in - rpc_wrapper rpc "VM.get_auto_update_drivers" [ session_id; self ] >>= fun x -> return (bool_of_rpc x) + rpc_wrapper rpc "VM.get_has_vendor_device" [ session_id; self ] >>= fun x -> return (bool_of_rpc x) (** *) let set_name_label ~rpc ~session_id ~self ~value = let session_id = rpc_of_ref_session session_id in @@ -5487,19 +5562,12 @@ module ClientF = functor(X : IO) ->struct rpc_wrapper rpc "VM.call_plugin" [ session_id; vm; plugin; fn; args ] >>= fun x -> return (string_of_rpc x) (** *) - let set_auto_update_drivers ~rpc ~session_id ~self ~value = + let set_has_vendor_device ~rpc ~session_id ~self ~value = let session_id = rpc_of_ref_session session_id in let self = rpc_of_ref_VM self in let value = rpc_of_bool value in - rpc_wrapper rpc "VM.set_auto_update_drivers" [ session_id; self; value ] >>= fun x -> return (ignore x) - (** *) - let assert_can_set_auto_update_drivers ~rpc ~session_id ~self ~value = - let session_id = rpc_of_ref_session session_id in - let self = rpc_of_ref_VM self in - let value = rpc_of_bool value in - - rpc_wrapper rpc "VM.assert_can_set_auto_update_drivers" [ session_id; self; value ] >>= fun x -> return (ignore x) + rpc_wrapper rpc "VM.set_has_vendor_device" [ session_id; self; value ] >>= fun x -> return (ignore x) (** *) let import ~rpc ~session_id ~url ~sr ~full_restore ~force = let session_id = rpc_of_ref_session session_id in @@ -5510,12 +5578,6 @@ module ClientF = functor(X : IO) ->struct rpc_wrapper rpc "VM.import" [ session_id; url; sr; full_restore; force ] >>= fun x -> return (ref_VM_set_of_rpc x) (** *) - let xenprep_start ~rpc ~session_id ~self = - let session_id = rpc_of_ref_session session_id in - let self = rpc_of_ref_VM self in - - rpc_wrapper rpc "VM.xenprep_start" [ session_id; self ] >>= fun x -> return (ignore x) - (** *) let get_all ~rpc ~session_id = let session_id = rpc_of_ref_session session_id in @@ -5580,6 +5642,7 @@ module ClientF = functor(X : IO) ->struct ~version:value.vM_version ~generation_id:value.vM_generation_id ~hardware_platform_version:value.vM_hardware_platform_version + ~has_vendor_device:value.vM_has_vendor_device end module VM_metrics = struct (** *) @@ -7003,6 +7066,19 @@ module ClientF = functor(X : IO) ->struct rpc_wrapper rpc "host.license_apply" [ session_id; host; contents ] >>= fun x -> return (ignore x) (** *) + let license_add ~rpc ~session_id ~host ~contents = + let session_id = rpc_of_ref_session session_id in + let host = rpc_of_ref_host host in + let contents = rpc_of_string contents in + + rpc_wrapper rpc "host.license_add" [ session_id; host; contents ] >>= fun x -> return (ignore x) + (** *) + let license_remove ~rpc ~session_id ~host = + let session_id = rpc_of_ref_session session_id in + let host = rpc_of_ref_host host in + + rpc_wrapper rpc "host.license_remove" [ session_id; host ] >>= fun x -> return (ignore x) + (** *) let create ~rpc ~session_id ~uuid ~name_label ~name_description ~hostname ~address ~external_auth_type ~external_auth_service_name ~external_auth_configuration ~license_params ~edition ~license_server ~local_cache_sr ~chipset_info = let session_id = rpc_of_ref_session session_id in let uuid = rpc_of_string uuid in @@ -7579,6 +7655,12 @@ module ClientF = functor(X : IO) ->struct rpc_wrapper rpc "host.set_ssl_legacy" [ session_id; self; value ] >>= fun x -> return (ignore x) (** *) + let apply_guest_agent_config ~rpc ~session_id ~host = + let session_id = rpc_of_ref_session session_id in + let host = rpc_of_ref_host host in + + rpc_wrapper rpc "host.apply_guest_agent_config" [ session_id; host ] >>= fun x -> return (ignore x) + (** *) let get_all ~rpc ~session_id = let session_id = rpc_of_ref_session session_id in @@ -9536,6 +9618,12 @@ module ClientF = functor(X : IO) ->struct rpc_wrapper rpc "SM.get_driver_filename" [ session_id; self ] >>= fun x -> return (string_of_rpc x) (** *) + let get_required_cluster_stack ~rpc ~session_id ~self = + let session_id = rpc_of_ref_session session_id in + let self = rpc_of_ref_SM self in + + rpc_wrapper rpc "SM.get_required_cluster_stack" [ session_id; self ] >>= fun x -> return (string_set_of_rpc x) + (** *) let set_other_config ~rpc ~session_id ~self ~value = let session_id = rpc_of_ref_session session_id in let self = rpc_of_ref_SM self in @@ -9708,6 +9796,12 @@ module ClientF = functor(X : IO) ->struct rpc_wrapper rpc "SR.get_introduced_by" [ session_id; self ] >>= fun x -> return (ref_DR_task_of_rpc x) (** *) + let get_clustered ~rpc ~session_id ~self = + let session_id = rpc_of_ref_session session_id in + let self = rpc_of_ref_SR self in + + rpc_wrapper rpc "SR.get_clustered" [ session_id; self ] >>= fun x -> return (bool_of_rpc x) + (** *) let set_other_config ~rpc ~session_id ~self ~value = let session_id = rpc_of_ref_session session_id in let self = rpc_of_ref_SR self in @@ -9925,6 +10019,33 @@ module ClientF = functor(X : IO) ->struct rpc_wrapper rpc "SR.disable_database_replication" [ session_id; sr ] >>= fun x -> return (ignore x) (** *) + let get_data_sources ~rpc ~session_id ~sr = + let session_id = rpc_of_ref_session session_id in + let sr = rpc_of_ref_SR sr in + + rpc_wrapper rpc "SR.get_data_sources" [ session_id; sr ] >>= fun x -> return (data_source_t_set_of_rpc x) + (** *) + let record_data_source ~rpc ~session_id ~sr ~data_source = + let session_id = rpc_of_ref_session session_id in + let sr = rpc_of_ref_SR sr in + let data_source = rpc_of_string data_source in + + rpc_wrapper rpc "SR.record_data_source" [ session_id; sr; data_source ] >>= fun x -> return (ignore x) + (** *) + let query_data_source ~rpc ~session_id ~sr ~data_source = + let session_id = rpc_of_ref_session session_id in + let sr = rpc_of_ref_SR sr in + let data_source = rpc_of_string data_source in + + rpc_wrapper rpc "SR.query_data_source" [ session_id; sr; data_source ] >>= fun x -> return (float_of_rpc x) + (** *) + let forget_data_source_archives ~rpc ~session_id ~sr ~data_source = + let session_id = rpc_of_ref_session session_id in + let sr = rpc_of_ref_SR sr in + let data_source = rpc_of_string data_source in + + rpc_wrapper rpc "SR.forget_data_source_archives" [ session_id; sr; data_source ] >>= fun x -> return (ignore x) + (** *) let get_all ~rpc ~session_id = let session_id = rpc_of_ref_session session_id in @@ -9941,6 +10062,34 @@ module ClientF = functor(X : IO) ->struct rpc_wrapper rpc "SR.get_all_records" [ session_id ] >>= fun x -> return (ref_SR_to_sR_t_map_of_rpc x) end + module LVHD = struct + (** *) + let get_record ~rpc ~session_id ~self = + let session_id = rpc_of_ref_session session_id in + let self = rpc_of_ref_LVHD self in + + rpc_wrapper rpc "LVHD.get_record" [ session_id; self ] >>= fun x -> return (lVHD_t_of_rpc x) + (** *) + let get_by_uuid ~rpc ~session_id ~uuid = + let session_id = rpc_of_ref_session session_id in + let uuid = rpc_of_string uuid in + + rpc_wrapper rpc "LVHD.get_by_uuid" [ session_id; uuid ] >>= fun x -> return (ref_LVHD_of_rpc x) + (** *) + let get_uuid ~rpc ~session_id ~self = + let session_id = rpc_of_ref_session session_id in + let self = rpc_of_ref_LVHD self in + + rpc_wrapper rpc "LVHD.get_uuid" [ session_id; self ] >>= fun x -> return (string_of_rpc x) + (** *) + let enable_thin_provisioning ~rpc ~session_id ~sR ~initial_allocation ~allocation_quantum = + let session_id = rpc_of_ref_session session_id in + let sR = rpc_of_ref_SR sR in + let initial_allocation = rpc_of_int64 initial_allocation in + let allocation_quantum = rpc_of_int64 allocation_quantum in + + rpc_wrapper rpc "LVHD.enable_thin_provisioning" [ session_id; sR; initial_allocation; allocation_quantum ] >>= fun x -> return (ignore x) + end module VDI = struct (** *) let get_record ~rpc ~session_id ~self =