From ac0a8ed4eb6f103640337efc4b5810a6554e9ab9 Mon Sep 17 00:00:00 2001 From: Luca Zhang Date: Fri, 29 Mar 2024 20:40:56 +0800 Subject: [PATCH] CP-47364: generate api messages and errors of Golang code Signed-off-by: Luca Zhang --- ocaml/sdk-gen/go/dune | 1 + ocaml/sdk-gen/go/gen_go_binding.ml | 20 + ocaml/sdk-gen/go/gen_go_helper.ml | 6 + ocaml/sdk-gen/go/gen_go_helper.mli | 4 + ocaml/sdk-gen/go/test_data/api_errors.go | 6 + ocaml/sdk-gen/go/test_data/api_messages.go | 6 + ocaml/sdk-gen/go/test_gen_go.ml | 42 +- ocaml/xapi-consts/api_errors.ml | 1242 +++++++++++--------- quality-gate.sh | 2 +- 9 files changed, 744 insertions(+), 585 deletions(-) create mode 100644 ocaml/sdk-gen/go/test_data/api_errors.go create mode 100644 ocaml/sdk-gen/go/test_data/api_messages.go diff --git a/ocaml/sdk-gen/go/dune b/ocaml/sdk-gen/go/dune index 739fe22a656..ed84911dedc 100644 --- a/ocaml/sdk-gen/go/dune +++ b/ocaml/sdk-gen/go/dune @@ -46,5 +46,6 @@ (libraries alcotest xapi-test-utils gen_go_helper go_file_headers) (deps (source_tree test_data) + (source_tree templates) ) ) diff --git a/ocaml/sdk-gen/go/gen_go_binding.ml b/ocaml/sdk-gen/go/gen_go_binding.ml index af6fa3b61e9..47b21931b4c 100644 --- a/ocaml/sdk-gen/go/gen_go_binding.ml +++ b/ocaml/sdk-gen/go/gen_go_binding.ml @@ -20,7 +20,27 @@ let render_header name = in header ^ "\n" +let render_api_messages_and_errors () = + let obj = + `O + [ + ("api_errors", `A Json.api_errors) + ; ("api_messages", `A Json.api_messages) + ] + in + let messages_rendered = + render_header "api_errors" ^ render_template "APIErrors.mustache" obj ^ "\n" + in + let error_rendered = + render_header "api_messages" + ^ render_template "APIMessages.mustache" obj + ^ "\n" + in + generate_file error_rendered "api_errors.go" ; + generate_file messages_rendered "api_messages.go" + let main () = + render_api_messages_and_errors () ; let objects = Json.xenapi objects in List.iter (fun (name, obj) -> diff --git a/ocaml/sdk-gen/go/gen_go_helper.ml b/ocaml/sdk-gen/go/gen_go_helper.ml index a29e52d140f..44b9ba7e830 100644 --- a/ocaml/sdk-gen/go/gen_go_helper.ml +++ b/ocaml/sdk-gen/go/gen_go_helper.ml @@ -233,6 +233,12 @@ module Json = struct (String.lowercase_ascii obj.name, `O assoc_list) ) objs + + let api_messages = + List.map (fun (msg, _) -> `O [("name", `String msg)]) !Api_messages.msgList + + let api_errors = + List.map (fun error -> `O [("name", `String error)]) !Api_errors.errors end let objects = diff --git a/ocaml/sdk-gen/go/gen_go_helper.mli b/ocaml/sdk-gen/go/gen_go_helper.mli index 57421335ad1..f58fb079786 100644 --- a/ocaml/sdk-gen/go/gen_go_helper.mli +++ b/ocaml/sdk-gen/go/gen_go_helper.mli @@ -25,4 +25,8 @@ val generate_file : string -> string -> unit module Json : sig val xenapi : Datamodel_types.obj list -> (string * Mustache.Json.t) list + + val api_messages : Mustache.Json.value list + + val api_errors : Mustache.Json.value list end diff --git a/ocaml/sdk-gen/go/test_data/api_errors.go b/ocaml/sdk-gen/go/test_data/api_errors.go new file mode 100644 index 00000000000..b14349c1885 --- /dev/null +++ b/ocaml/sdk-gen/go/test_data/api_errors.go @@ -0,0 +1,6 @@ +const ( + // + ERR_MESSAGE_DEPRECATED = "MESSAGE_DEPRECATED" + // + ERR_MESSAGE_REMOVED = "MESSAGE_REMOVED" +) diff --git a/ocaml/sdk-gen/go/test_data/api_messages.go b/ocaml/sdk-gen/go/test_data/api_messages.go new file mode 100644 index 00000000000..055d2077ebd --- /dev/null +++ b/ocaml/sdk-gen/go/test_data/api_messages.go @@ -0,0 +1,6 @@ +const ( + // + MES_HA_STATEFILE_LOST = "HA_STATEFILE_LOST" + // + MES_METADATA_LUN_HEALTHY = "METADATA_LUN_HEALTHY" +) \ No newline at end of file diff --git a/ocaml/sdk-gen/go/test_gen_go.ml b/ocaml/sdk-gen/go/test_gen_go.ml index a0605a4472f..fa9ee5e9a49 100644 --- a/ocaml/sdk-gen/go/test_gen_go.ml +++ b/ocaml/sdk-gen/go/test_gen_go.ml @@ -208,6 +208,30 @@ let enums : Mustache.Json.t = ) ] +let api_errors : Mustache.Json.t = + `O + [ + ( "api_errors" + , `A + [ + `O [("name", `String "MESSAGE_DEPRECATED")] + ; `O [("name", `String "MESSAGE_REMOVED")] + ] + ) + ] + +let api_messages : Mustache.Json.t = + `O + [ + ( "api_messages" + , `A + [ + `O [("name", `String "HA_STATEFILE_LOST")] + ; `O [("name", `String "METADATA_LUN_HEALTHY")] + ] + ) + ] + module TemplatesTest = Generic.MakeStateless (struct module Io = struct type input_t = string * Mustache.Json.t @@ -228,12 +252,18 @@ module TemplatesTest = Generic.MakeStateless (struct let enums_rendered = string_of_file "enum.go" + let api_errors_rendered = string_of_file "api_errors.go" + + let api_messages_rendered = string_of_file "api_messages.go" + let tests = `QuickAndAutoDocumented [ (("FileHeader.mustache", header), file_header_rendered) ; (("Record.mustache", record), record_rendered) ; (("Enum.mustache", enums), enums_rendered) + ; (("APIErrors.mustache", api_errors), api_errors_rendered) + ; (("APIMessages.mustache", api_messages), api_messages_rendered) ] end) @@ -256,7 +286,17 @@ let generated_json_tests = check_true "Mustache.Json of headers has right structure" @@ List.for_all (fun (_, h) -> is_same_struct h header) headers in - [("headers", `Quick, headers); ("jsons", `Quick, jsons)] + let errors_and_messages () = + let errors = `O [("api_errors", `A Json.api_errors)] in + let messages = `O [("api_messages", `A Json.api_messages)] in + check_true "Mustache.Json of errors and messages has right structure" + @@ (is_same_struct errors api_errors && is_same_struct messages api_messages) + in + [ + ("headers", `Quick, headers) + ; ("jsons", `Quick, jsons) + ; ("errors_and_messages", `Quick, errors_and_messages) + ] let tests = make_suite "gen_go_binding_" diff --git a/ocaml/xapi-consts/api_errors.ml b/ocaml/xapi-consts/api_errors.ml index 43fff504a3d..5616ba3a1c5 100644 --- a/ocaml/xapi-consts/api_errors.ml +++ b/ocaml/xapi-consts/api_errors.ml @@ -13,6 +13,14 @@ *) exception Server_error of string * string list +let ( $ ) f x = f x + +let errors = ref [] + +let add_error error = + errors := error :: !errors ; + error + let to_string = function | Server_error (name, args) -> Printf.sprintf "Server_error(%s, [ %a ])" name @@ -29,933 +37,983 @@ let _ = None ) -let message_deprecated = "MESSAGE_DEPRECATED" +let message_deprecated = add_error "MESSAGE_DEPRECATED" -let message_removed = "MESSAGE_REMOVED" +let message_removed = add_error "MESSAGE_REMOVED" -let permission_denied = "PERMISSION_DENIED" +let permission_denied = add_error "PERMISSION_DENIED" -let internal_error = "INTERNAL_ERROR" +let internal_error = add_error "INTERNAL_ERROR" -let map_duplicate_key = "MAP_DUPLICATE_KEY" +let map_duplicate_key = add_error "MAP_DUPLICATE_KEY" -let db_uniqueness_constraint_violation = "DB_UNIQUENESS_CONSTRAINT_VIOLATION" +let db_uniqueness_constraint_violation = + add_error "DB_UNIQUENESS_CONSTRAINT_VIOLATION" -let location_not_unique = "LOCATION_NOT_UNIQUE" +let location_not_unique = add_error "LOCATION_NOT_UNIQUE" -let message_method_unknown = "MESSAGE_METHOD_UNKNOWN" +let message_method_unknown = add_error "MESSAGE_METHOD_UNKNOWN" -let message_parameter_count_mismatch = "MESSAGE_PARAMETER_COUNT_MISMATCH" +let message_parameter_count_mismatch = + add_error "MESSAGE_PARAMETER_COUNT_MISMATCH" -let value_not_supported = "VALUE_NOT_SUPPORTED" +let value_not_supported = add_error "VALUE_NOT_SUPPORTED" -let invalid_value = "INVALID_VALUE" +let invalid_value = add_error "INVALID_VALUE" -let memory_constraint_violation = "MEMORY_CONSTRAINT_VIOLATION" +let memory_constraint_violation = add_error "MEMORY_CONSTRAINT_VIOLATION" -let memory_constraint_violation_order = "MEMORY_CONSTRAINT_VIOLATION_ORDER" +let memory_constraint_violation_order = + add_error "MEMORY_CONSTRAINT_VIOLATION_ORDER" -let memory_constraint_violation_maxpin = "MEMORY_CONSTRAINT_VIOLATION_MAXPIN" +let memory_constraint_violation_maxpin = + add_error "MEMORY_CONSTRAINT_VIOLATION_MAXPIN" -let field_type_error = "FIELD_TYPE_ERROR" +let field_type_error = add_error "FIELD_TYPE_ERROR" -let session_authentication_failed = "SESSION_AUTHENTICATION_FAILED" +let session_authentication_failed = add_error "SESSION_AUTHENTICATION_FAILED" -let session_authorization_failed = "SESSION_AUTHORIZATION_FAILED" +let session_authorization_failed = add_error "SESSION_AUTHORIZATION_FAILED" -let session_invalid = "SESSION_INVALID" +let session_invalid = add_error "SESSION_INVALID" -let change_password_rejected = "CHANGE_PASSWORD_REJECTED" +let change_password_rejected = add_error "CHANGE_PASSWORD_REJECTED" -let user_is_not_local_superuser = "USER_IS_NOT_LOCAL_SUPERUSER" +let user_is_not_local_superuser = add_error "USER_IS_NOT_LOCAL_SUPERUSER" -let cannot_contact_host = "CANNOT_CONTACT_HOST" +let cannot_contact_host = add_error "CANNOT_CONTACT_HOST" -let tls_connection_failed = "TLS_CONNECTION_FAILED" +let tls_connection_failed = add_error "TLS_CONNECTION_FAILED" -let not_supported_during_upgrade = "NOT_SUPPORTED_DURING_UPGRADE" +let not_supported_during_upgrade = add_error "NOT_SUPPORTED_DURING_UPGRADE" -let handle_invalid = "HANDLE_INVALID" +let handle_invalid = add_error "HANDLE_INVALID" -let uuid_invalid = "UUID_INVALID" +let uuid_invalid = add_error "UUID_INVALID" -let vm_hvm_required = "VM_HVM_REQUIRED" +let vm_hvm_required = add_error "VM_HVM_REQUIRED" -let vm_no_vcpus = "VM_NO_VCPUS" +let vm_no_vcpus = add_error "VM_NO_VCPUS" -let vm_toomany_vcpus = "VM_TOO_MANY_VCPUS" +let vm_toomany_vcpus = add_error "VM_TOO_MANY_VCPUS" -let vm_is_protected = "VM_IS_PROTECTED" +let vm_is_protected = add_error "VM_IS_PROTECTED" -let vm_is_immobile = "VM_IS_IMMOBILE" +let vm_is_immobile = add_error "VM_IS_IMMOBILE" -let vm_is_using_nested_virt = "VM_IS_USING_NESTED_VIRT" +let vm_is_using_nested_virt = add_error "VM_IS_USING_NESTED_VIRT" -let host_in_use = "HOST_IN_USE" +let host_in_use = add_error "HOST_IN_USE" -let host_in_emergency_mode = "HOST_IN_EMERGENCY_MODE" +let host_in_emergency_mode = add_error "HOST_IN_EMERGENCY_MODE" -let host_cannot_read_metrics = "HOST_CANNOT_READ_METRICS" +let host_cannot_read_metrics = add_error "HOST_CANNOT_READ_METRICS" -let host_disabled = "HOST_DISABLED" +let host_disabled = add_error "HOST_DISABLED" -let host_disabled_until_reboot = "HOST_DISABLED_UNTIL_REBOOT" +let host_disabled_until_reboot = add_error "HOST_DISABLED_UNTIL_REBOOT" -let host_not_disabled = "HOST_NOT_DISABLED" +let host_not_disabled = add_error "HOST_NOT_DISABLED" -let host_not_live = "HOST_NOT_LIVE" +let host_not_live = add_error "HOST_NOT_LIVE" -let host_is_live = "HOST_IS_LIVE" +let host_is_live = add_error "HOST_IS_LIVE" -let host_power_on_mode_disabled = "HOST_POWER_ON_MODE_DISABLED" +let host_power_on_mode_disabled = add_error "HOST_POWER_ON_MODE_DISABLED" -let host_not_enough_free_memory = "HOST_NOT_ENOUGH_FREE_MEMORY" +let host_not_enough_free_memory = add_error "HOST_NOT_ENOUGH_FREE_MEMORY" -let host_not_enough_pcpus = "HOST_NOT_ENOUGH_PCPUS" +let host_not_enough_pcpus = add_error "HOST_NOT_ENOUGH_PCPUS" -let no_hosts_available = "NO_HOSTS_AVAILABLE" +let no_hosts_available = add_error "NO_HOSTS_AVAILABLE" -let host_offline = "HOST_OFFLINE" +let host_offline = add_error "HOST_OFFLINE" -let host_cannot_destroy_self = "HOST_CANNOT_DESTROY_SELF" +let host_cannot_destroy_self = add_error "HOST_CANNOT_DESTROY_SELF" -let host_is_slave = "HOST_IS_SLAVE" +let host_is_slave = add_error "HOST_IS_SLAVE" -let host_name_invalid = "HOST_NAME_INVALID" +let host_name_invalid = add_error "HOST_NAME_INVALID" -let host_has_resident_vms = "HOST_HAS_RESIDENT_VMS" +let host_has_resident_vms = add_error "HOST_HAS_RESIDENT_VMS" -let hosts_failed_to_enable_caching = "HOSTS_FAILED_TO_ENABLE_CACHING" +let hosts_failed_to_enable_caching = add_error "HOSTS_FAILED_TO_ENABLE_CACHING" -let hosts_failed_to_disable_caching = "HOSTS_FAILED_TO_DISABLE_CACHING" +let hosts_failed_to_disable_caching = + add_error "HOSTS_FAILED_TO_DISABLE_CACHING" -let host_cannot_see_SR = "HOST_CANNOT_SEE_SR" +let host_cannot_see_SR = add_error "HOST_CANNOT_SEE_SR" (* Host errors which explain why the host is in emergency mode *) -let host_its_own_slave = "HOST_ITS_OWN_SLAVE" +let host_its_own_slave = add_error "HOST_ITS_OWN_SLAVE" -let host_still_booting = "HOST_STILL_BOOTING" +let host_still_booting = add_error "HOST_STILL_BOOTING" (* license *) -let host_has_no_management_ip = "HOST_HAS_NO_MANAGEMENT_IP" +let host_has_no_management_ip = add_error "HOST_HAS_NO_MANAGEMENT_IP" -let host_master_cannot_talk_back = "HOST_MASTER_CANNOT_TALK_BACK" +let host_master_cannot_talk_back = add_error "HOST_MASTER_CANNOT_TALK_BACK" -let host_unknown_to_master = "HOST_UNKNOWN_TO_MASTER" +let host_unknown_to_master = add_error "HOST_UNKNOWN_TO_MASTER" let host_xapi_version_higher_than_coordinator = - "HOST_XAPI_VERSION_HIGHER_THAN_COORDINATOR" + add_error "HOST_XAPI_VERSION_HIGHER_THAN_COORDINATOR" (* should be fenced *) -let host_broken = "HOST_BROKEN" +let host_broken = add_error "HOST_BROKEN" -let interface_has_no_ip = "INTERFACE_HAS_NO_IP" +let interface_has_no_ip = add_error "INTERFACE_HAS_NO_IP" -let invalid_ip_address_specified = "INVALID_IP_ADDRESS_SPECIFIED" +let invalid_ip_address_specified = add_error "INVALID_IP_ADDRESS_SPECIFIED" -let invalid_cidr_address_specified = "INVALID_CIDR_ADDRESS_SPECIFIED" +let invalid_cidr_address_specified = add_error "INVALID_CIDR_ADDRESS_SPECIFIED" -let address_violates_locking_constraint = "ADDRESS_VIOLATES_LOCKING_CONSTRAINT" +let address_violates_locking_constraint = + add_error "ADDRESS_VIOLATES_LOCKING_CONSTRAINT" -let pif_has_no_network_configuration = "PIF_HAS_NO_NETWORK_CONFIGURATION" +let pif_has_no_network_configuration = + add_error "PIF_HAS_NO_NETWORK_CONFIGURATION" -let pif_has_no_v6_network_configuration = "PIF_HAS_NO_V6_NETWORK_CONFIGURATION" +let pif_has_no_v6_network_configuration = + add_error "PIF_HAS_NO_V6_NETWORK_CONFIGURATION" -let device_attach_timeout = "DEVICE_ATTACH_TIMEOUT" +let device_attach_timeout = add_error "DEVICE_ATTACH_TIMEOUT" -let device_detach_timeout = "DEVICE_DETACH_TIMEOUT" +let device_detach_timeout = add_error "DEVICE_DETACH_TIMEOUT" -let device_detach_rejected = "DEVICE_DETACH_REJECTED" +let device_detach_rejected = add_error "DEVICE_DETACH_REJECTED" -let network_sriov_insufficient_capacity = "NETWORK_SRIOV_INSUFFICIENT_CAPACITY" +let network_sriov_insufficient_capacity = + add_error "NETWORK_SRIOV_INSUFFICIENT_CAPACITY" -let network_sriov_already_enabled = "NETWORK_SRIOV_ALREADY_ENABLED" +let network_sriov_already_enabled = add_error "NETWORK_SRIOV_ALREADY_ENABLED" -let network_sriov_enable_failed = "NETWORK_SRIOV_ENABLE_FAILED" +let network_sriov_enable_failed = add_error "NETWORK_SRIOV_ENABLE_FAILED" -let network_sriov_disable_failed = "NETWORK_SRIOV_DISABLE_FAILED" +let network_sriov_disable_failed = add_error "NETWORK_SRIOV_DISABLE_FAILED" -let network_incompatible_with_sriov = "NETWORK_INCOMPATIBLE_WITH_SRIOV" +let network_incompatible_with_sriov = + add_error "NETWORK_INCOMPATIBLE_WITH_SRIOV" let network_incompatible_with_vlan_on_bridge = - "NETWORK_INCOMPATIBLE_WITH_VLAN_ON_BRIDGE" + add_error "NETWORK_INCOMPATIBLE_WITH_VLAN_ON_BRIDGE" let network_incompatible_with_vlan_on_sriov = - "NETWORK_INCOMPATIBLE_WITH_VLAN_ON_SRIOV" + add_error "NETWORK_INCOMPATIBLE_WITH_VLAN_ON_SRIOV" -let network_incompatible_with_bond = "NETWORK_INCOMPATIBLE_WITH_BOND" +let network_incompatible_with_bond = add_error "NETWORK_INCOMPATIBLE_WITH_BOND" -let network_incompatible_with_tunnel = "NETWORK_INCOMPATIBLE_WITH_TUNNEL" +let network_incompatible_with_tunnel = + add_error "NETWORK_INCOMPATIBLE_WITH_TUNNEL" -let network_has_incompatible_sriov_pifs = "NETWORK_HAS_INCOMPATIBLE_SRIOV_PIFS" +let network_has_incompatible_sriov_pifs = + add_error "NETWORK_HAS_INCOMPATIBLE_SRIOV_PIFS" let network_has_incompatible_vlan_on_sriov_pifs = - "NETWORK_HAS_INCOMPATIBLE_VLAN_ON_SRIOV_PIFS" + add_error "NETWORK_HAS_INCOMPATIBLE_VLAN_ON_SRIOV_PIFS" -let operation_not_allowed = "OPERATION_NOT_ALLOWED" +let operation_not_allowed = add_error "OPERATION_NOT_ALLOWED" -let operation_blocked = "OPERATION_BLOCKED" +let operation_blocked = add_error "OPERATION_BLOCKED" -let network_already_connected = "NETWORK_ALREADY_CONNECTED" +let network_already_connected = add_error "NETWORK_ALREADY_CONNECTED" -let network_unmanaged = "NETWORK_UNMANAGED" +let network_unmanaged = add_error "NETWORK_UNMANAGED" -let network_incompatible_purposes = "NETWORK_INCOMPATIBLE_PURPOSES" +let network_incompatible_purposes = add_error "NETWORK_INCOMPATIBLE_PURPOSES" -let cannot_destroy_system_network = "CANNOT_DESTROY_SYSTEM_NETWORK" +let cannot_destroy_system_network = add_error "CANNOT_DESTROY_SYSTEM_NETWORK" -let pif_is_physical = "PIF_IS_PHYSICAL" +let pif_is_physical = add_error "PIF_IS_PHYSICAL" -let pif_is_not_physical = "PIF_IS_NOT_PHYSICAL" +let pif_is_not_physical = add_error "PIF_IS_NOT_PHYSICAL" -let pif_is_vlan = "PIF_IS_VLAN" +let pif_is_vlan = add_error "PIF_IS_VLAN" -let pif_is_sriov_logical = "PIF_IS_SRIOV_LOGICAL" +let pif_is_sriov_logical = add_error "PIF_IS_SRIOV_LOGICAL" -let pif_vlan_exists = "PIF_VLAN_EXISTS" +let pif_vlan_exists = add_error "PIF_VLAN_EXISTS" -let pif_vlan_still_exists = "PIF_VLAN_STILL_EXISTS" +let pif_vlan_still_exists = add_error "PIF_VLAN_STILL_EXISTS" -let vlan_in_use = "VLAN_IN_USE" +let vlan_in_use = add_error "VLAN_IN_USE" -let pif_device_not_found = "PIF_DEVICE_NOT_FOUND" +let pif_device_not_found = add_error "PIF_DEVICE_NOT_FOUND" -let pif_already_bonded = "PIF_ALREADY_BONDED" +let pif_already_bonded = add_error "PIF_ALREADY_BONDED" -let pif_cannot_bond_cross_host = "PIF_CANNOT_BOND_CROSS_HOST" +let pif_cannot_bond_cross_host = add_error "PIF_CANNOT_BOND_CROSS_HOST" -let pif_bond_needs_more_members = "PIF_BOND_NEEDS_MORE_MEMBERS" +let pif_bond_needs_more_members = add_error "PIF_BOND_NEEDS_MORE_MEMBERS" -let pif_bond_more_than_one_ip = "PIF_BOND_MORE_THAN_ONE_IP" +let pif_bond_more_than_one_ip = add_error "PIF_BOND_MORE_THAN_ONE_IP" -let pif_configuration_error = "PIF_CONFIGURATION_ERROR" +let pif_configuration_error = add_error "PIF_CONFIGURATION_ERROR" -let pif_is_management_iface = "PIF_IS_MANAGEMENT_INTERFACE" +let pif_is_management_iface = add_error "PIF_IS_MANAGEMENT_INTERFACE" let pif_incompatible_primary_address_type = - "PIF_INCOMPATIBLE_PRIMARY_ADDRESS_TYPE" + add_error "PIF_INCOMPATIBLE_PRIMARY_ADDRESS_TYPE" -let required_pif_is_unplugged = "REQUIRED_PIF_IS_UNPLUGGED" +let required_pif_is_unplugged = add_error "REQUIRED_PIF_IS_UNPLUGGED" -let pif_not_present = "PIF_NOT_PRESENT" +let pif_not_present = add_error "PIF_NOT_PRESENT" -let pif_does_not_allow_unplug = "PIF_DOES_NOT_ALLOW_UNPLUG" +let pif_does_not_allow_unplug = add_error "PIF_DOES_NOT_ALLOW_UNPLUG" -let pif_allows_unplug = "PIF_ALLOWS_UNPLUG" +let pif_allows_unplug = add_error "PIF_ALLOWS_UNPLUG" -let pif_has_fcoe_sr_in_use = "PIF_HAS_FCOE_SR_IN_USE" +let pif_has_fcoe_sr_in_use = add_error "PIF_HAS_FCOE_SR_IN_USE" -let pif_unmanaged = "PIF_UNMANAGED" +let pif_unmanaged = add_error "PIF_UNMANAGED" -let pif_is_not_sriov_capable = "PIF_IS_NOT_SRIOV_CAPABLE" +let pif_is_not_sriov_capable = add_error "PIF_IS_NOT_SRIOV_CAPABLE" -let pif_sriov_still_exists = "PIF_SRIOV_STILL_EXISTS" +let pif_sriov_still_exists = add_error "PIF_SRIOV_STILL_EXISTS" -let cannot_plug_bond_slave = "CANNOT_PLUG_BOND_SLAVE" +let cannot_plug_bond_slave = add_error "CANNOT_PLUG_BOND_SLAVE" -let cannot_add_vlan_to_bond_slave = "CANNOT_ADD_VLAN_TO_BOND_SLAVE" +let cannot_add_vlan_to_bond_slave = add_error "CANNOT_ADD_VLAN_TO_BOND_SLAVE" -let cannot_add_tunnel_to_bond_slave = "CANNOT_ADD_TUNNEL_TO_BOND_SLAVE" +let cannot_add_tunnel_to_bond_slave = + add_error "CANNOT_ADD_TUNNEL_TO_BOND_SLAVE" -let cannot_add_tunnel_to_sriov_logical = "CANNOT_ADD_TUNNEL_TO_SRIOV_LOGICAL" +let cannot_add_tunnel_to_sriov_logical = + add_error "CANNOT_ADD_TUNNEL_TO_SRIOV_LOGICAL" let cannot_add_tunnel_to_vlan_on_sriov_logical = - "CANNOT_ADD_TUNNEL_TO_VLAN_ON_SRIOV_LOGICAL" + add_error "CANNOT_ADD_TUNNEL_TO_VLAN_ON_SRIOV_LOGICAL" -let cannot_change_pif_properties = "CANNOT_CHANGE_PIF_PROPERTIES" +let cannot_change_pif_properties = add_error "CANNOT_CHANGE_PIF_PROPERTIES" -let cannot_forget_sriov_logical = "CANNOT_FORGET_SRIOV_LOGICAL" +let cannot_forget_sriov_logical = add_error "CANNOT_FORGET_SRIOV_LOGICAL" -let incompatible_pif_properties = "INCOMPATIBLE_PIF_PROPERTIES" +let incompatible_pif_properties = add_error "INCOMPATIBLE_PIF_PROPERTIES" -let slave_requires_management_iface = "SLAVE_REQUIRES_MANAGEMENT_INTERFACE" +let slave_requires_management_iface = + add_error "SLAVE_REQUIRES_MANAGEMENT_INTERFACE" -let vif_in_use = "VIF_IN_USE" +let vif_in_use = add_error "VIF_IN_USE" -let cannot_plug_vif = "CANNOT_PLUG_VIF" +let cannot_plug_vif = add_error "CANNOT_PLUG_VIF" -let mac_still_exists = "MAC_STILL_EXISTS" +let mac_still_exists = add_error "MAC_STILL_EXISTS" -let mac_does_not_exist = "MAC_DOES_NOT_EXIST" +let mac_does_not_exist = add_error "MAC_DOES_NOT_EXIST" -let mac_invalid = "MAC_INVALID" +let mac_invalid = add_error "MAC_INVALID" -let duplicate_pif_device_name = "DUPLICATE_PIF_DEVICE_NAME" +let duplicate_pif_device_name = add_error "DUPLICATE_PIF_DEVICE_NAME" let could_not_find_network_interface_with_specified_device_name_and_mac_address = - "COULD_NOT_FIND_NETWORK_INTERFACE_WITH_SPECIFIED_DEVICE_NAME_AND_MAC_ADDRESS" + add_error + "COULD_NOT_FIND_NETWORK_INTERFACE_WITH_SPECIFIED_DEVICE_NAME_AND_MAC_ADDRESS" -let openvswitch_not_active = "OPENVSWITCH_NOT_ACTIVE" +let openvswitch_not_active = add_error "OPENVSWITCH_NOT_ACTIVE" -let transport_pif_not_configured = "TRANSPORT_PIF_NOT_CONFIGURED" +let transport_pif_not_configured = add_error "TRANSPORT_PIF_NOT_CONFIGURED" -let is_tunnel_access_pif = "IS_TUNNEL_ACCESS_PIF" +let is_tunnel_access_pif = add_error "IS_TUNNEL_ACCESS_PIF" -let pif_tunnel_still_exists = "PIF_TUNNEL_STILL_EXISTS" +let pif_tunnel_still_exists = add_error "PIF_TUNNEL_STILL_EXISTS" -let bridge_not_available = "BRIDGE_NOT_AVAILABLE" +let bridge_not_available = add_error "BRIDGE_NOT_AVAILABLE" -let bridge_name_exists = "BRIDGE_NAME_EXISTS" +let bridge_name_exists = add_error "BRIDGE_NAME_EXISTS" -let vlan_tag_invalid = "VLAN_TAG_INVALID" +let vlan_tag_invalid = add_error "VLAN_TAG_INVALID" -let vm_bad_power_state = "VM_BAD_POWER_STATE" +let vm_bad_power_state = add_error "VM_BAD_POWER_STATE" -let vm_is_template = "VM_IS_TEMPLATE" +let vm_is_template = add_error "VM_IS_TEMPLATE" -let vm_is_snapshot = "VM_IS_SNAPSHOT" +let vm_is_snapshot = add_error "VM_IS_SNAPSHOT" -let other_operation_in_progress = "OTHER_OPERATION_IN_PROGRESS" +let other_operation_in_progress = add_error "OTHER_OPERATION_IN_PROGRESS" -let vbd_not_removable_media = "VBD_NOT_REMOVABLE_MEDIA" +let vbd_not_removable_media = add_error "VBD_NOT_REMOVABLE_MEDIA" -let vbd_not_unpluggable = "VBD_NOT_UNPLUGGABLE" +let vbd_not_unpluggable = add_error "VBD_NOT_UNPLUGGABLE" -let vbd_not_empty = "VBD_NOT_EMPTY" +let vbd_not_empty = add_error "VBD_NOT_EMPTY" -let vbd_is_empty = "VBD_IS_EMPTY" +let vbd_is_empty = add_error "VBD_IS_EMPTY" -let vbd_tray_locked = "VBD_TRAY_LOCKED" +let vbd_tray_locked = add_error "VBD_TRAY_LOCKED" -let vbd_missing = "VBD_MISSING" +let vbd_missing = add_error "VBD_MISSING" -let vm_no_empty_cd_vbd = "VM_NO_EMPTY_CD_VBD" +let vm_no_empty_cd_vbd = add_error "VM_NO_EMPTY_CD_VBD" -let vm_snapshot_failed = "VM_SNAPSHOT_FAILED" +let vm_snapshot_failed = add_error "VM_SNAPSHOT_FAILED" -let vm_snapshot_with_quiesce_failed = "VM_SNAPSHOT_WITH_QUIESCE_FAILED" +let vm_snapshot_with_quiesce_failed = + add_error "VM_SNAPSHOT_WITH_QUIESCE_FAILED" -let vm_snapshot_with_quiesce_timeout = "VM_SNAPSHOT_WITH_QUIESCE_TIMEOUT" +let vm_snapshot_with_quiesce_timeout = + add_error "VM_SNAPSHOT_WITH_QUIESCE_TIMEOUT" let vm_snapshot_with_quiesce_plugin_does_not_respond = - "VM_SNAPSHOT_WITH_QUIESCE_PLUGIN_DEOS_NOT_RESPOND" + add_error "VM_SNAPSHOT_WITH_QUIESCE_PLUGIN_DEOS_NOT_RESPOND" let vm_snapshot_with_quiesce_not_supported = - "VM_SNAPSHOT_WITH_QUIESCE_NOT_SUPPORTED" + add_error "VM_SNAPSHOT_WITH_QUIESCE_NOT_SUPPORTED" -let xen_vss_req_error_init_failed = "XEN_VSS_REQ_ERROR_INIT_FAILED" +let xen_vss_req_error_init_failed = add_error "XEN_VSS_REQ_ERROR_INIT_FAILED" -let xen_vss_req_error_prov_not_loaded = "XEN_VSS_REQ_ERROR_PROV_NOT_LOADED" +let xen_vss_req_error_prov_not_loaded = + add_error "XEN_VSS_REQ_ERROR_PROV_NOT_LOADED" let xen_vss_req_error_no_volumes_supported = - "XEN_VSS_REQ_ERROR_NO_VOLUMES_SUPPORTED" + add_error "XEN_VSS_REQ_ERROR_NO_VOLUMES_SUPPORTED" let xen_vss_req_error_start_snapshot_set_failed = - "XEN_VSS_REQ_ERROR_START_SNAPSHOT_SET_FAILED" + add_error "XEN_VSS_REQ_ERROR_START_SNAPSHOT_SET_FAILED" let xen_vss_req_error_adding_volume_to_snapset_failed = - "XEN_VSS_REQ_ERROR_ADDING_VOLUME_TO_SNAPSET_FAILED" + add_error "XEN_VSS_REQ_ERROR_ADDING_VOLUME_TO_SNAPSET_FAILED" -let xen_vss_req_error_preparing_writers = "XEN_VSS_REQ_ERROR_PREPARING_WRITERS" +let xen_vss_req_error_preparing_writers = + add_error "XEN_VSS_REQ_ERROR_PREPARING_WRITERS" -let xen_vss_req_error_creating_snapshot = "XEN_VSS_REQ_ERROR_CREATING_SNAPSHOT" +let xen_vss_req_error_creating_snapshot = + add_error "XEN_VSS_REQ_ERROR_CREATING_SNAPSHOT" let xen_vss_req_error_creating_snapshot_xml_string = - "XEN_VSS_REQ_ERROR_CREATING_SNAPSHOT_XML_STRING" + add_error "XEN_VSS_REQ_ERROR_CREATING_SNAPSHOT_XML_STRING" -let vm_revert_failed = "VM_REVERT_FAILED" +let vm_revert_failed = add_error "VM_REVERT_FAILED" -let vm_checkpoint_suspend_failed = "VM_CHECKPOINT_SUSPEND_FAILED" +let vm_checkpoint_suspend_failed = add_error "VM_CHECKPOINT_SUSPEND_FAILED" -let vm_checkpoint_resume_failed = "VM_CHECKPOINT_RESUME_FAILED" +let vm_checkpoint_resume_failed = add_error "VM_CHECKPOINT_RESUME_FAILED" -let vm_unsafe_boot = "VM_UNSAFE_BOOT" +let vm_unsafe_boot = add_error "VM_UNSAFE_BOOT" -let vm_requires_sr = "VM_REQUIRES_SR" +let vm_requires_sr = add_error "VM_REQUIRES_SR" -let vm_requires_vdi = "VM_REQUIRES_VDI" +let vm_requires_vdi = add_error "VM_REQUIRES_VDI" -let vm_requires_net = "VM_REQUIRES_NETWORK" +let vm_requires_net = add_error "VM_REQUIRES_NETWORK" -let vm_requires_gpu = "VM_REQUIRES_GPU" +let vm_requires_gpu = add_error "VM_REQUIRES_GPU" -let vm_requires_vgpu = "VM_REQUIRES_VGPU" +let vm_requires_vgpu = add_error "VM_REQUIRES_VGPU" -let vm_requires_iommu = "VM_REQUIRES_IOMMU" +let vm_requires_iommu = add_error "VM_REQUIRES_IOMMU" let vm_host_incompatible_version_migrate = - "VM_HOST_INCOMPATIBLE_VERSION_MIGRATE" + add_error "VM_HOST_INCOMPATIBLE_VERSION_MIGRATE" -let vm_host_incompatible_version = "VM_HOST_INCOMPATIBLE_VERSION" +let vm_host_incompatible_version = add_error "VM_HOST_INCOMPATIBLE_VERSION" let vm_host_incompatible_virtual_hardware_platform_version = - "VM_HOST_INCOMPATIBLE_VIRTUAL_HARDWARE_PLATFORM_VERSION" + add_error "VM_HOST_INCOMPATIBLE_VIRTUAL_HARDWARE_PLATFORM_VERSION" -let vm_has_pci_attached = "VM_HAS_PCI_ATTACHED" +let vm_has_pci_attached = add_error "VM_HAS_PCI_ATTACHED" -let vm_has_vgpu = "VM_HAS_VGPU" +let vm_has_vgpu = add_error "VM_HAS_VGPU" -let vm_has_sriov_vif = "VM_HAS_SRIOV_VIF" +let vm_has_sriov_vif = add_error "VM_HAS_SRIOV_VIF" -let vm_has_no_suspend_vdi = "VM_HAS_NO_SUSPEND_VDI" +let vm_has_no_suspend_vdi = add_error "VM_HAS_NO_SUSPEND_VDI" -let host_cannot_attach_network = "HOST_CANNOT_ATTACH_NETWORK" +let host_cannot_attach_network = add_error "HOST_CANNOT_ATTACH_NETWORK" -let vm_no_suspend_sr = "VM_NO_SUSPEND_SR" +let vm_no_suspend_sr = add_error "VM_NO_SUSPEND_SR" -let vm_no_crashdump_sr = "VM_NO_CRASHDUMP_SR" +let vm_no_crashdump_sr = add_error "VM_NO_CRASHDUMP_SR" -let vm_migrate_failed = "VM_MIGRATE_FAILED" +let vm_migrate_failed = add_error "VM_MIGRATE_FAILED" let vm_migrate_contact_remote_service_failed = - "VM_MIGRATE_CONTACT_REMOTE_SERVICE_FAILED" + add_error "VM_MIGRATE_CONTACT_REMOTE_SERVICE_FAILED" -let vm_missing_pv_drivers = "VM_MISSING_PV_DRIVERS" +let vm_missing_pv_drivers = add_error "VM_MISSING_PV_DRIVERS" -let vm_failed_shutdown_ack = "VM_FAILED_SHUTDOWN_ACKNOWLEDGMENT" +let vm_failed_shutdown_ack = add_error "VM_FAILED_SHUTDOWN_ACKNOWLEDGMENT" -let vm_failed_suspend_ack = "VM_FAILED_SUSPEND_ACKNOWLEDGMENT" +let vm_failed_suspend_ack = add_error "VM_FAILED_SUSPEND_ACKNOWLEDGMENT" -let vm_old_pv_drivers = "VM_OLD_PV_DRIVERS" +let vm_old_pv_drivers = add_error "VM_OLD_PV_DRIVERS" -let vm_lacks_feature = "VM_LACKS_FEATURE" +let vm_lacks_feature = add_error "VM_LACKS_FEATURE" -let vm_lacks_feature_shutdown = "VM_LACKS_FEATURE_SHUTDOWN" +let vm_lacks_feature_shutdown = add_error "VM_LACKS_FEATURE_SHUTDOWN" -let vm_lacks_feature_suspend = "VM_LACKS_FEATURE_SUSPEND" +let vm_lacks_feature_suspend = add_error "VM_LACKS_FEATURE_SUSPEND" -let vm_lacks_feature_vcpu_hotplug = "VM_LACKS_FEATURE_VCPU_HOTPLUG" +let vm_lacks_feature_vcpu_hotplug = add_error "VM_LACKS_FEATURE_VCPU_HOTPLUG" -let vm_lacks_feature_static_ip_setting = "VM_LACKS_FEATURE_STATIC_IP_SETTING" +let vm_lacks_feature_static_ip_setting = + add_error "VM_LACKS_FEATURE_STATIC_IP_SETTING" -let vm_cannot_delete_default_template = "VM_CANNOT_DELETE_DEFAULT_TEMPLATE" +let vm_cannot_delete_default_template = + add_error "VM_CANNOT_DELETE_DEFAULT_TEMPLATE" -let vm_memory_size_too_low = "VM_MEMORY_SIZE_TOO_LOW" +let vm_memory_size_too_low = add_error "VM_MEMORY_SIZE_TOO_LOW" -let vm_memory_target_wait_timeout = "VM_MEMORY_TARGET_WAIT_TIMEOUT" +let vm_memory_target_wait_timeout = add_error "VM_MEMORY_TARGET_WAIT_TIMEOUT" -let vm_shutdown_timeout = "VM_SHUTDOWN_TIMEOUT" +let vm_shutdown_timeout = add_error "VM_SHUTDOWN_TIMEOUT" -let vm_suspend_timeout = "VM_SUSPEND_TIMEOUT" +let vm_suspend_timeout = add_error "VM_SUSPEND_TIMEOUT" -let vm_duplicate_vbd_device = "VM_DUPLICATE_VBD_DEVICE" +let vm_duplicate_vbd_device = add_error "VM_DUPLICATE_VBD_DEVICE" -let illegal_vbd_device = "ILLEGAL_VBD_DEVICE" +let illegal_vbd_device = add_error "ILLEGAL_VBD_DEVICE" -let vm_not_resident_here = "VM_NOT_RESIDENT_HERE" +let vm_not_resident_here = add_error "VM_NOT_RESIDENT_HERE" -let vm_crashed = "VM_CRASHED" +let vm_crashed = add_error "VM_CRASHED" -let vm_rebooted = "VM_REBOOTED" +let vm_rebooted = add_error "VM_REBOOTED" -let vm_halted = "VM_HALTED" +let vm_halted = add_error "VM_HALTED" let vm_attached_to_more_than_one_vdi_with_timeoffset_marked_as_reset_on_boot = - "VM_ATTACHED_TO_MORE_THAN_ONE_VDI_WITH_TIMEOFFSET_MARKED_AS_RESET_ON_BOOT" + add_error + "VM_ATTACHED_TO_MORE_THAN_ONE_VDI_WITH_TIMEOFFSET_MARKED_AS_RESET_ON_BOOT" -let vms_failed_to_cooperate = "VMS_FAILED_TO_COOPERATE" +let vms_failed_to_cooperate = add_error "VMS_FAILED_TO_COOPERATE" -let vm_pv_drivers_in_use = "VM_PV_DRIVERS_IN_USE" +let vm_pv_drivers_in_use = add_error "VM_PV_DRIVERS_IN_USE" -let domain_exists = "DOMAIN_EXISTS" +let domain_exists = add_error "DOMAIN_EXISTS" -let cannot_reset_control_domain = "CANNOT_RESET_CONTROL_DOMAIN" +let cannot_reset_control_domain = add_error "CANNOT_RESET_CONTROL_DOMAIN" -let not_system_domain = "NOT_SYSTEM_DOMAIN" +let not_system_domain = add_error "NOT_SYSTEM_DOMAIN" -let only_provision_template = "PROVISION_ONLY_ALLOWED_ON_TEMPLATE" +let only_provision_template = add_error "PROVISION_ONLY_ALLOWED_ON_TEMPLATE" -let only_revert_snapshot = "REVERT_ONLY_ALLOWED_ON_SNAPSHOT" +let only_revert_snapshot = add_error "REVERT_ONLY_ALLOWED_ON_SNAPSHOT" -let provision_failed_out_of_space = "PROVISION_FAILED_OUT_OF_SPACE" +let provision_failed_out_of_space = add_error "PROVISION_FAILED_OUT_OF_SPACE" -let bootloader_failed = "BOOTLOADER_FAILED" +let bootloader_failed = add_error "BOOTLOADER_FAILED" -let unknown_bootloader = "UNKNOWN_BOOTLOADER" +let unknown_bootloader = add_error "UNKNOWN_BOOTLOADER" -let failed_to_start_emulator = "FAILED_TO_START_EMULATOR" +let failed_to_start_emulator = add_error "FAILED_TO_START_EMULATOR" -let object_nolonger_exists = "OBJECT_NOLONGER_EXISTS" +let object_nolonger_exists = add_error "OBJECT_NOLONGER_EXISTS" -let sr_attach_failed = "SR_ATTACH_FAILED" +let sr_attach_failed = add_error "SR_ATTACH_FAILED" -let sr_full = "SR_FULL" +let sr_full = add_error "SR_FULL" -let sr_source_space_insufficient = "SR_SOURCE_SPACE_INSUFFICIENT" +let sr_source_space_insufficient = add_error "SR_SOURCE_SPACE_INSUFFICIENT" -let sr_has_pbd = "SR_HAS_PBD" +let sr_has_pbd = add_error "SR_HAS_PBD" -let sr_requires_upgrade = "SR_REQUIRES_UPGRADE" +let sr_requires_upgrade = add_error "SR_REQUIRES_UPGRADE" -let sr_is_cache_sr = "SR_IS_CACHE_SR" +let sr_is_cache_sr = add_error "SR_IS_CACHE_SR" -let vdi_in_use = "VDI_IN_USE" +let vdi_in_use = add_error "VDI_IN_USE" -let vdi_is_sharable = "VDI_IS_SHARABLE" +let vdi_is_sharable = add_error "VDI_IS_SHARABLE" -let vdi_readonly = "VDI_READONLY" +let vdi_readonly = add_error "VDI_READONLY" -let vdi_too_small = "VDI_TOO_SMALL" +let vdi_too_small = add_error "VDI_TOO_SMALL" -let vdi_too_large = "VDI_TOO_LARGE" +let vdi_too_large = add_error "VDI_TOO_LARGE" -let vdi_not_sparse = "VDI_NOT_SPARSE" +let vdi_not_sparse = add_error "VDI_NOT_SPARSE" -let vdi_is_a_physical_device = "VDI_IS_A_PHYSICAL_DEVICE" +let vdi_is_a_physical_device = add_error "VDI_IS_A_PHYSICAL_DEVICE" -let vdi_is_not_iso = "VDI_IS_NOT_ISO" +let vdi_is_not_iso = add_error "VDI_IS_NOT_ISO" -let vbd_cds_must_be_readonly = "VBD_CDS_MUST_BE_READONLY" +let vbd_cds_must_be_readonly = add_error "VBD_CDS_MUST_BE_READONLY" -let vm_requires_vusb = "VM_REQUIRES_VUSB" +let vm_requires_vusb = add_error "VM_REQUIRES_VUSB" (* CA-83260 *) -let disk_vbd_must_be_readwrite_for_hvm = "DISK_VBD_MUST_BE_READWRITE_FOR_HVM" +let disk_vbd_must_be_readwrite_for_hvm = + add_error "DISK_VBD_MUST_BE_READWRITE_FOR_HVM" -let host_cd_drive_empty = "HOST_CD_DRIVE_EMPTY" +let host_cd_drive_empty = add_error "HOST_CD_DRIVE_EMPTY" -let vdi_not_available = "VDI_NOT_AVAILABLE" +let vdi_not_available = add_error "VDI_NOT_AVAILABLE" -let vdi_has_rrds = "VDI_HAS_RRDS" +let vdi_has_rrds = add_error "VDI_HAS_RRDS" -let vdi_location_missing = "VDI_LOCATION_MISSING" +let vdi_location_missing = add_error "VDI_LOCATION_MISSING" -let vdi_content_id_missing = "VDI_CONTENT_ID_MISSING" +let vdi_content_id_missing = add_error "VDI_CONTENT_ID_MISSING" -let vdi_missing = "VDI_MISSING" +let vdi_missing = add_error "VDI_MISSING" -let vdi_incompatible_type = "VDI_INCOMPATIBLE_TYPE" +let vdi_incompatible_type = add_error "VDI_INCOMPATIBLE_TYPE" -let vdi_not_managed = "VDI_NOT_MANAGED" +let vdi_not_managed = add_error "VDI_NOT_MANAGED" -let vdi_io_error = "VDI_IO_ERROR" +let vdi_io_error = add_error "VDI_IO_ERROR" let vdi_on_boot_mode_incompatible_with_operation = - "VDI_ON_BOOT_MODE_INCOMPATIBLE_WITH_OPERATION" + add_error "VDI_ON_BOOT_MODE_INCOMPATIBLE_WITH_OPERATION" -let vdi_not_in_map = "VDI_NOT_IN_MAP" +let vdi_not_in_map = add_error "VDI_NOT_IN_MAP" -let vdi_cbt_enabled = "VDI_CBT_ENABLED" +let vdi_cbt_enabled = add_error "VDI_CBT_ENABLED" -let vdi_no_cbt_metadata = "VDI_NO_CBT_METADATA" +let vdi_no_cbt_metadata = add_error "VDI_NO_CBT_METADATA" -let vdi_is_encrypted = "VDI_IS_ENCRYPTED" +let vdi_is_encrypted = add_error "VDI_IS_ENCRYPTED" -let vif_not_in_map = "VIF_NOT_IN_MAP" +let vif_not_in_map = add_error "VIF_NOT_IN_MAP" -let cannot_create_state_file = "CANNOT_CREATE_STATE_FILE" +let cannot_create_state_file = add_error "CANNOT_CREATE_STATE_FILE" -let operation_partially_failed = "OPERATION_PARTIALLY_FAILED" +let operation_partially_failed = add_error "OPERATION_PARTIALLY_FAILED" -let sr_uuid_exists = "SR_UUID_EXISTS" +let sr_uuid_exists = add_error "SR_UUID_EXISTS" -let sr_no_pbds = "SR_HAS_NO_PBDS" +let sr_no_pbds = add_error "SR_HAS_NO_PBDS" -let sr_has_multiple_pbds = "SR_HAS_MULTIPLE_PBDS" +let sr_has_multiple_pbds = add_error "SR_HAS_MULTIPLE_PBDS" -let sr_backend_failure = "SR_BACKEND_FAILURE" +let sr_backend_failure = add_error "SR_BACKEND_FAILURE" -let sr_unknown_driver = "SR_UNKNOWN_DRIVER" +let sr_unknown_driver = add_error "SR_UNKNOWN_DRIVER" -let sr_vdi_locking_failed = "SR_VDI_LOCKING_FAILED" +let sr_vdi_locking_failed = add_error "SR_VDI_LOCKING_FAILED" -let sr_not_empty = "SR_NOT_EMPTY" +let sr_not_empty = add_error "SR_NOT_EMPTY" -let sr_device_in_use = "SR_DEVICE_IN_USE" +let sr_device_in_use = add_error "SR_DEVICE_IN_USE" -let sr_operation_not_supported = "SR_OPERATION_NOT_SUPPORTED" +let sr_operation_not_supported = add_error "SR_OPERATION_NOT_SUPPORTED" -let sr_not_sharable = "SR_NOT_SHARABLE" +let sr_not_sharable = add_error "SR_NOT_SHARABLE" -let sr_indestructible = "SR_INDESTRUCTIBLE" +let sr_indestructible = add_error "SR_INDESTRUCTIBLE" -let clustered_sr_degraded = "CLUSTERED_SR_DEGRADED" +let clustered_sr_degraded = add_error "CLUSTERED_SR_DEGRADED" -let sm_plugin_communication_failure = "SM_PLUGIN_COMMUNICATION_FAILURE" +let sm_plugin_communication_failure = + add_error "SM_PLUGIN_COMMUNICATION_FAILURE" -let pbd_exists = "PBD_EXISTS" +let pbd_exists = add_error "PBD_EXISTS" -let not_implemented = "NOT_IMPLEMENTED" +let not_implemented = add_error "NOT_IMPLEMENTED" -let device_already_attached = "DEVICE_ALREADY_ATTACHED" +let device_already_attached = add_error "DEVICE_ALREADY_ATTACHED" -let device_already_detached = "DEVICE_ALREADY_DETACHED" +let device_already_detached = add_error "DEVICE_ALREADY_DETACHED" -let device_already_exists = "DEVICE_ALREADY_EXISTS" +let device_already_exists = add_error "DEVICE_ALREADY_EXISTS" -let device_not_attached = "DEVICE_NOT_ATTACHED" +let device_not_attached = add_error "DEVICE_NOT_ATTACHED" -let network_contains_pif = "NETWORK_CONTAINS_PIF" +let network_contains_pif = add_error "NETWORK_CONTAINS_PIF" -let network_contains_vif = "NETWORK_CONTAINS_VIF" +let network_contains_vif = add_error "NETWORK_CONTAINS_VIF" -let gpu_group_contains_vgpu = "GPU_GROUP_CONTAINS_VGPU" +let gpu_group_contains_vgpu = add_error "GPU_GROUP_CONTAINS_VGPU" -let gpu_group_contains_pgpu = "GPU_GROUP_CONTAINS_PGPU" +let gpu_group_contains_pgpu = add_error "GPU_GROUP_CONTAINS_PGPU" -let gpu_group_contains_no_pgpus = "GPU_GROUP_CONTAINS_NO_PGPUS" +let gpu_group_contains_no_pgpus = add_error "GPU_GROUP_CONTAINS_NO_PGPUS" -let invalid_device = "INVALID_DEVICE" +let invalid_device = add_error "INVALID_DEVICE" -let events_lost = "EVENTS_LOST" +let events_lost = add_error "EVENTS_LOST" -let event_subscription_parse_failure = "EVENT_SUBSCRIPTION_PARSE_FAILURE" +let event_subscription_parse_failure = + add_error "EVENT_SUBSCRIPTION_PARSE_FAILURE" -let event_from_token_parse_failure = "EVENT_FROM_TOKEN_PARSE_FAILURE" +let event_from_token_parse_failure = add_error "EVENT_FROM_TOKEN_PARSE_FAILURE" -let session_not_registered = "SESSION_NOT_REGISTERED" +let session_not_registered = add_error "SESSION_NOT_REGISTERED" -let pgpu_in_use_by_vm = "PGPU_IN_USE_BY_VM" +let pgpu_in_use_by_vm = add_error "PGPU_IN_USE_BY_VM" -let pgpu_not_compatible_with_gpu_group = "PGPU_NOT_COMPATIBLE_WITH_GPU_GROUP" +let pgpu_not_compatible_with_gpu_group = + add_error "PGPU_NOT_COMPATIBLE_WITH_GPU_GROUP" -let pgpu_insufficient_capacity_for_vgpu = "PGPU_INSUFFICIENT_CAPACITY_FOR_VGPU" +let pgpu_insufficient_capacity_for_vgpu = + add_error "PGPU_INSUFFICIENT_CAPACITY_FOR_VGPU" -let vgpu_type_not_enabled = "VGPU_TYPE_NOT_ENABLED" +let vgpu_type_not_enabled = add_error "VGPU_TYPE_NOT_ENABLED" -let vgpu_type_not_supported = "VGPU_TYPE_NOT_SUPPORTED" +let vgpu_type_not_supported = add_error "VGPU_TYPE_NOT_SUPPORTED" -let vgpu_type_no_longer_supported = "VGPU_TYPE_NO_LONGER_SUPPORTED" +let vgpu_type_no_longer_supported = add_error "VGPU_TYPE_NO_LONGER_SUPPORTED" let vgpu_type_not_compatible_with_running_type = - "VGPU_TYPE_NOT_COMPATIBLE_WITH_RUNNING_TYPE" + add_error "VGPU_TYPE_NOT_COMPATIBLE_WITH_RUNNING_TYPE" -let vgpu_type_not_compatible = "VGPU_TYPE_NOT_COMPATIBLE" +let vgpu_type_not_compatible = add_error "VGPU_TYPE_NOT_COMPATIBLE" -let vgpu_destination_incompatible = "VGPU_DESTINATION_INCOMPATIBLE" +let vgpu_destination_incompatible = add_error "VGPU_DESTINATION_INCOMPATIBLE" -let vgpu_suspension_not_supported = "VGPU_SUSPENSION_NOT_SUPPORTED" +let vgpu_suspension_not_supported = add_error "VGPU_SUSPENSION_NOT_SUPPORTED" -let vgpu_guest_driver_limit = "VGPU_GUEST_DRIVER_LIMIT" +let vgpu_guest_driver_limit = add_error "VGPU_GUEST_DRIVER_LIMIT" -let nvidia_tools_error = "NVIDIA_TOOLS_ERROR" +let nvidia_tools_error = add_error "NVIDIA_TOOLS_ERROR" -let nvidia_sriov_misconfigured = "NVIDIA_SRIOV_MISCONFIGURED" +let nvidia_sriov_misconfigured = add_error "NVIDIA_SRIOV_MISCONFIGURED" -let vm_pci_bus_full = "VM_PCI_BUS_FULL" +let vm_pci_bus_full = add_error "VM_PCI_BUS_FULL" -let import_error_generic = "IMPORT_ERROR" +let import_error_generic = add_error "IMPORT_ERROR" -let import_error_premature_eof = "IMPORT_ERROR_PREMATURE_EOF" +let import_error_premature_eof = add_error "IMPORT_ERROR_PREMATURE_EOF" -let import_error_some_checksums_failed = "IMPORT_ERROR_SOME_CHECKSUMS_FAILED" +let import_error_some_checksums_failed = + add_error "IMPORT_ERROR_SOME_CHECKSUMS_FAILED" -let import_error_cannot_handle_chunked = "IMPORT_ERROR_CANNOT_HANDLE_CHUNKED" +let import_error_cannot_handle_chunked = + add_error "IMPORT_ERROR_CANNOT_HANDLE_CHUNKED" -let import_error_failed_to_find_object = "IMPORT_ERROR_FAILED_TO_FIND_OBJECT" +let import_error_failed_to_find_object = + add_error "IMPORT_ERROR_FAILED_TO_FIND_OBJECT" let import_error_attached_disks_not_found = - "IMPORT_ERROR_ATTACHED_DISKS_NOT_FOUND" + add_error "IMPORT_ERROR_ATTACHED_DISKS_NOT_FOUND" -let import_error_unexpected_file = "IMPORT_ERROR_UNEXPECTED_FILE" +let import_error_unexpected_file = add_error "IMPORT_ERROR_UNEXPECTED_FILE" -let import_incompatible_version = "IMPORT_INCOMPATIBLE_VERSION" +let import_incompatible_version = add_error "IMPORT_INCOMPATIBLE_VERSION" -let restore_incompatible_version = "RESTORE_INCOMPATIBLE_VERSION" +let restore_incompatible_version = add_error "RESTORE_INCOMPATIBLE_VERSION" -let restore_target_missing_device = "RESTORE_TARGET_MISSING_DEVICE" +let restore_target_missing_device = add_error "RESTORE_TARGET_MISSING_DEVICE" let restore_target_mgmt_if_not_in_backup = - "RESTORE_TARGET_MGMT_IF_NOT_IN_BACKUP" + add_error "RESTORE_TARGET_MGMT_IF_NOT_IN_BACKUP" -let pool_not_in_emergency_mode = "NOT_IN_EMERGENCY_MODE" +let pool_not_in_emergency_mode = add_error "NOT_IN_EMERGENCY_MODE" -let pool_hosts_not_compatible = "HOSTS_NOT_COMPATIBLE" +let pool_hosts_not_compatible = add_error "HOSTS_NOT_COMPATIBLE" -let pool_hosts_not_homogeneous = "HOSTS_NOT_HOMOGENEOUS" +let pool_hosts_not_homogeneous = add_error "HOSTS_NOT_HOMOGENEOUS" let pool_joining_host_cannot_contain_shared_SRs = - "JOINING_HOST_CANNOT_CONTAIN_SHARED_SRS" + add_error "JOINING_HOST_CANNOT_CONTAIN_SHARED_SRS" let pool_joining_host_cannot_have_running_or_suspended_VMs = - "JOINING_HOST_CANNOT_HAVE_RUNNING_OR_SUSPENDED_VMS" + add_error "JOINING_HOST_CANNOT_HAVE_RUNNING_OR_SUSPENDED_VMS" let pool_joining_host_cannot_have_running_VMs = - "JOINING_HOST_CANNOT_HAVE_RUNNING_VMS" + add_error "JOINING_HOST_CANNOT_HAVE_RUNNING_VMS" let pool_joining_host_cannot_have_vms_with_current_operations = - "JOINING_HOST_CANNOT_HAVE_VMS_WITH_CURRENT_OPERATIONS" + add_error "JOINING_HOST_CANNOT_HAVE_VMS_WITH_CURRENT_OPERATIONS" let pool_joining_host_cannot_be_master_of_other_hosts = - "JOINING_HOST_CANNOT_BE_MASTER_OF_OTHER_HOSTS" + add_error "JOINING_HOST_CANNOT_BE_MASTER_OF_OTHER_HOSTS" -let pool_joining_host_connection_failed = "JOINING_HOST_CONNECTION_FAILED" +let pool_joining_host_connection_failed = + add_error "JOINING_HOST_CONNECTION_FAILED" -let pool_joining_host_service_failed = "JOINING_HOST_SERVICE_FAILED" +let pool_joining_host_service_failed = add_error "JOINING_HOST_SERVICE_FAILED" let pool_joining_host_must_have_physical_management_nic = - "POOL_JOINING_HOST_MUST_HAVE_PHYSICAL_MANAGEMENT_NIC" + add_error "POOL_JOINING_HOST_MUST_HAVE_PHYSICAL_MANAGEMENT_NIC" -let pool_joining_external_auth_mismatch = "POOL_JOINING_EXTERNAL_AUTH_MISMATCH" +let pool_joining_external_auth_mismatch = + add_error "POOL_JOINING_EXTERNAL_AUTH_MISMATCH" let pool_joining_host_must_have_same_product_version = - "POOL_JOINING_HOST_MUST_HAVE_SAME_PRODUCT_VERSION" + add_error "POOL_JOINING_HOST_MUST_HAVE_SAME_PRODUCT_VERSION" let pool_joining_host_must_have_same_api_version = - "POOL_JOINING_HOST_MUST_HAVE_SAME_API_VERSION" + add_error "POOL_JOINING_HOST_MUST_HAVE_SAME_API_VERSION" let pool_joining_host_must_have_same_db_schema = - "POOL_JOINING_HOST_MUST_HAVE_SAME_DB_SCHEMA" + add_error "POOL_JOINING_HOST_MUST_HAVE_SAME_DB_SCHEMA" let pool_joining_host_must_only_have_physical_pifs = - "POOL_JOINING_HOST_MUST_ONLY_HAVE_PHYSICAL_PIFS" + add_error "POOL_JOINING_HOST_MUST_ONLY_HAVE_PHYSICAL_PIFS" let pool_joining_host_management_vlan_does_not_match = - "POOL_JOINING_HOST_MANAGEMENT_VLAN_DOES_NOT_MATCH" + add_error "POOL_JOINING_HOST_MANAGEMENT_VLAN_DOES_NOT_MATCH" let pool_joining_host_has_non_management_vlans = - "POOL_JOINING_HOST_HAS_NON_MANAGEMENT_VLANS" + add_error "POOL_JOINING_HOST_HAS_NON_MANAGEMENT_VLANS" -let pool_joining_host_has_bonds = "POOL_JOINING_HOST_HAS_BONDS" +let pool_joining_host_has_bonds = add_error "POOL_JOINING_HOST_HAS_BONDS" -let pool_joining_host_has_tunnels = "POOL_JOINING_HOST_HAS_TUNNELS" +let pool_joining_host_has_tunnels = add_error "POOL_JOINING_HOST_HAS_TUNNELS" let pool_joining_host_has_network_sriovs = - "POOL_JOINING_HOST_HAS_NETWORK_SRIOVS" + add_error "POOL_JOINING_HOST_HAS_NETWORK_SRIOVS" let pool_joining_host_tls_verification_mismatch = - "POOL_JOINING_HOST_TLS_VERIFICATION_MISMATCH" + add_error "POOL_JOINING_HOST_TLS_VERIFICATION_MISMATCH" let pool_joining_host_ca_certificates_conflict = - "POOL_JOINING_HOST_CA_CERTIFICATES_CONFLICT" + add_error "POOL_JOINING_HOST_CA_CERTIFICATES_CONFLICT" (*workload balancing*) -let wlb_not_initialized = "WLB_NOT_INITIALIZED" +let wlb_not_initialized = add_error "WLB_NOT_INITIALIZED" -let wlb_disabled = "WLB_DISABLED" +let wlb_disabled = add_error "WLB_DISABLED" -let wlb_connection_refused = "WLB_CONNECTION_REFUSED" +let wlb_connection_refused = add_error "WLB_CONNECTION_REFUSED" -let wlb_unknown_host = "WLB_UNKNOWN_HOST" +let wlb_unknown_host = add_error "WLB_UNKNOWN_HOST" -let wlb_timeout = "WLB_TIMEOUT" +let wlb_timeout = add_error "WLB_TIMEOUT" -let wlb_authentication_failed = "WLB_AUTHENTICATION_FAILED" +let wlb_authentication_failed = add_error "WLB_AUTHENTICATION_FAILED" -let wlb_malformed_request = "WLB_MALFORMED_REQUEST" +let wlb_malformed_request = add_error "WLB_MALFORMED_REQUEST" -let wlb_malformed_response = "WLB_MALFORMED_RESPONSE" +let wlb_malformed_response = add_error "WLB_MALFORMED_RESPONSE" -let wlb_xenserver_connection_refused = "WLB_XENSERVER_CONNECTION_REFUSED" +let wlb_xenserver_connection_refused = + add_error "WLB_XENSERVER_CONNECTION_REFUSED" -let wlb_xenserver_unknown_host = "WLB_XENSERVER_UNKNOWN_HOST" +let wlb_xenserver_unknown_host = add_error "WLB_XENSERVER_UNKNOWN_HOST" -let wlb_xenserver_timeout = "WLB_XENSERVER_TIMEOUT" +let wlb_xenserver_timeout = add_error "WLB_XENSERVER_TIMEOUT" -let wlb_xenserver_authentication_failed = "WLB_XENSERVER_AUTHENTICATION_FAILED" +let wlb_xenserver_authentication_failed = + add_error "WLB_XENSERVER_AUTHENTICATION_FAILED" -let wlb_xenserver_malformed_response = "WLB_XENSERVER_MALFORMED_RESPONSE" +let wlb_xenserver_malformed_response = + add_error "WLB_XENSERVER_MALFORMED_RESPONSE" -let wlb_internal_error = "WLB_INTERNAL_ERROR" +let wlb_internal_error = add_error "WLB_INTERNAL_ERROR" -let wlb_url_invalid = "WLB_URL_INVALID" +let wlb_url_invalid = add_error "WLB_URL_INVALID" -let wlb_connection_reset = "WLB_CONNECTION_RESET" +let wlb_connection_reset = add_error "WLB_CONNECTION_RESET" -let sr_not_shared = "SR_NOT_SHARED" +let sr_not_shared = add_error "SR_NOT_SHARED" -let default_sr_not_found = "DEFAULT_SR_NOT_FOUND" +let default_sr_not_found = add_error "DEFAULT_SR_NOT_FOUND" -let task_cancelled = "TASK_CANCELLED" +let task_cancelled = add_error "TASK_CANCELLED" -let too_many_pending_tasks = "TOO_MANY_PENDING_TASKS" +let too_many_pending_tasks = add_error "TOO_MANY_PENDING_TASKS" -let too_busy = "TOO_BUSY" +let too_busy = add_error "TOO_BUSY" -let out_of_space = "OUT_OF_SPACE" +let out_of_space = add_error "OUT_OF_SPACE" -let invalid_patch = "INVALID_PATCH" +let invalid_patch = add_error "INVALID_PATCH" -let invalid_update = "INVALID_UPDATE" +let invalid_update = add_error "INVALID_UPDATE" -let invalid_patch_with_log = "INVALID_PATCH_WITH_LOG" +let invalid_patch_with_log = add_error "INVALID_PATCH_WITH_LOG" -let patch_already_exists = "PATCH_ALREADY_EXISTS" +let patch_already_exists = add_error "PATCH_ALREADY_EXISTS" -let update_already_exists = "UPDATE_ALREADY_EXISTS" +let update_already_exists = add_error "UPDATE_ALREADY_EXISTS" -let patch_is_applied = "PATCH_IS_APPLIED" +let patch_is_applied = add_error "PATCH_IS_APPLIED" -let update_is_applied = "UPDATE_IS_APPLIED" +let update_is_applied = add_error "UPDATE_IS_APPLIED" -let cannot_find_patch = "CANNOT_FIND_PATCH" +let cannot_find_patch = add_error "CANNOT_FIND_PATCH" -let cannot_find_update = "CANNOT_FIND_UPDATE" +let cannot_find_update = add_error "CANNOT_FIND_UPDATE" -let cannot_fetch_patch = "CANNOT_FETCH_PATCH" +let cannot_fetch_patch = add_error "CANNOT_FETCH_PATCH" -let patch_already_applied = "PATCH_ALREADY_APPLIED" +let patch_already_applied = add_error "PATCH_ALREADY_APPLIED" -let update_already_applied = "UPDATE_ALREADY_APPLIED" +let update_already_applied = add_error "UPDATE_ALREADY_APPLIED" -let update_already_applied_in_pool = "UPDATE_ALREADY_APPLIED_IN_POOL" +let update_already_applied_in_pool = add_error "UPDATE_ALREADY_APPLIED_IN_POOL" -let update_pool_apply_failed = "UPDATE_POOL_APPLY_FAILED" +let update_pool_apply_failed = add_error "UPDATE_POOL_APPLY_FAILED" let could_not_update_igmp_snooping_everywhere = - "COULD_NOT_UPDATE_IGMP_SNOOPING_EVERYWHERE" + add_error "COULD_NOT_UPDATE_IGMP_SNOOPING_EVERYWHERE" -let update_apply_failed = "UPDATE_APPLY_FAILED" +let update_apply_failed = add_error "UPDATE_APPLY_FAILED" let update_precheck_failed_unknown_error = - "UPDATE_PRECHECK_FAILED_UNKNOWN_ERROR" + add_error "UPDATE_PRECHECK_FAILED_UNKNOWN_ERROR" let update_precheck_failed_prerequisite_missing = - "UPDATE_PRECHECK_FAILED_PREREQUISITE_MISSING" + add_error "UPDATE_PRECHECK_FAILED_PREREQUISITE_MISSING" let update_precheck_failed_conflict_present = - "UPDATE_PRECHECK_FAILED_CONFLICT_PRESENT" + add_error "UPDATE_PRECHECK_FAILED_CONFLICT_PRESENT" let update_precheck_failed_wrong_server_version = - "UPDATE_PRECHECK_FAILED_WRONG_SERVER_VERSION" + add_error "UPDATE_PRECHECK_FAILED_WRONG_SERVER_VERSION" let update_precheck_failed_gpgkey_not_imported = - "UPDATE_PRECHECK_FAILED_GPGKEY_NOT_IMPORTED" + add_error "UPDATE_PRECHECK_FAILED_GPGKEY_NOT_IMPORTED" -let patch_precheck_failed_unknown_error = "PATCH_PRECHECK_FAILED_UNKNOWN_ERROR" +let patch_precheck_failed_unknown_error = + add_error "PATCH_PRECHECK_FAILED_UNKNOWN_ERROR" let patch_precheck_failed_prerequisite_missing = - "PATCH_PRECHECK_FAILED_PREREQUISITE_MISSING" + add_error "PATCH_PRECHECK_FAILED_PREREQUISITE_MISSING" let patch_precheck_failed_wrong_server_version = - "PATCH_PRECHECK_FAILED_WRONG_SERVER_VERSION" + add_error "PATCH_PRECHECK_FAILED_WRONG_SERVER_VERSION" let patch_precheck_failed_wrong_server_build = - "PATCH_PRECHECK_FAILED_WRONG_SERVER_BUILD" + add_error "PATCH_PRECHECK_FAILED_WRONG_SERVER_BUILD" -let patch_precheck_failed_vm_running = "PATCH_PRECHECK_FAILED_VM_RUNNING" +let patch_precheck_failed_vm_running = + add_error "PATCH_PRECHECK_FAILED_VM_RUNNING" -let patch_precheck_failed_out_of_space = "PATCH_PRECHECK_FAILED_OUT_OF_SPACE" +let patch_precheck_failed_out_of_space = + add_error "PATCH_PRECHECK_FAILED_OUT_OF_SPACE" -let update_precheck_failed_out_of_space = "UPDATE_PRECHECK_FAILED_OUT_OF_SPACE" +let update_precheck_failed_out_of_space = + add_error "UPDATE_PRECHECK_FAILED_OUT_OF_SPACE" -let patch_precheck_tools_iso_mounted = "PATCH_PRECHECK_FAILED_ISO_MOUNTED" +let patch_precheck_tools_iso_mounted = + add_error "PATCH_PRECHECK_FAILED_ISO_MOUNTED" -let patch_apply_failed = "PATCH_APPLY_FAILED" +let patch_apply_failed = add_error "PATCH_APPLY_FAILED" let patch_apply_failed_backup_files_exist = - "PATCH_APPLY_FAILED_BACKUP_FILES_EXIST" + add_error "PATCH_APPLY_FAILED_BACKUP_FILES_EXIST" -let cannot_find_oem_backup_partition = "CANNOT_FIND_OEM_BACKUP_PARTITION" +let cannot_find_oem_backup_partition = + add_error "CANNOT_FIND_OEM_BACKUP_PARTITION" -let only_allowed_on_oem_edition = "ONLY_ALLOWED_ON_OEM_EDITION" +let only_allowed_on_oem_edition = add_error "ONLY_ALLOWED_ON_OEM_EDITION" -let not_allowed_on_oem_edition = "NOT_ALLOWED_ON_OEM_EDITION" +let not_allowed_on_oem_edition = add_error "NOT_ALLOWED_ON_OEM_EDITION" -let cannot_find_state_partition = "CANNOT_FIND_STATE_PARTITION" +let cannot_find_state_partition = add_error "CANNOT_FIND_STATE_PARTITION" -let backup_script_failed = "BACKUP_SCRIPT_FAILED" +let backup_script_failed = add_error "BACKUP_SCRIPT_FAILED" -let restore_script_failed = "RESTORE_SCRIPT_FAILED" +let restore_script_failed = add_error "RESTORE_SCRIPT_FAILED" -let license_expired = "LICENSE_EXPIRED" +let license_expired = add_error "LICENSE_EXPIRED" -let license_restriction = "LICENCE_RESTRICTION" +let license_restriction = add_error "LICENCE_RESTRICTION" -let license_does_not_support_pooling = "LICENSE_DOES_NOT_SUPPORT_POOLING" +let license_does_not_support_pooling = + add_error "LICENSE_DOES_NOT_SUPPORT_POOLING" -let license_host_pool_mismatch = "LICENSE_HOST_POOL_MISMATCH" +let license_host_pool_mismatch = add_error "LICENSE_HOST_POOL_MISMATCH" -let license_processing_error = "LICENSE_PROCESSING_ERROR" +let license_processing_error = add_error "LICENSE_PROCESSING_ERROR" -let license_cannot_downgrade_in_pool = "LICENSE_CANNOT_DOWNGRADE_WHILE_IN_POOL" +let license_cannot_downgrade_in_pool = + add_error "LICENSE_CANNOT_DOWNGRADE_WHILE_IN_POOL" -let license_does_not_support_xha = "LICENSE_DOES_NOT_SUPPORT_XHA" +let license_does_not_support_xha = add_error "LICENSE_DOES_NOT_SUPPORT_XHA" -let v6d_failure = "V6D_FAILURE" +let v6d_failure = add_error "V6D_FAILURE" -let invalid_edition = "INVALID_EDITION" +let invalid_edition = add_error "INVALID_EDITION" -let missing_connection_details = "MISSING_CONNECTION_DETAILS" +let missing_connection_details = add_error "MISSING_CONNECTION_DETAILS" -let license_checkout_error = "LICENSE_CHECKOUT_ERROR" +let license_checkout_error = add_error "LICENSE_CHECKOUT_ERROR" -let license_file_deprecated = "LICENSE_FILE_DEPRECATED" +let license_file_deprecated = add_error "LICENSE_FILE_DEPRECATED" -let activation_while_not_free = "ACTIVATION_WHILE_NOT_FREE" +let activation_while_not_free = add_error "ACTIVATION_WHILE_NOT_FREE" -let feature_restricted = "FEATURE_RESTRICTED" +let feature_restricted = add_error "FEATURE_RESTRICTED" -let xmlrpc_unmarshal_failure = "XMLRPC_UNMARSHAL_FAILURE" +let xmlrpc_unmarshal_failure = add_error "XMLRPC_UNMARSHAL_FAILURE" -let duplicate_vm = "DUPLICATE_VM" +let duplicate_vm = add_error "DUPLICATE_VM" -let duplicate_mac_seed = "DUPLICATE_MAC_SEED" +let duplicate_mac_seed = add_error "DUPLICATE_MAC_SEED" -let client_error = "CLIENT_ERROR" +let client_error = add_error "CLIENT_ERROR" -let ballooning_disabled = "BALLOONING_DISABLED" +let ballooning_disabled = add_error "BALLOONING_DISABLED" -let ballooning_timeout_before_migration = "BALLOONING_TIMEOUT_BEFORE_MIGRATION" +let ballooning_timeout_before_migration = + add_error "BALLOONING_TIMEOUT_BEFORE_MIGRATION" -let ha_host_is_armed = "HA_HOST_IS_ARMED" +let ha_host_is_armed = add_error "HA_HOST_IS_ARMED" -let ha_is_enabled = "HA_IS_ENABLED" +let ha_is_enabled = add_error "HA_IS_ENABLED" -let ha_not_enabled = "HA_NOT_ENABLED" +let ha_not_enabled = add_error "HA_NOT_ENABLED" -let ha_enable_in_progress = "HA_ENABLE_IN_PROGRESS" +let ha_enable_in_progress = add_error "HA_ENABLE_IN_PROGRESS" -let ha_disable_in_progress = "HA_DISABLE_IN_PROGRESS" +let ha_disable_in_progress = add_error "HA_DISABLE_IN_PROGRESS" -let ha_not_installed = "HA_NOT_INSTALLED" +let ha_not_installed = add_error "HA_NOT_INSTALLED" -let ha_host_cannot_see_peers = "HA_HOST_CANNOT_SEE_PEERS" +let ha_host_cannot_see_peers = add_error "HA_HOST_CANNOT_SEE_PEERS" -let ha_too_few_hosts = "HA_TOO_FEW_HOSTS" +let ha_too_few_hosts = add_error "HA_TOO_FEW_HOSTS" -let ha_should_be_fenced = "HA_SHOULD_BE_FENCED" +let ha_should_be_fenced = add_error "HA_SHOULD_BE_FENCED" -let ha_abort_new_master = "HA_ABORT_NEW_MASTER" +let ha_abort_new_master = add_error "HA_ABORT_NEW_MASTER" -let ha_no_plan = "HA_NO_PLAN" +let ha_no_plan = add_error "HA_NO_PLAN" -let ha_lost_statefile = "HA_LOST_STATEFILE" +let ha_lost_statefile = add_error "HA_LOST_STATEFILE" let ha_pool_is_enabled_but_host_is_disabled = - "HA_POOL_IS_ENABLED_BUT_HOST_IS_DISABLED" + add_error "HA_POOL_IS_ENABLED_BUT_HOST_IS_DISABLED" -let ha_heartbeat_daemon_startup_failed = "HA_HEARTBEAT_DAEMON_STARTUP_FAILED" +let ha_heartbeat_daemon_startup_failed = + add_error "HA_HEARTBEAT_DAEMON_STARTUP_FAILED" -let ha_host_cannot_access_statefile = "HA_HOST_CANNOT_ACCESS_STATEFILE" +let ha_host_cannot_access_statefile = + add_error "HA_HOST_CANNOT_ACCESS_STATEFILE" -let ha_failed_to_form_liveset = "HA_FAILED_TO_FORM_LIVESET" +let ha_failed_to_form_liveset = add_error "HA_FAILED_TO_FORM_LIVESET" let ha_cannot_change_bond_status_of_mgmt_iface = - "HA_CANNOT_CHANGE_BOND_STATUS_OF_MGMT_IFACE" + add_error "HA_CANNOT_CHANGE_BOND_STATUS_OF_MGMT_IFACE" (* CA-16480: prevent configuration errors which nullify xHA goodness *) let ha_constraint_violation_sr_not_shared = - "HA_CONSTRAINT_VIOLATION_SR_NOT_SHARED" + add_error "HA_CONSTRAINT_VIOLATION_SR_NOT_SHARED" let ha_constraint_violation_network_not_shared = - "HA_CONSTRAINT_VIOLATION_NETWORK_NOT_SHARED" + add_error "HA_CONSTRAINT_VIOLATION_NETWORK_NOT_SHARED" let ha_operation_would_break_failover_plan = - "HA_OPERATION_WOULD_BREAK_FAILOVER_PLAN" + add_error "HA_OPERATION_WOULD_BREAK_FAILOVER_PLAN" -let incompatible_statefile_sr = "INCOMPATIBLE_STATEFILE_SR" +let incompatible_statefile_sr = add_error "INCOMPATIBLE_STATEFILE_SR" -let incompatible_cluster_stack_active = "INCOMPATIBLE_CLUSTER_STACK_ACTIVE" +let incompatible_cluster_stack_active = + add_error "INCOMPATIBLE_CLUSTER_STACK_ACTIVE" -let cannot_evacuate_host = "CANNOT_EVACUATE_HOST" +let cannot_evacuate_host = add_error "CANNOT_EVACUATE_HOST" -let host_evacuate_in_progress = "HOST_EVACUATE_IN_PROGRESS" +let host_evacuate_in_progress = add_error "HOST_EVACUATE_IN_PROGRESS" -let system_status_retrieval_failed = "SYSTEM_STATUS_RETRIEVAL_FAILED" +let system_status_retrieval_failed = add_error "SYSTEM_STATUS_RETRIEVAL_FAILED" -let system_status_must_use_tar_on_oem = "SYSTEM_STATUS_MUST_USE_TAR_ON_OEM" +let system_status_must_use_tar_on_oem = + add_error "SYSTEM_STATUS_MUST_USE_TAR_ON_OEM" -let xapi_hook_failed = "XAPI_HOOK_FAILED" +let xapi_hook_failed = add_error "XAPI_HOOK_FAILED" -let no_local_storage = "NO_LOCAL_STORAGE" +let no_local_storage = add_error "NO_LOCAL_STORAGE" -let xenapi_missing_plugin = "XENAPI_MISSING_PLUGIN" +let xenapi_missing_plugin = add_error "XENAPI_MISSING_PLUGIN" -let xenapi_plugin_failure = "XENAPI_PLUGIN_FAILURE" +let xenapi_plugin_failure = add_error "XENAPI_PLUGIN_FAILURE" -let sr_attached = "SR_ATTACHED" +let sr_attached = add_error "SR_ATTACHED" -let sr_not_attached = "SR_NOT_ATTACHED" +let sr_not_attached = add_error "SR_NOT_ATTACHED" -let domain_builder_error = "DOMAIN_BUILDER_ERROR" +let domain_builder_error = add_error "DOMAIN_BUILDER_ERROR" -let auth_already_enabled = "AUTH_ALREADY_ENABLED" +let auth_already_enabled = add_error "AUTH_ALREADY_ENABLED" -let auth_unknown_type = "AUTH_UNKNOWN_TYPE" +let auth_unknown_type = add_error "AUTH_UNKNOWN_TYPE" -let auth_is_disabled = "AUTH_IS_DISABLED" +let auth_is_disabled = add_error "AUTH_IS_DISABLED" let auth_suffix_wrong_credentials = "_WRONG_CREDENTIALS" @@ -969,333 +1027,351 @@ let auth_suffix_invalid_ou = "_INVALID_OU" let auth_suffix_invalid_account = "_INVALID_ACCOUNT" -let auth_enable_failed = "AUTH_ENABLE_FAILED" +let auth_enable_failed = add_error "AUTH_ENABLE_FAILED" let auth_enable_failed_wrong_credentials = - auth_enable_failed ^ auth_suffix_wrong_credentials + add_error $ auth_enable_failed ^ auth_suffix_wrong_credentials let auth_enable_failed_permission_denied = - auth_enable_failed ^ auth_suffix_permission_denied + add_error $ auth_enable_failed ^ auth_suffix_permission_denied let auth_enable_failed_domain_lookup_failed = - auth_enable_failed ^ auth_suffix_domain_lookup_failed + add_error $ auth_enable_failed ^ auth_suffix_domain_lookup_failed let auth_enable_failed_unavailable = - auth_enable_failed ^ auth_suffix_unavailable + add_error $ auth_enable_failed ^ auth_suffix_unavailable -let auth_enable_failed_invalid_ou = auth_enable_failed ^ auth_suffix_invalid_ou +let auth_enable_failed_invalid_ou = + add_error $ auth_enable_failed ^ auth_suffix_invalid_ou let auth_enable_failed_invalid_account = - auth_enable_failed ^ auth_suffix_invalid_account + add_error $ auth_enable_failed ^ auth_suffix_invalid_account -let auth_disable_failed = "AUTH_DISABLE_FAILED" +let auth_disable_failed = add_error "AUTH_DISABLE_FAILED" let auth_disable_failed_wrong_credentials = - auth_disable_failed ^ auth_suffix_wrong_credentials + add_error $ auth_disable_failed ^ auth_suffix_wrong_credentials let auth_disable_failed_permission_denied = - auth_disable_failed ^ auth_suffix_permission_denied + add_error $ auth_disable_failed ^ auth_suffix_permission_denied -let pool_auth_already_enabled = "POOL_AUTH_ALREADY_ENABLED" +let pool_auth_already_enabled = add_error "POOL_AUTH_ALREADY_ENABLED" let pool_auth_prefix = "POOL_" -let pool_auth_enable_failed = pool_auth_prefix ^ auth_enable_failed +let pool_auth_enable_failed = add_error $ pool_auth_prefix ^ auth_enable_failed let pool_auth_enable_failed_wrong_credentials = - pool_auth_enable_failed ^ auth_suffix_wrong_credentials + add_error $ pool_auth_enable_failed ^ auth_suffix_wrong_credentials let pool_auth_enable_failed_permission_denied = - pool_auth_enable_failed ^ auth_suffix_permission_denied + add_error $ pool_auth_enable_failed ^ auth_suffix_permission_denied let pool_auth_enable_failed_domain_lookup_failed = - pool_auth_enable_failed ^ auth_suffix_domain_lookup_failed + add_error $ pool_auth_enable_failed ^ auth_suffix_domain_lookup_failed let pool_auth_enable_failed_unavailable = - pool_auth_enable_failed ^ auth_suffix_unavailable + add_error $ pool_auth_enable_failed ^ auth_suffix_unavailable let pool_auth_enable_failed_invalid_ou = - pool_auth_enable_failed ^ auth_suffix_invalid_ou + add_error $ pool_auth_enable_failed ^ auth_suffix_invalid_ou let pool_auth_enable_failed_invalid_account = - pool_auth_enable_failed ^ auth_suffix_invalid_account + add_error $ pool_auth_enable_failed ^ auth_suffix_invalid_account let pool_auth_enable_failed_duplicate_hostname = - pool_auth_enable_failed ^ "_DUPLICATE_HOSTNAME" + add_error $ pool_auth_enable_failed ^ "_DUPLICATE_HOSTNAME" -let pool_auth_disable_failed = pool_auth_prefix ^ auth_disable_failed +let pool_auth_disable_failed = + add_error $ pool_auth_prefix ^ auth_disable_failed let pool_auth_disable_failed_wrong_credentials = - pool_auth_disable_failed ^ auth_suffix_wrong_credentials + add_error $ pool_auth_disable_failed ^ auth_suffix_wrong_credentials let pool_auth_disable_failed_permission_denied = - pool_auth_disable_failed ^ auth_suffix_permission_denied + add_error $ pool_auth_disable_failed ^ auth_suffix_permission_denied let pool_auth_disable_failed_invalid_account = - pool_auth_disable_failed ^ auth_suffix_invalid_account + add_error $ pool_auth_disable_failed ^ auth_suffix_invalid_account -let subject_cannot_be_resolved = "SUBJECT_CANNOT_BE_RESOLVED" +let subject_cannot_be_resolved = add_error "SUBJECT_CANNOT_BE_RESOLVED" -let auth_service_error = "AUTH_SERVICE_ERROR" +let auth_service_error = add_error "AUTH_SERVICE_ERROR" -let subject_already_exists = "SUBJECT_ALREADY_EXISTS" +let subject_already_exists = add_error "SUBJECT_ALREADY_EXISTS" -let role_not_found = "ROLE_NOT_FOUND" +let role_not_found = add_error "ROLE_NOT_FOUND" -let role_already_exists = "ROLE_ALREADY_EXISTS" +let role_already_exists = add_error "ROLE_ALREADY_EXISTS" -let rbac_permission_denied = "RBAC_PERMISSION_DENIED" +let rbac_permission_denied = add_error "RBAC_PERMISSION_DENIED" -let certificate_does_not_exist = "CERTIFICATE_DOES_NOT_EXIST" +let certificate_does_not_exist = add_error "CERTIFICATE_DOES_NOT_EXIST" -let certificate_already_exists = "CERTIFICATE_ALREADY_EXISTS" +let certificate_already_exists = add_error "CERTIFICATE_ALREADY_EXISTS" -let certificate_name_invalid = "CERTIFICATE_NAME_INVALID" +let certificate_name_invalid = add_error "CERTIFICATE_NAME_INVALID" -let certificate_corrupt = "CERTIFICATE_CORRUPT" +let certificate_corrupt = add_error "CERTIFICATE_CORRUPT" -let certificate_library_corrupt = "CERTIFICATE_LIBRARY_CORRUPT" +let certificate_library_corrupt = add_error "CERTIFICATE_LIBRARY_CORRUPT" -let crl_does_not_exist = "CRL_DOES_NOT_EXIST" +let crl_does_not_exist = add_error "CRL_DOES_NOT_EXIST" -let crl_already_exists = "CRL_ALREADY_EXISTS" +let crl_already_exists = add_error "CRL_ALREADY_EXISTS" -let crl_name_invalid = "CRL_NAME_INVALID" +let crl_name_invalid = add_error "CRL_NAME_INVALID" -let crl_corrupt = "CRL_CORRUPT" +let crl_corrupt = add_error "CRL_CORRUPT" -let server_certificate_key_invalid = "SERVER_CERTIFICATE_KEY_INVALID" +let server_certificate_key_invalid = add_error "SERVER_CERTIFICATE_KEY_INVALID" let server_certificate_key_algorithm_not_supported = - "SERVER_CERTIFICATE_KEY_ALGORITHM_NOT_SUPPORTED" + add_error "SERVER_CERTIFICATE_KEY_ALGORITHM_NOT_SUPPORTED" let server_certificate_key_rsa_length_not_supported = - "SERVER_CERTIFICATE_KEY_RSA_LENGTH_NOT_SUPPORTED" + add_error "SERVER_CERTIFICATE_KEY_RSA_LENGTH_NOT_SUPPORTED" let server_certificate_key_rsa_multi_not_supported = - "SERVER_CERTIFICATE_KEY_RSA_MULTI_NOT_SUPPORTED" + add_error "SERVER_CERTIFICATE_KEY_RSA_MULTI_NOT_SUPPORTED" -let server_certificate_invalid = "SERVER_CERTIFICATE_INVALID" +let server_certificate_invalid = add_error "SERVER_CERTIFICATE_INVALID" -let ca_certificate_invalid = "CA_CERTIFICATE_INVALID" +let ca_certificate_invalid = add_error "CA_CERTIFICATE_INVALID" -let server_certificate_key_mismatch = "SERVER_CERTIFICATE_KEY_MISMATCH" +let server_certificate_key_mismatch = + add_error "SERVER_CERTIFICATE_KEY_MISMATCH" -let server_certificate_not_valid_yet = "SERVER_CERTIFICATE_NOT_VALID_YET" +let server_certificate_not_valid_yet = + add_error "SERVER_CERTIFICATE_NOT_VALID_YET" -let ca_certificate_not_valid_yet = "CA_CERTIFICATE_NOT_VALID_YET" +let ca_certificate_not_valid_yet = add_error "CA_CERTIFICATE_NOT_VALID_YET" -let server_certificate_expired = "SERVER_CERTIFICATE_EXPIRED" +let server_certificate_expired = add_error "SERVER_CERTIFICATE_EXPIRED" -let ca_certificate_expired = "CA_CERTIFICATE_EXPIRED" +let ca_certificate_expired = add_error "CA_CERTIFICATE_EXPIRED" let server_certificate_signature_not_supported = - "SERVER_CERTIFICATE_SIGNATURE_NOT_SUPPORTED" + add_error "SERVER_CERTIFICATE_SIGNATURE_NOT_SUPPORTED" -let server_certificate_chain_invalid = "SERVER_CERTIFICATE_CHAIN_INVALID" +let server_certificate_chain_invalid = + add_error "SERVER_CERTIFICATE_CHAIN_INVALID" -let vmpp_has_vm = "VMPP_HAS_VM" +let vmpp_has_vm = add_error "VMPP_HAS_VM" let vmpp_archive_more_frequent_than_backup = - "VMPP_ARCHIVE_MORE_FREQUENT_THAN_BACKUP" + add_error "VMPP_ARCHIVE_MORE_FREQUENT_THAN_BACKUP" -let vm_assigned_to_protection_policy = "VM_ASSIGNED_TO_PROTECTION_POLICY" +let vm_assigned_to_protection_policy = + add_error "VM_ASSIGNED_TO_PROTECTION_POLICY" -let vmss_has_vm = "VMSS_HAS_VM" +let vmss_has_vm = add_error "VMSS_HAS_VM" -let vm_assigned_to_snapshot_schedule = "VM_ASSIGNED_TO_SNAPSHOT_SCHEDULE" +let vm_assigned_to_snapshot_schedule = + add_error "VM_ASSIGNED_TO_SNAPSHOT_SCHEDULE" -let ssl_verify_error = "SSL_VERIFY_ERROR" +let ssl_verify_error = add_error "SSL_VERIFY_ERROR" -let cannot_enable_redo_log = "CANNOT_ENABLE_REDO_LOG" +let cannot_enable_redo_log = add_error "CANNOT_ENABLE_REDO_LOG" -let redo_log_is_enabled = "REDO_LOG_IS_ENABLED" +let redo_log_is_enabled = add_error "REDO_LOG_IS_ENABLED" -let vm_bios_strings_already_set = "VM_BIOS_STRINGS_ALREADY_SET" +let vm_bios_strings_already_set = add_error "VM_BIOS_STRINGS_ALREADY_SET" -let invalid_feature_string = "INVALID_FEATURE_STRING" +let invalid_feature_string = add_error "INVALID_FEATURE_STRING" -let cpu_feature_masking_not_supported = "CPU_FEATURE_MASKING_NOT_SUPPORTED" +let cpu_feature_masking_not_supported = + add_error "CPU_FEATURE_MASKING_NOT_SUPPORTED" -let feature_requires_hvm = "FEATURE_REQUIRES_HVM" +let feature_requires_hvm = add_error "FEATURE_REQUIRES_HVM" (* Disaster recovery *) -let vdi_contains_metadata_of_this_pool = "VDI_CONTAINS_METADATA_OF_THIS_POOL" +let vdi_contains_metadata_of_this_pool = + add_error "VDI_CONTAINS_METADATA_OF_THIS_POOL" -let no_more_redo_logs_allowed = "NO_MORE_REDO_LOGS_ALLOWED" +let no_more_redo_logs_allowed = add_error "NO_MORE_REDO_LOGS_ALLOWED" -let could_not_import_database = "COULD_NOT_IMPORT_DATABASE" +let could_not_import_database = add_error "COULD_NOT_IMPORT_DATABASE" -let vm_incompatible_with_this_host = "VM_INCOMPATIBLE_WITH_THIS_HOST" +let vm_incompatible_with_this_host = add_error "VM_INCOMPATIBLE_WITH_THIS_HOST" let cannot_destroy_disaster_recovery_task = - "CANNOT_DESTROY_DISASTER_RECOVERY_TASK" + add_error "CANNOT_DESTROY_DISASTER_RECOVERY_TASK" -let vm_is_part_of_an_appliance = "VM_IS_PART_OF_AN_APPLIANCE" +let vm_is_part_of_an_appliance = add_error "VM_IS_PART_OF_AN_APPLIANCE" -let vm_to_import_is_not_newer_version = "VM_TO_IMPORT_IS_NOT_NEWER_VERSION" +let vm_to_import_is_not_newer_version = + add_error "VM_TO_IMPORT_IS_NOT_NEWER_VERSION" let suspend_vdi_replacement_is_not_identical = - "SUSPEND_VDI_REPLACEMENT_IS_NOT_IDENTICAL" + add_error "SUSPEND_VDI_REPLACEMENT_IS_NOT_IDENTICAL" -let vdi_copy_failed = "VDI_COPY_FAILED" +let vdi_copy_failed = add_error "VDI_COPY_FAILED" -let vdi_needs_vm_for_migrate = "VDI_NEEDS_VM_FOR_MIGRATE" +let vdi_needs_vm_for_migrate = add_error "VDI_NEEDS_VM_FOR_MIGRATE" -let vm_has_too_many_snapshots = "VM_HAS_TOO_MANY_SNAPSHOTS" +let vm_has_too_many_snapshots = add_error "VM_HAS_TOO_MANY_SNAPSHOTS" -let vm_has_checkpoint = "VM_HAS_CHECKPOINT" +let vm_has_checkpoint = add_error "VM_HAS_CHECKPOINT" -let mirror_failed = "MIRROR_FAILED" +let mirror_failed = add_error "MIRROR_FAILED" -let too_many_storage_migrates = "TOO_MANY_STORAGE_MIGRATES" +let too_many_storage_migrates = add_error "TOO_MANY_STORAGE_MIGRATES" -let sr_does_not_support_migration = "SR_DOES_NOT_SUPPORT_MIGRATION" +let sr_does_not_support_migration = add_error "SR_DOES_NOT_SUPPORT_MIGRATION" -let unimplemented_in_sm_backend = "UNIMPLEMENTED_IN_SM_BACKEND" +let unimplemented_in_sm_backend = add_error "UNIMPLEMENTED_IN_SM_BACKEND" -let vm_call_plugin_rate_limit = "VM_CALL_PLUGIN_RATE_LIMIT" +let vm_call_plugin_rate_limit = add_error "VM_CALL_PLUGIN_RATE_LIMIT" -let suspend_image_not_accessible = "SUSPEND_IMAGE_NOT_ACCESSIBLE" +let suspend_image_not_accessible = add_error "SUSPEND_IMAGE_NOT_ACCESSIBLE" (* PVS *) -let pvs_site_contains_running_proxies = "PVS_SITE_CONTAINS_RUNNING_PROXIES" +let pvs_site_contains_running_proxies = + add_error "PVS_SITE_CONTAINS_RUNNING_PROXIES" -let pvs_site_contains_servers = "PVS_SITE_CONTAINS_SERVERS" +let pvs_site_contains_servers = add_error "PVS_SITE_CONTAINS_SERVERS" -let pvs_cache_storage_already_present = "PVS_CACHE_STORAGE_ALREADY_PRESENT" +let pvs_cache_storage_already_present = + add_error "PVS_CACHE_STORAGE_ALREADY_PRESENT" -let pvs_cache_storage_is_in_use = "PVS_CACHE_STORAGE_IS_IN_USE" +let pvs_cache_storage_is_in_use = add_error "PVS_CACHE_STORAGE_IS_IN_USE" -let pvs_proxy_already_present = "PVS_PROXY_ALREADY_PRESENT" +let pvs_proxy_already_present = add_error "PVS_PROXY_ALREADY_PRESENT" -let pvs_server_address_in_use = "PVS_SERVER_ADDRESS_IN_USE" +let pvs_server_address_in_use = add_error "PVS_SERVER_ADDRESS_IN_USE" -let extension_protocol_failure = "EXTENSION_PROTOCOL_FAILURE" +let extension_protocol_failure = add_error "EXTENSION_PROTOCOL_FAILURE" -let usb_group_contains_vusb = "USB_GROUP_CONTAINS_VUSB" +let usb_group_contains_vusb = add_error "USB_GROUP_CONTAINS_VUSB" -let usb_group_contains_pusb = "USB_GROUP_CONTAINS_PUSB" +let usb_group_contains_pusb = add_error "USB_GROUP_CONTAINS_PUSB" -let usb_group_contains_no_pusbs = "USB_GROUP_CONTAINS_NO_PUSBS" +let usb_group_contains_no_pusbs = add_error "USB_GROUP_CONTAINS_NO_PUSBS" -let usb_group_conflict = "USB_GROUP_CONFLICT" +let usb_group_conflict = add_error "USB_GROUP_CONFLICT" -let usb_already_attached = "USB_ALREADY_ATTACHED" +let usb_already_attached = add_error "USB_ALREADY_ATTACHED" -let too_many_vusbs = "TOO_MANY_VUSBS" +let too_many_vusbs = add_error "TOO_MANY_VUSBS" -let pusb_vdi_conflict = "PUSB_VDI_CONFLICT" +let pusb_vdi_conflict = add_error "PUSB_VDI_CONFLICT" -let vm_has_vusbs = "VM_HAS_VUSBS" +let vm_has_vusbs = add_error "VM_HAS_VUSBS" -let cluster_has_no_certificate = "CLUSTER_HAS_NO_CERTIFICATE" +let cluster_has_no_certificate = add_error "CLUSTER_HAS_NO_CERTIFICATE" -let cluster_create_in_progress = "CLUSTER_CREATE_IN_PROGRESS" +let cluster_create_in_progress = add_error "CLUSTER_CREATE_IN_PROGRESS" -let cluster_already_exists = "CLUSTER_ALREADY_EXISTS" +let cluster_already_exists = add_error "CLUSTER_ALREADY_EXISTS" -let clustering_enabled = "CLUSTERING_ENABLED" +let clustering_enabled = add_error "CLUSTERING_ENABLED" -let clustering_disabled = "CLUSTERING_DISABLED" +let clustering_disabled = add_error "CLUSTERING_DISABLED" -let cluster_does_not_have_one_node = "CLUSTER_DOES_NOT_HAVE_ONE_NODE" +let cluster_does_not_have_one_node = add_error "CLUSTER_DOES_NOT_HAVE_ONE_NODE" -let cluster_host_is_last = "CLUSTER_HOST_IS_LAST" +let cluster_host_is_last = add_error "CLUSTER_HOST_IS_LAST" -let no_compatible_cluster_host = "NO_COMPATIBLE_CLUSTER_HOST" +let no_compatible_cluster_host = add_error "NO_COMPATIBLE_CLUSTER_HOST" -let cluster_force_destroy_failed = "CLUSTER_FORCE_DESTROY_FAILED" +let cluster_force_destroy_failed = add_error "CLUSTER_FORCE_DESTROY_FAILED" -let cluster_stack_in_use = "CLUSTER_STACK_IN_USE" +let cluster_stack_in_use = add_error "CLUSTER_STACK_IN_USE" -let invalid_cluster_stack = "INVALID_CLUSTER_STACK" +let invalid_cluster_stack = add_error "INVALID_CLUSTER_STACK" -let pif_not_attached_to_host = "PIF_NOT_ATTACHED_TO_HOST" +let pif_not_attached_to_host = add_error "PIF_NOT_ATTACHED_TO_HOST" -let cluster_host_not_joined = "CLUSTER_HOST_NOT_JOINED" +let cluster_host_not_joined = add_error "CLUSTER_HOST_NOT_JOINED" -let no_cluster_hosts_reachable = "NO_CLUSTER_HOSTS_REACHABLE" +let no_cluster_hosts_reachable = add_error "NO_CLUSTER_HOSTS_REACHABLE" -let xen_incompatible = "XEN_INCOMPATIBLE" +let xen_incompatible = add_error "XEN_INCOMPATIBLE" let vcpu_max_not_cores_per_socket_multiple = - "VCPU_MAX_NOT_CORES_PER_SOCKET_MULTIPLE" + add_error "VCPU_MAX_NOT_CORES_PER_SOCKET_MULTIPLE" -let designate_new_master_in_progress = "DESIGNATE_NEW_MASTER_IN_PROGRESS" +let designate_new_master_in_progress = + add_error "DESIGNATE_NEW_MASTER_IN_PROGRESS" -let pool_secret_rotation_pending = "POOL_SECRET_ROTATION_PENDING" +let pool_secret_rotation_pending = add_error "POOL_SECRET_ROTATION_PENDING" -let tls_verification_enable_in_progress = "TLS_VERIFICATION_ENABLE_IN_PROGRESS" +let tls_verification_enable_in_progress = + add_error "TLS_VERIFICATION_ENABLE_IN_PROGRESS" -let cert_refresh_in_progress = "CERT_REFRESH_IN_PROGRESS" +let cert_refresh_in_progress = add_error "CERT_REFRESH_IN_PROGRESS" -let configure_repositories_in_progress = "CONFIGURE_REPOSITORIES_IN_PROGRESS" +let configure_repositories_in_progress = + add_error "CONFIGURE_REPOSITORIES_IN_PROGRESS" -let invalid_base_url = "INVALID_BASE_URL" +let invalid_base_url = add_error "INVALID_BASE_URL" -let invalid_gpgkey_path = "INVALID_GPGKEY_PATH" +let invalid_gpgkey_path = add_error "INVALID_GPGKEY_PATH" -let repository_already_exists = "REPOSITORY_ALREADY_EXISTS" +let repository_already_exists = add_error "REPOSITORY_ALREADY_EXISTS" -let repository_is_in_use = "REPOSITORY_IS_IN_USE" +let repository_is_in_use = add_error "REPOSITORY_IS_IN_USE" -let repository_cleanup_failed = "REPOSITORY_CLEANUP_FAILED" +let repository_cleanup_failed = add_error "REPOSITORY_CLEANUP_FAILED" -let no_repository_enabled = "NO_REPOSITORY_ENABLED" +let no_repository_enabled = add_error "NO_REPOSITORY_ENABLED" let multiple_update_repositories_enabled = - "MULTIPLE_UPDATE_REPOSITORIES_ENABLED" + add_error "MULTIPLE_UPDATE_REPOSITORIES_ENABLED" -let sync_updates_in_progress = "SYNC_UPDATES_IN_PROGRESS" +let sync_updates_in_progress = add_error "SYNC_UPDATES_IN_PROGRESS" -let reposync_failed = "REPOSYNC_FAILED" +let reposync_failed = add_error "REPOSYNC_FAILED" -let createrepo_failed = "CREATEREPO_FAILED" +let createrepo_failed = add_error "CREATEREPO_FAILED" -let invalid_updateinfo_xml = "INVALID_UPDATEINFO_XML" +let invalid_updateinfo_xml = add_error "INVALID_UPDATEINFO_XML" -let get_host_updates_failed = "GET_HOST_UPDATES_FAILED" +let get_host_updates_failed = add_error "GET_HOST_UPDATES_FAILED" -let invalid_repomd_xml = "INVALID_REPOMD_XML" +let invalid_repomd_xml = add_error "INVALID_REPOMD_XML" -let get_updates_failed = "GET_UPDATES_FAILED" +let get_updates_failed = add_error "GET_UPDATES_FAILED" -let get_updates_in_progress = "GET_UPDATES_IN_PROGRESS" +let get_updates_in_progress = add_error "GET_UPDATES_IN_PROGRESS" -let apply_updates_in_progress = "APPLY_UPDATES_IN_PROGRESS" +let apply_updates_in_progress = add_error "APPLY_UPDATES_IN_PROGRESS" -let apply_updates_failed = "APPLY_UPDATES_FAILED" +let apply_updates_failed = add_error "APPLY_UPDATES_FAILED" -let apply_guidance_failed = "APPLY_GUIDANCE_FAILED" +let apply_guidance_failed = add_error "APPLY_GUIDANCE_FAILED" -let updateinfo_hash_mismatch = "UPDATEINFO_HASH_MISMATCH" +let updateinfo_hash_mismatch = add_error "UPDATEINFO_HASH_MISMATCH" -let cannot_restart_device_model = "CANNOT_RESTART_DEVICE_MODEL" +let cannot_restart_device_model = add_error "CANNOT_RESTART_DEVICE_MODEL" -let invalid_repository_proxy_url = "INVALID_REPOSITORY_PROXY_URL" +let invalid_repository_proxy_url = add_error "INVALID_REPOSITORY_PROXY_URL" -let invalid_repository_proxy_credential = "INVALID_REPOSITORY_PROXY_CREDENTIAL" +let invalid_repository_proxy_credential = + add_error "INVALID_REPOSITORY_PROXY_CREDENTIAL" -let invalid_repository_domain_allowlist = "INVALID_REPOSITORY_DOMAIN_ALLOWLIST" +let invalid_repository_domain_allowlist = + add_error "INVALID_REPOSITORY_DOMAIN_ALLOWLIST" -let apply_livepatch_failed = "APPLY_LIVEPATCH_FAILED" +let apply_livepatch_failed = add_error "APPLY_LIVEPATCH_FAILED" -let invalid_update_sync_day = "INVALID_UPDATE_SYNC_DAY" +let invalid_update_sync_day = add_error "INVALID_UPDATE_SYNC_DAY" -let no_repositories_configured = "NO_REPOSITORIES_CONFIGURED" +let no_repositories_configured = add_error "NO_REPOSITORIES_CONFIGURED" let host_pending_mandatory_guidances_not_empty = - "HOST_PENDING_MANDATORY_GUIDANCE_NOT_EMPTY" + add_error "HOST_PENDING_MANDATORY_GUIDANCE_NOT_EMPTY" -let host_evacuation_is_required = "HOST_EVACUATION_IS_REQUIRED" +let host_evacuation_is_required = add_error "HOST_EVACUATION_IS_REQUIRED" (* VTPMs *) -let vtpm_max_amount_reached = "VTPM_MAX_AMOUNT_REACHED" +let vtpm_max_amount_reached = add_error "VTPM_MAX_AMOUNT_REACHED" (* Telemetry *) -let telemetry_next_collection_too_late = "TELEMETRY_NEXT_COLLECTION_TOO_LATE" +let telemetry_next_collection_too_late = + add_error "TELEMETRY_NEXT_COLLECTION_TOO_LATE" (* FIPS/CC_PREPARATIONS *) -let illegal_in_fips_mode = "ILLEGAL_IN_FIPS_MODE" +let illegal_in_fips_mode = add_error "ILLEGAL_IN_FIPS_MODE" diff --git a/quality-gate.sh b/quality-gate.sh index 77238f4ab93..2d055cab12f 100755 --- a/quality-gate.sh +++ b/quality-gate.sh @@ -25,7 +25,7 @@ verify-cert () { } mli-files () { - N=522 + N=525 # do not count ml files from the tests in ocaml/{tests/perftest/quicktest} MLIS=$(git ls-files -- '**/*.mli' | grep -vE "ocaml/tests|ocaml/perftest|ocaml/quicktest" | xargs -I {} sh -c "echo {} | cut -f 1 -d '.'" \;) MLS=$(git ls-files -- '**/*.ml' | grep -vE "ocaml/tests|ocaml/perftest|ocaml/quicktest" | xargs -I {} sh -c "echo {} | cut -f 1 -d '.'" \;)