[Libvirt-cim] [PATCH] Set status in all error cases for DestroySystem in VSMS

Kaitlin Rupert kaitlin at linux.vnet.ibm.com
Fri Mar 28 19:02:39 UTC 2008


# HG changeset patch
# User Kaitlin Rupert <karupert at us.ibm.com>
# Date 1206730931 25200
# Node ID 95caba1628c467332ffb129f663cef5289039744
# Parent  321e3b4320ff3c849c684f1d940f0fa917f6555c
Set status in all error cases for DestroySystem in VSMS.

Be sure to set a status message for the IM_RC_FAILED case.  In the case that connect_by_classname() fails, set rc = -1 because connect_by_classname() sets the status.

Remove domain_exists() - this has been replaced by virDomainLookupByName().

Fix typo in CU_DEBUG() statement.

Signed-off-by: Kaitlin Rupert <karupert at us.ibm.com>

diff -r 321e3b4320ff -r 95caba1628c4 src/Virt_VirtualSystemManagementService.c
--- a/src/Virt_VirtualSystemManagementService.c	Wed Apr 09 10:57:05 2008 -0700
+++ b/src/Virt_VirtualSystemManagementService.c	Fri Mar 28 12:02:11 2008 -0700
@@ -488,8 +488,10 @@ static CMPIStatus destroy_system(CMPIMet
         conn = connect_by_classname(_BROKER,
                                     CLASSNAME(reference),
                                     &status);
-        if (conn == NULL)
+        if (conn == NULL) {
+                rc = -1;
                 goto error;
+        }
 
         if (cu_get_ref_arg(argsin, "AffectedSystem", &sys) != CMPI_RC_OK)
                 goto error;
@@ -498,13 +500,9 @@ static CMPIStatus destroy_system(CMPIMet
         if (dom_name == NULL)
                 goto error;
 
-        // Make sure system exists and destroy it.
-        if (!domain_exists(conn, dom_name))
-                goto error;
-
         dom = virDomainLookupByName(conn, dom_name);
         if (dom == NULL) {
-                CU_DEBUG("No such domain `%s', dom_name");
+                CU_DEBUG("No such domain `%s'", dom_name);
                 rc = IM_RC_SYS_NOT_FOUND;
                 goto error;
         }
@@ -522,6 +520,10 @@ error:
                 cu_statusf(_BROKER, &status,
                            CMPI_RC_ERR_FAILED,
                            "Failed to find domain");
+        else if (rc == IM_RC_FAILED)
+                cu_statusf(_BROKER, &status,
+                           CMPI_RC_ERR_FAILED,
+                           "Unable to retrieve domain name.");
         else if (rc == IM_RC_OK)
                 status = (CMPIStatus){CMPI_RC_OK, NULL};
 




More information about the Libvirt-cim mailing list