[Libvirt-cim] [PATCH] Update SDC to return template DiskPoolRASDs for disk and iscsi type pools

Kaitlin Rupert kaitlin at linux.vnet.ibm.com
Mon Jun 1 20:26:08 UTC 2009


# HG changeset patch
# User Kaitlin Rupert <karupert at us.ibm.com>
# Date 1242695586 25200
# Node ID c127bb551eb81bfe3fe3a2ad0225d7307e4bd1ee
# Parent  9ac4e06aa21334cf25b8096663dca6fea74dccd8
Update SDC to return template DiskPoolRASDs for disk and iscsi type pools

Rearrange things to reduce duplicate code.

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

diff -r 9ac4e06aa213 -r c127bb551eb8 src/Virt_SettingsDefineCapabilities.c
--- a/src/Virt_SettingsDefineCapabilities.c	Mon May 18 18:13:06 2009 -0700
+++ b/src/Virt_SettingsDefineCapabilities.c	Mon May 18 18:13:06 2009 -0700
@@ -1239,11 +1239,12 @@
         CMPIInstance *inst;
         CMPIStatus s = {CMPI_RC_OK, NULL};
         const char *path = "/dev/null";
-        const char *dev_path;
-        const char *host;
-        const char *src_dir;
-        int type[3] = {DISK_POOL_DIR, DISK_POOL_FS, DISK_POOL_NETFS};
-        int pool_types = 3;
+        int type[5] = {DISK_POOL_DIR, 
+                       DISK_POOL_FS, 
+                       DISK_POOL_NETFS, 
+                       DISK_POOL_DISK, 
+                       DISK_POOL_ISCSI};
+        int pool_types = 5;
         int i;
 
         switch (template_type) {
@@ -1267,6 +1268,10 @@
         }
 
         for (i = 0; i < pool_types; i++) {
+                const char *dev_path = NULL;
+                const char *host = NULL;
+                const char *src_dir = NULL;
+
                 inst = sdc_rasd_inst(&s, ref, CIM_RES_TYPE_DISK, POOL_RASD);
                 if ((inst == NULL) || (s.rc != CMPI_RC_OK))
                         goto out;
@@ -1274,24 +1279,40 @@
                 CMSetProperty(inst, "InstanceID", (CMPIValue *)id, CMPI_chars);
 
                 switch (type[i]) {
+                case DISK_POOL_DISK:
+                        dev_path = "/dev/VolGroup00/LogVol100";
+
+                        break;
                 case DISK_POOL_FS:
                         dev_path = "/dev/sda100";
-                        CMSetProperty(inst, "DevicePath", 
-                                      (CMPIValue *)dev_path, CMPI_chars);
+
                         break;
                 case DISK_POOL_NETFS:
                         host = "host_sys.domain.com";
-                        CMSetProperty(inst, "Host", 
-                                      (CMPIValue *)host, CMPI_chars);
+                        src_dir = "/var/lib/images";
 
-                        src_dir = "/var/lib/images";
-                        CMSetProperty(inst, "SourceDirectory", 
-                                      (CMPIValue *)src_dir, CMPI_chars);
+                        break;
+                case DISK_POOL_ISCSI:
+                        host = "host_sys.domain.com";
+                        dev_path = "iscsi-target";
+
                         break;
                 default:
                         break;
                 }
 
+                if (dev_path != NULL)
+                        CMSetProperty(inst, "DevicePath", 
+                                      (CMPIValue *)dev_path, CMPI_chars);
+
+                if (host != NULL)
+                        CMSetProperty(inst, "Host", 
+                                      (CMPIValue *)host, CMPI_chars);
+
+                if (src_dir != NULL)
+                        CMSetProperty(inst, "SourceDirectory", 
+                                      (CMPIValue *)src_dir, CMPI_chars);
+
                 CMSetProperty(inst, "Type", (CMPIValue *)&type[i], CMPI_uint16);
                 CMSetProperty(inst, "Path", (CMPIValue *)path, CMPI_chars);
 




More information about the Libvirt-cim mailing list