From nobody Fri May 3 06:14:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1545062686112743.2088196732095; Mon, 17 Dec 2018 08:04:46 -0800 (PST) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id A1E2C80F8D; Mon, 17 Dec 2018 16:04:37 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 4D40960F8D; Mon, 17 Dec 2018 16:04:36 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 5345D4ED25; Mon, 17 Dec 2018 16:04:35 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id wBHG4X26022739 for ; Mon, 17 Dec 2018 11:04:33 -0500 Received: by smtp.corp.redhat.com (Postfix) id E70095D75F; Mon, 17 Dec 2018 16:04:33 +0000 (UTC) Received: from localhost.localdomain.com (ovpn-112-62.ams2.redhat.com [10.36.112.62]) by smtp.corp.redhat.com (Postfix) with ESMTP id C8ED25D759; Mon, 17 Dec 2018 16:04:29 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Mon, 17 Dec 2018 16:04:24 +0000 Message-Id: <20181217160424.12225-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH] util: fix translation of error message strings X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Mon, 17 Dec 2018 16:04:38 +0000 (UTC) The arguments to the N_() macro must only ever be a literal string. It is not possible to use macro arguments, or use macro string concatenation in this context. The N_() macro is a no-op whose only purpose is to act as a marker for xgettext when it extracts translatable strings from the source code. Anything other than a literal string will be silently ignored by xgettext. Unfortunately this means that the clever MSG, MSG2 & MSG_EXISTS macros used for building up error message strings have prevented any of the error messages getting marked for translation. We must sadly, revert to a more explicit listing of strings for now. Signed-off-by: Daniel P. Berrang=C3=A9 Reviewed-by: Jiri Denemark --- src/util/virerror.c | 431 +++++++++++++++++++++++++++++++------------- 1 file changed, 303 insertions(+), 128 deletions(-) diff --git a/src/util/virerror.c b/src/util/virerror.c index b08427005f..3cdc825157 100644 --- a/src/util/virerror.c +++ b/src/util/virerror.c @@ -908,138 +908,313 @@ typedef struct { } virErrorMsgTuple; =20 =20 -/** - * These macros expand to the following format of error message: - * MSG2("error message", " suffix %s") - * - no info: "error message" - * - info: "error message suffix %s" - * - * MSG("error message") - * - no info: "error message" - * - info: "error message: %s" - * - * MSG_EXISTS("sausage") - * - no info: "this sausage exists already" - * - info: "sausage %s exists already" - * - * For any other case please use: - * { "error message without info string", "message containing %s descripti= on"} - */ -#define MSG2(msg, sfx) \ - { N_(msg), N_(msg sfx) } -#define MSG(msg) \ - MSG2(msg, ": %s") -#define MSG_EXISTS(object) \ - { N_("this " object " exists already"), N_(object " %s exists already")= } - const virErrorMsgTuple virErrorMsgStrings[VIR_ERR_NUMBER_LAST] =3D { [VIR_ERR_OK] =3D { NULL, NULL }, - [VIR_ERR_INTERNAL_ERROR] =3D MSG("internal error"), - [VIR_ERR_NO_MEMORY] =3D MSG("out of memory"), - [VIR_ERR_NO_SUPPORT] =3D MSG("this function is not supported by the co= nnection driver"), - [VIR_ERR_UNKNOWN_HOST] =3D MSG2("unknown host", " %s"), - [VIR_ERR_NO_CONNECT] =3D MSG2("no connection driver available", " for = %s"), - [VIR_ERR_INVALID_CONN] =3D MSG2("invalid connection pointer in", " %s"= ), - [VIR_ERR_INVALID_DOMAIN] =3D MSG2("invalid domain pointer in", " %s"), - [VIR_ERR_INVALID_ARG] =3D MSG("invalid argument"), - [VIR_ERR_OPERATION_FAILED] =3D MSG("operation failed"), - [VIR_ERR_GET_FAILED] =3D MSG("GET operation failed"), - [VIR_ERR_POST_FAILED] =3D MSG("POST operation failed"), - [VIR_ERR_HTTP_ERROR] =3D MSG2("got unknown HTTP error code", " %s"), - [VIR_ERR_SEXPR_SERIAL] =3D MSG("failed to serialize S-Expr"), - [VIR_ERR_NO_XEN] =3D MSG2("could not use Xen hypervisor entry", " %s"), - [VIR_ERR_XEN_CALL] =3D MSG2("failed Xen syscall", " %s"), - [VIR_ERR_OS_TYPE] =3D MSG2("unknown OS type", " %s"), - [VIR_ERR_NO_KERNEL] =3D MSG("missing kernel information"), - [VIR_ERR_NO_ROOT] =3D MSG2("missing root device information", " in %s"= ), - [VIR_ERR_NO_SOURCE] =3D MSG2("missing source information for device", = " %s"), - [VIR_ERR_NO_TARGET] =3D MSG2("missing target information for device", = " %s"), - [VIR_ERR_NO_NAME] =3D MSG2("missing name information", " in %s"), - [VIR_ERR_NO_OS] =3D MSG2("missing operating system information", " for= %s"), - [VIR_ERR_NO_DEVICE] =3D MSG2("missing devices information", " for %s"), - [VIR_ERR_NO_XENSTORE] =3D MSG2("could not connect to Xen Store", " %s"= ), - [VIR_ERR_DRIVER_FULL] =3D MSG2("too many drivers registered", " in %s"= ), - [VIR_ERR_CALL_FAILED] =3D MSG("library call failed"), - [VIR_ERR_XML_ERROR] =3D { "XML description is invalid or not well form= ed", "XML error: %s" }, - [VIR_ERR_DOM_EXIST] =3D MSG_EXISTS("domain"), - [VIR_ERR_OPERATION_DENIED] =3D { "operation forbidden for read only ac= cess", "operation forbidden: %s" }, - [VIR_ERR_OPEN_FAILED] =3D MSG2("failed to open configuration file", " = %s"), - [VIR_ERR_READ_FAILED] =3D MSG2("failed to read configuration file", " = %s"), - [VIR_ERR_PARSE_FAILED] =3D MSG2("failed to parse configuration file", = " %s"), - [VIR_ERR_CONF_SYNTAX] =3D MSG("configuration file syntax error"), - [VIR_ERR_WRITE_FAILED] =3D MSG("failed to write configuration file"), - [VIR_ERR_XML_DETAIL] =3D { "parser error", "%s" }, - [VIR_ERR_INVALID_NETWORK] =3D MSG2("invalid network pointer in", " %s"= ), - [VIR_ERR_NETWORK_EXIST] =3D MSG_EXISTS("network"), - [VIR_ERR_SYSTEM_ERROR] =3D { "system call error", "%s" }, - [VIR_ERR_RPC] =3D { "RPC error", "%s" }, - [VIR_ERR_GNUTLS_ERROR] =3D { "GNUTLS call error", "%s" }, - [VIR_WAR_NO_NETWORK] =3D MSG("Failed to find the network"), - [VIR_ERR_NO_DOMAIN] =3D MSG("Domain not found"), - [VIR_ERR_NO_NETWORK] =3D MSG("Network not found"), - [VIR_ERR_INVALID_MAC] =3D MSG("invalid MAC address"), - [VIR_ERR_AUTH_FAILED] =3D MSG("authentication failed"), - [VIR_ERR_INVALID_STORAGE_POOL] =3D MSG2("invalid storage pool pointer = in", " %s"), - [VIR_ERR_INVALID_STORAGE_VOL] =3D MSG2("invalid storage volume pointer= in", " %s"), - [VIR_WAR_NO_STORAGE] =3D MSG("Failed to find a storage driver"), - [VIR_ERR_NO_STORAGE_POOL] =3D MSG("Storage pool not found"), - [VIR_ERR_NO_STORAGE_VOL] =3D MSG("Storage volume not found"), - [VIR_WAR_NO_NODE] =3D MSG("Failed to find a node driver"), - [VIR_ERR_INVALID_NODE_DEVICE] =3D MSG2("invalid node device pointer", = " in %s"), - [VIR_ERR_NO_NODE_DEVICE] =3D MSG("Node device not found"), - [VIR_ERR_NO_SECURITY_MODEL] =3D MSG("Security model not found"), - [VIR_ERR_OPERATION_INVALID] =3D MSG("Requested operation is not valid"= ), - [VIR_WAR_NO_INTERFACE] =3D MSG("Failed to find the interface"), - [VIR_ERR_NO_INTERFACE] =3D MSG("Interface not found"), - [VIR_ERR_INVALID_INTERFACE] =3D MSG2("invalid interface pointer in", "= %s"), - [VIR_ERR_MULTIPLE_INTERFACES] =3D MSG("multiple matching interfaces fo= und"), - [VIR_WAR_NO_NWFILTER] =3D MSG("Failed to start the nwfilter driver"), - [VIR_ERR_INVALID_NWFILTER] =3D MSG("Invalid network filter"), - [VIR_ERR_NO_NWFILTER] =3D MSG("Network filter not found"), - [VIR_ERR_BUILD_FIREWALL] =3D MSG("Error while building firewall"), - [VIR_WAR_NO_SECRET] =3D MSG("Failed to find a secret storage driver"), - [VIR_ERR_INVALID_SECRET] =3D MSG("Invalid secret"), - [VIR_ERR_NO_SECRET] =3D MSG("Secret not found"), - [VIR_ERR_CONFIG_UNSUPPORTED] =3D MSG("unsupported configuration"), - [VIR_ERR_OPERATION_TIMEOUT] =3D MSG("Timed out during operation"), - [VIR_ERR_MIGRATE_PERSIST_FAILED] =3D MSG("Failed to make domain persis= tent after migration"), - [VIR_ERR_HOOK_SCRIPT_FAILED] =3D MSG("Hook script execution failed"), - [VIR_ERR_INVALID_DOMAIN_SNAPSHOT] =3D MSG("Invalid snapshot"), - [VIR_ERR_NO_DOMAIN_SNAPSHOT] =3D MSG("Domain snapshot not found"), - [VIR_ERR_INVALID_STREAM] =3D MSG2("invalid stream pointer", " in %s"), - [VIR_ERR_ARGUMENT_UNSUPPORTED] =3D MSG("argument unsupported"), - [VIR_ERR_STORAGE_PROBE_FAILED] =3D MSG("Storage pool probe failed"), - [VIR_ERR_STORAGE_POOL_BUILT] =3D MSG("Storage pool already built"), - [VIR_ERR_SNAPSHOT_REVERT_RISKY] =3D MSG("revert requires force"), - [VIR_ERR_OPERATION_ABORTED] =3D MSG("operation aborted"), - [VIR_ERR_AUTH_CANCELLED] =3D MSG("authentication cancelled"), - [VIR_ERR_NO_DOMAIN_METADATA] =3D MSG("metadata not found"), - [VIR_ERR_MIGRATE_UNSAFE] =3D MSG("Unsafe migration"), - [VIR_ERR_OVERFLOW] =3D MSG("numerical overflow"), - [VIR_ERR_BLOCK_COPY_ACTIVE] =3D MSG("block copy still active"), - [VIR_ERR_OPERATION_UNSUPPORTED] =3D MSG("Operation not supported"), - [VIR_ERR_SSH] =3D MSG("SSH transport error"), - [VIR_ERR_AGENT_UNRESPONSIVE] =3D MSG("Guest agent is not responding"), - [VIR_ERR_RESOURCE_BUSY] =3D MSG("resource busy"), - [VIR_ERR_ACCESS_DENIED] =3D MSG("access denied"), - [VIR_ERR_DBUS_SERVICE] =3D MSG("error from service"), - [VIR_ERR_STORAGE_VOL_EXIST] =3D MSG_EXISTS("storage volume"), - [VIR_ERR_CPU_INCOMPATIBLE] =3D MSG("the CPU is incompatible with host = CPU"), - [VIR_ERR_XML_INVALID_SCHEMA] =3D MSG("XML document failed to validate = against schema"), - [VIR_ERR_MIGRATE_FINISH_OK] =3D MSG("migration successfully aborted"), - [VIR_ERR_AUTH_UNAVAILABLE] =3D MSG("authentication unavailable"), - [VIR_ERR_NO_SERVER] =3D MSG("Server not found"), - [VIR_ERR_NO_CLIENT] =3D MSG("Client not found"), - [VIR_ERR_AGENT_UNSYNCED] =3D MSG("guest agent replied with wrong id to= guest-sync command"), - [VIR_ERR_LIBSSH] =3D MSG("libssh transport error"), - [VIR_ERR_DEVICE_MISSING] =3D MSG("device not found"), - [VIR_ERR_INVALID_NWFILTER_BINDING] =3D MSG("Invalid network filter bin= ding"), - [VIR_ERR_NO_NWFILTER_BINDING] =3D MSG("Network filter binding not foun= d"), + [VIR_ERR_INTERNAL_ERROR] =3D { + N_("internal error"), + N_("internal error: %s") }, + [VIR_ERR_NO_MEMORY] =3D { + N_("out of memory"), + N_("out of memory: %s") }, + [VIR_ERR_NO_SUPPORT] =3D { + N_("this function is not supported by the connection driver"), + N_("this function is not supported by the connection driver: %s") = }, + [VIR_ERR_UNKNOWN_HOST] =3D { + N_("unknown host"), + N_("unknown host %s") }, + [VIR_ERR_NO_CONNECT] =3D { + N_("no connection driver available"), + N_("no connection driver available for %s") }, + [VIR_ERR_INVALID_CONN] =3D { + N_("invalid connection pointer in"), + N_("invalid connection pointer in %s") }, + [VIR_ERR_INVALID_DOMAIN] =3D { + N_("invalid domain pointer in"), + N_("invalid domain pointer in %s") }, + [VIR_ERR_INVALID_ARG] =3D { + N_("invalid argument"), + N_("invalid argument: %s") }, + [VIR_ERR_OPERATION_FAILED] =3D { + N_("operation failed"), + N_("operation failed: %s") }, + [VIR_ERR_GET_FAILED] =3D { + N_("GET operation failed"), + N_("GET operation failed: %s") }, + [VIR_ERR_POST_FAILED] =3D { + N_("POST operation failed"), + N_("POST operation failed: %s") }, + [VIR_ERR_HTTP_ERROR] =3D { + N_("got unknown HTTP error code"), + N_("got unknown HTTP error code %s") }, + [VIR_ERR_SEXPR_SERIAL] =3D { + N_("failed to serialize S-Expr"), + N_("failed to serialize S-Expr: %s") }, + [VIR_ERR_NO_XEN] =3D { + N_("could not use Xen hypervisor entry"), + N_("could not use Xen hypervisor entry %s") }, + [VIR_ERR_XEN_CALL] =3D { + N_("failed Xen syscall"), + N_("failed Xen syscall %s") }, + [VIR_ERR_OS_TYPE] =3D { + N_("unknown OS type"), + N_("unknown OS type %s") }, + [VIR_ERR_NO_KERNEL] =3D { + N_("missing kernel information"), + N_("missing kernel information: %s") }, + [VIR_ERR_NO_ROOT] =3D { + N_("missing root device information"), + N_("missing root device information in %s") }, + [VIR_ERR_NO_SOURCE] =3D { + N_("missing source information for device"), + N_("missing source information for device %s") }, + [VIR_ERR_NO_TARGET] =3D { + N_("missing target information for device"), + N_("missing target information for device %s") }, + [VIR_ERR_NO_NAME] =3D { + N_("missing name information"), + N_("missing name information in %s") }, + [VIR_ERR_NO_OS] =3D { + N_("missing operating system information"), + N_("missing operating system information for %s") }, + [VIR_ERR_NO_DEVICE] =3D { + N_("missing devices information"), + N_("missing devices information for %s") }, + [VIR_ERR_NO_XENSTORE] =3D { + N_("could not connect to Xen Store"), + N_("could not connect to Xen Store %s") }, + [VIR_ERR_DRIVER_FULL] =3D { + N_("too many drivers registered"), + N_("too many drivers registered in %s") }, + [VIR_ERR_CALL_FAILED] =3D { + N_("library call failed"), + N_("library call failed: %s") }, + [VIR_ERR_XML_ERROR] =3D { + N_("XML description is invalid or not well formed"), + N_("XML error: %s") }, + [VIR_ERR_DOM_EXIST] =3D { + N_("this domain exists already"), + N_("domain %s exists already") }, + [VIR_ERR_OPERATION_DENIED] =3D { + N_("operation forbidden for read only access"), + N_("operation forbidden: %s") }, + [VIR_ERR_OPEN_FAILED] =3D { + N_("failed to open configuration file"), + N_("failed to open configuration file %s") }, + [VIR_ERR_READ_FAILED] =3D { + N_("failed to read configuration file"), + N_("failed to read configuration file %s") }, + [VIR_ERR_PARSE_FAILED] =3D { + N_("failed to parse configuration file"), + N_("failed to parse configuration file %s") }, + [VIR_ERR_CONF_SYNTAX] =3D { + N_("configuration file syntax error"), + N_("configuration file syntax error: %s") }, + [VIR_ERR_WRITE_FAILED] =3D { + N_("failed to write configuration file"), + N_("failed to write configuration file: %s") }, + [VIR_ERR_XML_DETAIL] =3D { + N_("parsers error"), + "%s" }, + [VIR_ERR_INVALID_NETWORK] =3D { + N_("invalid network pointer in"), + N_("invalid network pointer in %s") }, + [VIR_ERR_NETWORK_EXIST] =3D { + N_("this network exists already"), + N_("network %s exists already") }, + [VIR_ERR_SYSTEM_ERROR] =3D { + N_("system call error"), + "%s" }, + [VIR_ERR_RPC] =3D { + N_("RPC error"), + "%s" }, + [VIR_ERR_GNUTLS_ERROR] =3D { + N_("GNUTLS call error"), + "%s" }, + [VIR_WAR_NO_NETWORK] =3D { + N_("Failed to find the network"), + N_("Failed to find the network: %s") }, + [VIR_ERR_NO_DOMAIN] =3D { + N_("Domain not found"), + N_("Domain not found: %s") }, + [VIR_ERR_NO_NETWORK] =3D { + N_("Network not found"), + N_("Network not found: %s") }, + [VIR_ERR_INVALID_MAC] =3D { + N_("invalid MAC address"), + N_("invalid MAC address: %s") }, + [VIR_ERR_AUTH_FAILED] =3D { + N_("authentication failed"), + N_("authentication failed: %s") }, + [VIR_ERR_INVALID_STORAGE_POOL] =3D { + N_("invalid storage pool pointer in"), + N_("invalid storage pool pointer in %s") }, + [VIR_ERR_INVALID_STORAGE_VOL] =3D { + N_("invalid storage volume pointer in"), + N_("invalid storage volume pointer in %s") }, + [VIR_WAR_NO_STORAGE] =3D { + N_("Failed to find a storage driver"), + N_("Failed to find a storage driver: %s") }, + [VIR_ERR_NO_STORAGE_POOL] =3D { + N_("Storage pool not found"), + N_("Storage pool not found: %s") }, + [VIR_ERR_NO_STORAGE_VOL] =3D { + N_("Storage volume not found"), + N_("Storage volume not found: %s") }, + [VIR_WAR_NO_NODE] =3D { + N_("Failed to find a node driver"), + N_("Failed to find a node driver: %s") }, + [VIR_ERR_INVALID_NODE_DEVICE] =3D { + N_("invalid node device pointer"), + N_("invalid node device pointer in %s") }, + [VIR_ERR_NO_NODE_DEVICE] =3D { + N_("Node device not found"), + N_("Node device not found: %s") }, + [VIR_ERR_NO_SECURITY_MODEL] =3D { + N_("Security model not found"), + N_("Security model not found: %s") }, + [VIR_ERR_OPERATION_INVALID] =3D { + N_("Requested operation is not valid"), + N_("Requested operation is not valid: %s") }, + [VIR_WAR_NO_INTERFACE] =3D { + N_("Failed to find the interface"), + N_("Failed to find the interface: %s") }, + [VIR_ERR_NO_INTERFACE] =3D { + N_("Interface not found"), + N_("Interface not found: %s") }, + [VIR_ERR_INVALID_INTERFACE] =3D { + N_("invalid interface pointer in"), + N_("invalid interface pointer in %s") }, + [VIR_ERR_MULTIPLE_INTERFACES] =3D { + N_("multiple matching interfaces found"), + N_("multiple matching interfaces found: %s") }, + [VIR_WAR_NO_NWFILTER] =3D { + N_("Failed to start the nwfilter driver"), + N_("Failed to start the nwfilter driver: %s") }, + [VIR_ERR_INVALID_NWFILTER] =3D { + N_("Invalid network filter"), + N_("Invalid network filter: %s") }, + [VIR_ERR_NO_NWFILTER] =3D { + N_("Network filter not found"), + N_("Network filter not found: %s") }, + [VIR_ERR_BUILD_FIREWALL] =3D { + N_("Error while building firewall"), + N_("Error while building firewall: %s") }, + [VIR_WAR_NO_SECRET] =3D { + N_("Failed to find a secret storage driver"), + N_("Failed to find a secret storage driver: %s") }, + [VIR_ERR_INVALID_SECRET] =3D { + N_("Invalid secret"), + N_("Invalid secret: %s") }, + [VIR_ERR_NO_SECRET] =3D { + N_("Secret not found"), + N_("Secret not found: %s") }, + [VIR_ERR_CONFIG_UNSUPPORTED] =3D { + N_("unsupported configuration"), + N_("unsupported configuration: %s") }, + [VIR_ERR_OPERATION_TIMEOUT] =3D { + N_("Timed out during operation"), + N_("Timed out during operation: %s") }, + [VIR_ERR_MIGRATE_PERSIST_FAILED] =3D { + N_("Failed to make domain persistent after migration"), + N_("Failed to make domain persistent after migration: %s") }, + [VIR_ERR_HOOK_SCRIPT_FAILED] =3D { + N_("Hook script execution failed"), + N_("Hook script execution failed: %s") }, + [VIR_ERR_INVALID_DOMAIN_SNAPSHOT] =3D { + N_("Invalid snapshot"), + N_("Invalid snapshot: %s") }, + [VIR_ERR_NO_DOMAIN_SNAPSHOT] =3D { + N_("Domain snapshot not found"), + N_("Domain snapshot not found: %s") }, + [VIR_ERR_INVALID_STREAM] =3D { + N_("invalid stream pointer"), + N_("invalid stream pointer in %s") }, + [VIR_ERR_ARGUMENT_UNSUPPORTED] =3D { + N_("argument unsupported"), + N_("argument unsupported: %s") }, + [VIR_ERR_STORAGE_PROBE_FAILED] =3D { + N_("Storage pool probe failed"), + N_("Storage pool probe failed: %s") }, + [VIR_ERR_STORAGE_POOL_BUILT] =3D { + N_("Storage pool already built"), + N_("Storage pool already built: %s") }, + [VIR_ERR_SNAPSHOT_REVERT_RISKY] =3D { + N_("revert requires force"), + N_("revert requires force: %s") }, + [VIR_ERR_OPERATION_ABORTED] =3D { + N_("operation aborted"), + N_("operation aborted: %s") }, + [VIR_ERR_AUTH_CANCELLED] =3D { + N_("authentication cancelled"), + N_("authentication cancelled: %s") }, + [VIR_ERR_NO_DOMAIN_METADATA] =3D { + N_("metadata not found"), + N_("metadata not found: %s") }, + [VIR_ERR_MIGRATE_UNSAFE] =3D { + N_("Unsafe migration"), + N_("Unsafe migration: %s") }, + [VIR_ERR_OVERFLOW] =3D { + N_("numerical overflow"), + N_("numerical overflow: %s") }, + [VIR_ERR_BLOCK_COPY_ACTIVE] =3D { + N_("block copy still active"), + N_("block copy still active: %s") }, + [VIR_ERR_OPERATION_UNSUPPORTED] =3D { + N_("Operation not supported"), + N_("Operation not supported: %s") }, + [VIR_ERR_SSH] =3D { + N_("SSH transport error"), + N_("SSH transport error: %s") }, + [VIR_ERR_AGENT_UNRESPONSIVE] =3D { + N_("Guest agent is not responding"), + N_("Guest agent is not responding: %s") }, + [VIR_ERR_RESOURCE_BUSY] =3D { + N_("resource busy"), + N_("resource busy: %s") }, + [VIR_ERR_ACCESS_DENIED] =3D { + N_("access denied"), + N_("access denied: %s") }, + [VIR_ERR_DBUS_SERVICE] =3D { + N_("error from service"), + N_("error from service: %s") }, + [VIR_ERR_STORAGE_VOL_EXIST] =3D { + N_("this storage volume exists already"), + N_("storage volume %s exists already") }, + [VIR_ERR_CPU_INCOMPATIBLE] =3D { + N_("the CPU is incompatible with host CPU"), + N_("the CPU is incompatible with host CPU: %s") }, + [VIR_ERR_XML_INVALID_SCHEMA] =3D { + N_("XML document failed to validate against schema"), + N_("XML document failed to validate against schema: %s") }, + [VIR_ERR_MIGRATE_FINISH_OK] =3D { + N_("migration successfully aborted"), + N_("migration successfully aborted: %s") }, + [VIR_ERR_AUTH_UNAVAILABLE] =3D { + N_("authentication unavailable"), + N_("authentication unavailable: %s") }, + [VIR_ERR_NO_SERVER] =3D { + N_("Server not found"), + N_("Server not found: %s") }, + [VIR_ERR_NO_CLIENT] =3D { + N_("Client not found"), + N_("Client not found: %s") }, + [VIR_ERR_AGENT_UNSYNCED] =3D { + N_("guest agent replied with wrong id to guest-sync command"), + N_("guest agent replied with wrong id to guest-sync command: %s") = }, + [VIR_ERR_LIBSSH] =3D { + N_("libssh transport error"), + N_("libssh transport error: %s") }, + [VIR_ERR_DEVICE_MISSING] =3D { + N_("device not found"), + N_("device not found: %s") }, + [VIR_ERR_INVALID_NWFILTER_BINDING] =3D { + N_("Invalid network filter binding"), + N_("Invalid network filter binding: %s") }, + [VIR_ERR_NO_NWFILTER_BINDING] =3D { + N_("Network filter binding not found"), + N_("Network filter binding not found: %s") }, }; =20 -#undef MSG -#undef MSG2 -#undef MSG_EXISTS =20 /** * virErrorMsg: --=20 2.19.2 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list