[libvirt] [PATCH 9/9] phyp: Use actual error code instead 0
Daniel Veillard
veillard at redhat.com
Fri Nov 6 10:50:26 UTC 2009
On Fri, Nov 06, 2009 at 04:28:07AM +0100, Matthias Bolte wrote:
> ---
> src/phyp/phyp_driver.c | 71 +++++++++++++++++++-----------------------------
> 1 files changed, 28 insertions(+), 43 deletions(-)
>
> diff --git a/src/phyp/phyp_driver.c b/src/phyp/phyp_driver.c
> index 6263fd2..a92046a 100644
> --- a/src/phyp/phyp_driver.c
> +++ b/src/phyp/phyp_driver.c
> @@ -61,6 +61,10 @@
>
> #define VIR_FROM_THIS VIR_FROM_PHYP
>
> +#define PHYP_ERROR(conn, code, fmt...) \
> + virReportErrorHelper(conn, VIR_FROM_PHYP, code, __FILE__, __FUNCTION__, \
> + __LINE__, fmt)
> +
> /*
> * URI: phyp://user@[hmc|ivm]/managed_system
> * */
> @@ -86,23 +90,14 @@ phypOpen(virConnectPtr conn,
> return VIR_DRV_OPEN_DECLINED;
>
> if (conn->uri->server == NULL) {
> - virRaiseError(conn, NULL, NULL, 0, VIR_FROM_PHYP,
> - VIR_ERR_ERROR, NULL, NULL, NULL, 0, 0, "%s",
> - _("Missing server name in phyp:// URI"));
> - return VIR_DRV_OPEN_ERROR;
> - }
> -
> - if (conn->uri->path == NULL) {
> - virRaiseError(conn, NULL, NULL, 0, VIR_FROM_PHYP,
> - VIR_ERR_ERROR, NULL, NULL, NULL, 0, 0, "%s",
> - _("Missing managed system name in phyp:// URI"));
> + PHYP_ERROR(conn, VIR_ERR_INTERNAL_ERROR,
> + _("Missing server name in phyp:// URI"));
> return VIR_DRV_OPEN_ERROR;
> }
>
> if (conn->uri->path == NULL) {
> - virRaiseError(conn, NULL, NULL, 0, VIR_FROM_PHYP,
> - VIR_ERR_ERROR, NULL, NULL, NULL, 0, 0, "%s",
> - _("Missing path name in phyp:// URI"));
> + PHYP_ERROR(conn, VIR_ERR_INTERNAL_ERROR,
> + _("Missing managed system name in phyp:// URI"));
> return VIR_DRV_OPEN_ERROR;
> }
Hum, okay, I had to look twice to convince myself the error messages
were properly matched :-)
> @@ -148,16 +143,14 @@ phypOpen(virConnectPtr conn,
> *char_ptr = '\0';
>
> if (escape_specialcharacters(conn->uri->path, string, len) == -1) {
> - virRaiseError(conn, NULL, NULL, 0, VIR_FROM_PHYP,
> - VIR_ERR_ERROR, NULL, NULL, NULL, 0, 0, "%s",
> - _("Error parsing 'path'. Invalid characters."));
> + PHYP_ERROR(conn, VIR_ERR_INTERNAL_ERROR,
> + _("Error parsing 'path'. Invalid characters."));
> goto failure;
> }
>
> if ((session = openSSHSession(conn, auth, &internal_socket)) == NULL) {
> - virRaiseError(conn, NULL, NULL, 0, VIR_FROM_PHYP,
> - VIR_ERR_ERROR, NULL, NULL, NULL, 0, 0, "%s",
> - _("Error while opening SSH session."));
> + PHYP_ERROR(conn, VIR_ERR_INTERNAL_ERROR,
> + _("Error while opening SSH session."));
> goto failure;
> }
> //conn->uri->path = string;
> @@ -244,9 +237,8 @@ openSSHSession(virConnectPtr conn, virConnectAuthPtr auth,
>
> ret = getaddrinfo(hostname, "22", &hints, &ai);
> if (ret != 0) {
> - virRaiseError(conn, NULL, NULL, 0, VIR_FROM_PHYP,
> - VIR_ERR_ERROR, NULL, NULL, NULL, 0, 0,
> - _("Error while getting %s address info"), hostname);
> + PHYP_ERROR(conn, VIR_ERR_INTERNAL_ERROR,
> + _("Error while getting %s address info"), hostname);
> goto err;
> }
>
> @@ -262,9 +254,8 @@ openSSHSession(virConnectPtr conn, virConnectAuthPtr auth,
> cur = cur->ai_next;
> }
>
> - virRaiseError(conn, NULL, NULL, 0, VIR_FROM_PHYP,
> - VIR_ERR_ERROR, NULL, NULL, NULL, 0, 0,
> - _("Failed to connect to %s"), hostname);
> + PHYP_ERROR(conn, VIR_ERR_INTERNAL_ERROR,
> + _("Failed to connect to %s"), hostname);
> freeaddrinfo(ai);
> goto err;
>
> @@ -283,9 +274,8 @@ openSSHSession(virConnectPtr conn, virConnectAuthPtr auth,
> while ((rc = libssh2_session_startup(session, sock)) ==
> LIBSSH2_ERROR_EAGAIN) ;
> if (rc) {
> - virRaiseError(conn, NULL, NULL, 0, VIR_FROM_PHYP,
> - VIR_ERR_ERROR, NULL, NULL, NULL, 0, 0, "%s",
> - _("Failure establishing SSH session."));
> + PHYP_ERROR(conn, VIR_ERR_INTERNAL_ERROR,
> + _("Failure establishing SSH session."));
> goto disconnect;
> }
>
> @@ -307,9 +297,8 @@ openSSHSession(virConnectPtr conn, virConnectAuthPtr auth,
> };
>
> if (!auth || !auth->cb) {
> - virRaiseError(conn, NULL, NULL, 0, VIR_FROM_PHYP,
> - VIR_ERR_ERROR, NULL, NULL, NULL, 0, 0, "%s",
> - _("No authentication callback provided."));
> + PHYP_ERROR(conn, VIR_ERR_AUTH_FAILED,
> + _("No authentication callback provided."));
> goto disconnect;
> }
>
> @@ -319,9 +308,8 @@ openSSHSession(virConnectPtr conn, virConnectAuthPtr auth,
> }
>
> if (!hasPassphrase) {
> - virRaiseError(conn, NULL, NULL, 0, VIR_FROM_PHYP,
> - VIR_ERR_ERROR, NULL, NULL, NULL, 0, 0, "%s",
> - _("Required credentials are not supported."));
> + PHYP_ERROR(conn, VIR_ERR_AUTH_FAILED,
> + _("Required credentials are not supported."));
> goto disconnect;
> }
>
> @@ -329,18 +317,16 @@ openSSHSession(virConnectPtr conn, virConnectAuthPtr auth,
> (auth->cb) (creds, ARRAY_CARDINALITY(creds), auth->cbdata);
>
> if (res < 0) {
> - virRaiseError(conn, NULL, NULL, 0, VIR_FROM_PHYP,
> - VIR_ERR_ERROR, NULL, NULL, NULL, 0, 0, "%s",
> - _("Unable to fetch credentials."));
> + PHYP_ERROR(conn, VIR_ERR_AUTH_FAILED,
> + _("Unable to fetch credentials."));
> goto disconnect;
> }
>
> if (creds[0].result) {
> password = creds[0].result;
> } else {
> - virRaiseError(conn, NULL, NULL, 0, VIR_FROM_PHYP,
> - VIR_ERR_ERROR, NULL, NULL, NULL, 0, 0, "%s",
> - _("Unable to get password certificates"));
> + PHYP_ERROR(conn, VIR_ERR_AUTH_FAILED,
> + _("Unable to get password certificates"));
> goto disconnect;
> }
>
> @@ -350,9 +336,8 @@ openSSHSession(virConnectPtr conn, virConnectAuthPtr auth,
> LIBSSH2_ERROR_EAGAIN) ;
>
> if (rc) {
> - virRaiseError(conn, NULL, NULL, 0, VIR_FROM_PHYP,
> - VIR_ERR_ERROR, NULL, NULL, NULL, 0, 0, "%s",
> - _("Authentication failed"));
> + PHYP_ERROR(conn, VIR_ERR_AUTH_FAILED,
> + _("Authentication failed"));
> goto disconnect;
> } else
> goto exit;
ACK, very good !
thanks a lot !
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
daniel at veillard.com | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library http://libvirt.org/
More information about the libvir-list
mailing list