[PATCH 0 of 3] #3 This series of patches exposes errors provided from executions of libvirt functions

# HG changeset patch # User Richard Maciel <rmaciel@linux.vnet.ibm.com> # Date 1235493749 10800 # Node ID ec95377909381bf92beee417b5fce4f699950df5 # Parent 72dc446be12ca8ae1dc60a1aad97ff72eecd7b66 This patch exposes error messages from libvirt calls in VirtualSystemManagementService #2: Fixed code-style to match the file Removed un-needed custatusf() call Fixed a problem where status variable set by virt_set_status was being overriding by another call Added another libvirt error exposition point Signed-off-by: Richard Maciel <rmaciel@linux.vnet.ibm.com> diff -r 72dc446be12c -r ec9537790938 src/Virt_VirtualSystemManagementService.c --- a/src/Virt_VirtualSystemManagementService.c Wed Feb 04 08:35:04 2009 -0800 +++ b/src/Virt_VirtualSystemManagementService.c Tue Feb 24 13:42:29 2009 -0300 @@ -963,9 +963,10 @@ dom = virDomainLookupByName(conn, dominfo->name); if (dom == NULL) { - cu_statusf(_BROKER, &s, - CMPI_RC_ERR_NOT_FOUND, - "Unable to lookup domain `%s'", dominfo->name); + virt_set_status(_BROKER, &s, + CMPI_RC_ERR_NOT_FOUND, + conn, + "Unable to lookup domain `%s'", dominfo->name); goto out; } @@ -1065,9 +1066,10 @@ dom = virDomainLookupByName(conn, name); if (dom == NULL) { - cu_statusf(_BROKER, &s, - CMPI_RC_ERR_NOT_FOUND, - "Referenced domain `%s' does not exist", name); + virt_set_status(_BROKER, &s, + CMPI_RC_ERR_NOT_FOUND, + conn, + "Referenced domain `%s' does not exist", name); goto out; } @@ -1274,13 +1276,16 @@ error: if (rc == IM_RC_SYS_NOT_FOUND) - cu_statusf(_BROKER, &status, - CMPI_RC_ERR_FAILED, - "Failed to find domain"); + virt_set_status(_BROKER, &status, + CMPI_RC_ERR_NOT_FOUND, + conn, + "Referenced domain `%s' does not exist", + dom_name); else if (rc == IM_RC_FAILED) - cu_statusf(_BROKER, &status, - CMPI_RC_ERR_FAILED, - "Unable to retrieve domain name."); + virt_set_status(_BROKER, &status, + CMPI_RC_ERR_NOT_FOUND, + conn, + "Unable to retrieve domain name"); else if (rc == IM_RC_OK) { status = (CMPIStatus){CMPI_RC_OK, NULL}; trigger_indication(context, @@ -1320,8 +1325,13 @@ goto out; dom = virDomainLookupByName(conn, name); - if (dom == NULL) + if (dom == NULL) { + virt_set_status(_BROKER, &s, + CMPI_RC_ERR_NOT_FOUND, + conn, + "Referenced domain `%s' does not exist", name); goto out; + } if (!get_dominfo(dom, &dominfo)) { cu_statusf(_BROKER, &s, @@ -1459,9 +1469,10 @@ dom = virDomainLookupByName(conn, dominfo->name); if (dom == NULL) { CU_DEBUG("Failed to lookup VS `%s'", dominfo->name); - cu_statusf(_BROKER, &s, - CMPI_RC_ERR_NOT_FOUND, - "Virtual System `%s' not found", dominfo->name); + virt_set_status(_BROKER, &s, + CMPI_RC_ERR_NOT_FOUND, + conn, + "Virtual System `%s' not found", dominfo->name); goto out; } @@ -1825,9 +1836,11 @@ dom = virDomainLookupByName(conn, name); if (dom == NULL) { - cu_statusf(_BROKER, &s, - CMPI_RC_ERR_FAILED, - "Unknown system `%s'", name); + virt_set_status(_BROKER, &s, + CMPI_RC_ERR_NOT_FOUND, + conn, + "Referenced domain `%s' does not exist", + name); goto end; }

# HG changeset patch # User Richard Maciel <rmaciel@linux.vnet.ibm.com> # Date 1235499824 10800 # Node ID bd4dc02647adb6c7d3644728137674e53b8cf83a # Parent ec95377909381bf92beee417b5fce4f699950df5 This patch exposes error messages from libvirt calls in ComputerSystem #2: Added more points of error exposition Changed some error messages from "Could not..." to "Unable to..." to make them more readable #3: Changed message virt_set_status message from "Unable to get domain XML description" to "Unable to get domain information" Signed-off-by: Richard Maciel <rmaciel@linux.vnet.ibm.com> diff -r ec9537790938 -r bd4dc02647ad src/Virt_ComputerSystem.c --- a/src/Virt_ComputerSystem.c Tue Feb 24 13:42:29 2009 -0300 +++ b/src/Virt_ComputerSystem.c Tue Feb 24 15:23:44 2009 -0300 @@ -273,7 +273,7 @@ struct infostore_ctx *infostore = NULL; ret = virDomainGetInfo(dom, &info); - if (ret != 0) + if (ret != 0) return 0; info.state = adjust_state_xen(dom, info.state); @@ -398,19 +398,27 @@ if (get_dominfo(dom, &domain) == 0) { CU_DEBUG("Unable to get domain information"); - cu_statusf(_BROKER, &s, - CMPI_RC_ERR_FAILED, - "Unable to get domain information"); + virt_set_status(broker, &s, + CMPI_RC_ERR_FAILED, + virDomainGetConnect(dom), + "Unable to get domain information"); goto out; } if (!set_name_from_dom(dom, instance)) { - /* Print trace error */ + virt_set_status(broker, &s, + CMPI_RC_ERR_FAILED, + virDomainGetConnect(dom), + "Unable to get domain name"); goto out; } if (!set_uuid_from_dom(dom, instance, &uuid)) { - /* Print trace error */ + virt_set_status(broker, &s, + CMPI_RC_ERR_FAILED, + virDomainGetConnect(dom), + "Unable to get domain UUID"); + goto out; } @@ -420,7 +428,11 @@ } if (!set_state_from_dom(broker, dom, instance)) { - /* Print trace error */ + virt_set_status(broker, &s, + CMPI_RC_ERR_FAILED, + virDomainGetConnect(dom), + "Unable to get domain info"); + goto out; } @@ -570,10 +582,11 @@ dom = virDomainLookupByName(conn, name); if (dom == NULL) { - cu_statusf(broker, &s, - CMPI_RC_ERR_NOT_FOUND, - "No such instance (%s).", - name); + virt_set_status(broker, &s, + CMPI_RC_ERR_NOT_FOUND, + conn, + "Referenced domain `%s' does not exist", + name); goto out; } @@ -790,9 +803,10 @@ xml = virDomainGetXMLDesc(dom, 0); if (xml == NULL) { CU_DEBUG("Unable to retrieve domain XML"); - cu_statusf(_BROKER, &s, - CMPI_RC_ERR_FAILED, - "Unable to get domain definition"); + virt_set_status(_BROKER, &s, + CMPI_RC_ERR_FAILED, + conn, + "Unable to get domain definition"); return s; } @@ -1003,16 +1017,18 @@ dom = virDomainLookupByName(conn, name); if (dom == NULL) { - cu_statusf(_BROKER, &s, - CMPI_RC_ERR_FAILED, - "Domain not found"); + virt_set_status(_BROKER, &s, + CMPI_RC_ERR_FAILED, + conn, + "Domain not found"); goto out; } if (virDomainGetInfo(dom, &info) != 0) { - cu_statusf(_BROKER, &s, - CMPI_RC_ERR_FAILED, - "Unable to get current state"); + virt_set_status(_BROKER, &s, + CMPI_RC_ERR_FAILED, + conn, + "Unable to get current state"); goto out; }

# HG changeset patch # User Richard Maciel <rmaciel@linux.vnet.ibm.com> # Date 1235500464 10800 # Node ID 6acfecffa37cde75683b0929d12451604b370e53 # Parent bd4dc02647adb6c7d3644728137674e53b8cf83a This patch exposes error messages from libvirt calls in VSMigrationService #2: Fixed compile error Changed code based on feedback from Kaitlin Rupert #3: Some virt_set_status() calls were using the wrong connection parameter. This was fixed Removed un-needed variables Signed-off-by: Richard Maciel <rmaciel@linux.vnet.ibm.com> diff -r bd4dc02647ad -r 6acfecffa37c src/Virt_VSMigrationService.c --- a/src/Virt_VSMigrationService.c Tue Feb 24 15:23:44 2009 -0300 +++ b/src/Virt_VSMigrationService.c Tue Feb 24 15:34:24 2009 -0300 @@ -259,16 +259,18 @@ unsigned long remote; if (virConnectGetVersion(conn, &local)) { - cu_statusf(_BROKER, &s, - CMPI_RC_ERR_FAILED, - "Unable to get local Hypervisor version"); + virt_set_status(_BROKER, &s, + CMPI_RC_ERR_FAILED, + conn, + "Unable to get local Hypervisor version"); goto out; } if (virConnectGetVersion(dconn, &remote)) { - cu_statusf(_BROKER, &s, - CMPI_RC_ERR_FAILED, - "Unable to get remote hypervisor version"); + virt_set_status(_BROKER, &s, + CMPI_RC_ERR_FAILED, + dconn, + "Unable to get remote Hypervisor version"); goto out; } @@ -396,12 +398,28 @@ pid_t pid; int i; int rc = -1; + virConnectPtr conn = virDomainGetConnect(dom); + const char *name = virDomainGetName(dom); + const char *uri = virConnectGetURI(conn); + + if (name == NULL) { + virt_set_status(_BROKER, &s, + CMPI_RC_ERR_FAILED, + conn, + "Failed to get domain name"); + goto out; + } + + if (uri == NULL) { + virt_set_status(_BROKER, &s, + CMPI_RC_ERR_FAILED, + conn, + "Failed to get URI of connection"); + goto out; + } pid = fork(); if (pid == 0) { - virConnectPtr conn = virDomainGetConnect(dom); - const char *name = virDomainGetName(dom); - const char *uri = virConnectGetURI(conn); if (setpgrp() == -1) perror("setpgrp"); @@ -436,6 +454,7 @@ free(name); } + out: return s; } @@ -589,9 +608,10 @@ dom = virDomainLookupByName(conn, domain); if (dom == NULL) { - cu_statusf(_BROKER, &s, - CMPI_RC_ERR_NOT_FOUND, - "No such domain"); + virt_set_status(_BROKER, &s, + CMPI_RC_ERR_NOT_FOUND, + conn, + "No such domain"); goto out; } @@ -930,9 +950,10 @@ ret = virDomainGetInfo(dom, &info); if (ret == -1) { - cu_statusf(_BROKER, &s, - CMPI_RC_ERR_FAILED, - "Error getting domain info"); + virt_set_status(_BROKER, &s, + CMPI_RC_ERR_FAILED, + virDomainGetConnect(dom), + "Error getting domain info"); goto out; } @@ -949,7 +970,7 @@ CU_DEBUG("Migration failed"); virt_set_status(_BROKER, &s, CMPI_RC_ERR_FAILED, - virDomainGetConnect(dom), + dconn, "Migration Failed"); } out: @@ -969,9 +990,10 @@ CU_DEBUG("Shutting down domain for migration"); ret = virDomainShutdown(dom); if (ret != 0) { - cu_statusf(_BROKER, &s, - CMPI_RC_ERR_FAILED, - "Unable to shutdown guest"); + virt_set_status(_BROKER, &s, + CMPI_RC_ERR_FAILED, + virDomainGetConnect(dom), + "Unable to shutdown guest"); goto out; } @@ -1005,9 +1027,12 @@ *xml = virDomainGetXMLDesc(dom, 0); if (*xml == NULL) { - cu_statusf(_BROKER, &s, - CMPI_RC_ERR_FAILED, - "Unable to retrieve domain XML."); + + virt_set_status(_BROKER, &s, + CMPI_RC_ERR_FAILED, + virDomainGetConnect(dom), + "Unable to retrieve domain XML"); + goto out; } @@ -1036,6 +1061,7 @@ virDomainGetName(ldom)); if (dom == NULL) { CU_DEBUG("Unable to re-lookup domain"); + ret = -1; break; } @@ -1055,9 +1081,10 @@ newdom = virDomainDefineXML(rconn, xml); if (newdom == NULL) { - cu_statusf(_BROKER, &s, - CMPI_RC_ERR_FAILED, - "Failed to define domain"); + virt_set_status(_BROKER, &s, + CMPI_RC_ERR_FAILED, + rconn, + "Failed to define domain"); goto out; } @@ -1067,9 +1094,11 @@ CU_DEBUG("Restarting domain on remote host"); if (virDomainCreate(newdom) != 0) { CU_DEBUG("Failed to start domain on remote host"); - cu_statusf(_BROKER, &s, - CMPI_RC_ERR_FAILED, - "Failed to start domain on remote host"); + virt_set_status(_BROKER, &s, + CMPI_RC_ERR_FAILED, + rconn, + "Failed to start domain on remote \ + host"); } } out: @@ -1086,9 +1115,12 @@ ret = virDomainGetInfo(dom, &info); if (ret == -1) { - cu_statusf(_BROKER, &s, - CMPI_RC_ERR_FAILED, - "Error getting domain info"); + + virt_set_status(_BROKER, &s, + CMPI_RC_ERR_FAILED, + virDomainGetConnect(dom), + "Error getting domain info"); + goto out; } @@ -1117,9 +1149,11 @@ dom = virDomainLookupByName(conn, job->domain); if (dom == NULL) { CU_DEBUG("Failed to lookup `%s'", job->domain); - cu_statusf(_BROKER, &s, - CMPI_RC_ERR_FAILED, - "Failed to lookup domain `%s'", job->domain); + virt_set_status(_BROKER, &s, + CMPI_RC_ERR_FAILED, + conn, + "Failed to lookup domain `%s'", job->domain); + goto out; }
participants (1)
-
Richard Maciel